(Link to video)
Submission Text Full Submission Page
Today, Mr. Pi decides to play/TAS Pokemon Gold. Nothing too crazy like last year's Pi movie. Still, he comes out performing the arbitrary execution about 30 seconds faster than in MrWint's TAS, then decides to mess around instead of "beating the game".

Goals

  • Fastest to arbitrary execution.
  • Small Pi playaround after that.
  • Speed/entertainment tradeoffs.

How Pi plays Pokemon Gold

This run uses a different strategy compared to MrWint's TAS. Basically, it involves manipulation of stuff ranging from Trainer ID to Egg!Togepi's DVs/IVs. Also a few different strats were used.
Pokemon Gold was chosen over Silver because, well, just because. Enjoy the night time.
Since a lot of manipulations are tricky, the use of Lua to do brute-force searches came in handy. It's still crude at this point but it works.

Route to arbitrary execution and stuff

What appears constant is the need to listen to the cry of one of five Pokemon (such as Bellsprout) as well as to be aligned correctly on the map (usually, three steps to the left after opening a box of any kind is enough). Beyond that, however, there is a lot of leeway on how to pull it off. This run reaches arbitrary execution through this path:
Coin Case -> Pokemon cries
Bellsprout's cry -> map alignment
Three steps to the left -> Pokemon 3 data
Egg!Togepi's DVs -> Pokemon 2 data
Rattata's Tackle + Mud-Slap + Trainer ID -> Box Names
Box renaming -> arbitrary execution

Run info

Trainer ID

The trainer ID is F8E9. Enough said.
Note that accessing the options menu does not affect the RNG here in any way.

Totodile's DVs

Here, we manipulate a DV of FCFF (AtkIV 15, DefIV 12, SpeIV 15, SpcIV 15). Fortunately it came out with not so much delay.

Diversion after the first rival battle

If you're wondering what's going on, well, let the TAS speak for itself. Basically, poisonwarping is useful, and saves maybe 5 seconds or so (you'd still have to obtain a Poke Ball, and you lose a lot of money, if you need it for stuff like X Attack).
On the way to Violet City, there is a Poke Ball you can pick up, but since we're getting X Attacks, it is better to do so at the Mart.

Falkner

Using Rage is faster than using Scratch, maybe by a couple seconds or so. We pick up Pi's favorite TM, TM31 Mud-Slap, which will come in useful later.

Violet Pokecenter

We ignore the Egg guy and change the box names (only the first three boxes are changed; it may be possible to squeeze this to two). Then we talk to the Egg guy, and then leave. Egg!Togepi's DVs are manipulated to be 18AF.

Bellsprout encounter on Route towards Union Cave.

Encounter, then run away. The point is to register Bellsprout in the Pokedex to hear its cry later.

That Hiker's Geodude

There are a few options but 2 X Attack + Scratch seems to be the best.

Rocket Grunt with the Koffing

It is faster to get poisoned by Poison Gas (than to have it miss) just prior to finishing it off. No poison-related messages occur, and Totodile is healed afterwards anyway.

Rival

A different route that may or may not be faster; fighting the Rival before Azalea gym. Totodile can still OHKO the Gastly with one Water Gun, but requires an extra hit on Bayleef. Here, 2 X Attacks are used; this also makes Zubat OHKO.

Bugsy

Croconaw can OHKO Metapod and Kakuna with Water Guns. Scyther needs three hits, or two with an X Attack.

Rattata encounter on Route before Goldenrod City

Why catch Rattata? Because it has three moves, one of them being Tackle. Using TM31 Mud-Slap, we can get Tackle and Mud-Slap being the third and fourth moves, which, when combined with the trainer ID, gives us the jump in memory we need.
Once we get the Coin Case, everything is ready for arbitrary execution. Note that listening to Bellsprout's cry must be done second-last (Coin Case usage being the last), since certain chimes overwrite that segment of memory.
We could of course beat the game (in the way MrWint's TAS does) in record time, but Mr. Pi has other ideas and decides to make a small playaround in the remaining time.

About last year's pi-around and emulation accuracy/errors/stuff

I have dug into system specs during machine coding for the playaround to determine that, yes, last year's pi-around is invalid (not that anyone cares). Basically, writing mounds of stuff to VRAM without checking for V-Blank results in some areas where the written stuff doesn't go through (even if you checked for V-Blank, you still couldn't write a mass of stuff at once before V-Blank status changes again). I tended to be overly reliant on planning my VRAM abuse (as well as being lazy from one Pi Day to the next), so you have me to blame for not coming up with an awesome audiovisual program.

Improvements?

Well, there are possible improvements in luck-manipulation time. There are also other factors, like:
  • Cyndaquil?
  • Unown?
  • Pokerus?
Each additional factor gives an exponential increase in the complexity of this mathematical optimization problem. I'll leave that for another day.

Lua scripts

Some Lua scripts that were used to make this run: http://www.mediafire.com/download/fxjbcw95yt4ijj4/pokemongold_scripts.zip
A couple of them were used to brute-force some exceptionally low-probability events such as Trainer ID. The other one was used to display own Pokemon/enemy stats to make the stat display for the encode.

Thanks

Thanks to MrWint, Sanqui, TheZZAZZGlitch, and others for work on dissecting Pokemon Gold and finding glitches in this game. Thanks also to bortreb for his original arbitrary execution run that got me quite interested in studying GB specs.
I'll write some more stuff if I get around to it. Anyway, Happy Pi Day.

Noxxa: Judging.
FractalFusion: Cancelling.
I had been TASing Pokemon Gold just a few days ago and thinking, maybe I could casually mix some pi into it just as a fun side project for Pi Day (nothing too serious). Pokemon Gold x pi, what could go wrong? Well, this submission was an unmitigated failure. Not only did it have no way of measuring up to any previous arbitrary execution runs (being 30 minutes long to set up is bad enough), but it completely shut out any reasonable discussion of the actual content (gameplay optimization) of this TAS itself.
I wish I had the foresight to realize how terrible this idea was, but I am only human. I apologize for wasting everyone's time with this submission.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14884
Location: 127.0.0.1
Spikestuff
They/Them
Editor, Publisher, Expert player (2299)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
Oh yea today is pi day. Since it's Fractal I'm just going to assume he is providing the encode. Also Pokemon = me doing final if accepted :P I will vote after watching. Edit: Upset about the Re-record count not continuing from .59 and going 265359 Edit 2 Compared to the other pi day tas this is just a bit interesting on where it happened. This is what the end looks like. Anyways voting yes.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Editor
Joined: 11/3/2013
Posts: 506
Right, should this obsolete Mr Wint's run or not? If you consider enabling arbitrary code execution to be akin to beating the game (because it allows you to do anything), then it does so faster and should obsolete it. If you consider the game not to be beaten at all because the movie only uses code execution to muck around, then publish them separately. The closest thing to a precedent we have for this situation is Masterjun's "Super Mario World plays SnakePong" TAS, where they were published alongside one another, but there is a difference in that case: the two movies were identical up to the point of arbitrary code execution, rather than the playaround being thirty seconds faster than the other. Oh, I'm looking forward to an encode by the way.
Spikestuff
They/Them
Editor, Publisher, Expert player (2299)
Joined: 10/12/2011
Posts: 6337
Location: The land down under.
thatguy wrote:
Right, should this obsolete Mr Wint's run or not?
Uh... no. this would be changed to "Executes Arbitrary Code" due to the fact it's just breaking the game. Mr Wint's run takes you to the end of the game facing Red. Also note: Wint is still improving his run that's why there is a delay on the acceptance of his run.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
thatguy wrote:
Right, should this obsolete Mr Wint's run or not? If you consider enabling arbitrary code execution to be akin to beating the game (because it allows you to do anything), then it does so faster and should obsolete it.
If this run were to use the arbitrary code to warp straight to the endgame movie, then I'd say yes. But it doesn't do that; it uses the arbitrary code to print PI. That's fun, but it's no game completion.
Glitcher
He/Him
Joined: 3/24/2007
Posts: 216
Location: London, U.K.
Meh, this didn't really do it for me. The glitch is visually less interesting and less original than the previous Pi Day run, plus it takes longer to achieve. Not worth watching.
Editor
Joined: 11/3/2013
Posts: 506
^I'll be honest and admit that I somewhat share Glitcher's sentiments. This TAS seems like a victim of circumstance: 1) Coming out just a few days after another movie that is pretty much identical for 90%+ of its duration. 2) Not being nearly as impressive as its predecessor, because that movie set the bar extremely high. 3) Having to wait half an hour for a punchline which everyone who watched the first movie will know in advance. 4) And then having a worse version of that punchline. I'd have loved for this just to be a regular TAS and for you and MrWint to take it to a frame war. On a positive note, I'm glad you worked out the Coin Case glitch properly and I knew you would make this TAS sooner or later. I'll definitely be sticking this one in Gruefood should it be rejected.
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
The issue is that this one could eventually be console-verified, while the Pokemon Yellow one (if I'm understanding the author's comments correctly) can't. That alone makes me think it's more of a viable publication, but it's just not entertaining enough at the end. Just printing the digits of Pi like that isn't enough of a payload for me to sit through half an hour of Pokemon Gold, especially since the Pokemon Yellow one was more entertaining and hit payload a lot sooner. I second the backup Gruefood recommendation as it does demonstrate a faster reaching of arbitrary code over the other Pokemon Gold movie.
Adventures in Lua When did I get a vest?
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I have dug into system specs during machine coding for the playaround to determine that, yes, last year's pi-around is invalid (not that anyone cares). Basically, writing mounds of stuff to VRAM without checking for V-Blank results in some areas where the written stuff doesn't go through (even if you checked for V-Blank, you still couldn't write a mass of stuff at once before V-Blank status changes again). I tended to be overly reliant on planning my VRAM abuse (as well as being lazy from one Pi Day to the next), so you have me to blame for not coming up with an awesome audiovisual program.
? Can the movie's dancing pi digits still be achieved if taking this to account? Also, for possible improvements, I thought Silver was mentioned in Mr.Wint's TAS's thread somewhere as being potentially faster. :P Finally this takes too long to set up the arbitrary code, so I wasn't exactly all that entertained. :P
NitroGenesis
He/Him
Editor, Experienced player (551)
Joined: 12/24/2009
Posts: 1873
I voted no. It's a long walk to a rather meh payoff.
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
NitroGenesis wrote:
I voted no. It's a long walk to a rather meh payoff.
I concur. The majority of movie brought nothing interesting compared to 4205S, and the payload was abysmal compared to the lead-in.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
You could have literally made the game do almost anything, and you choose to make it just print some numbers on screen. Definite no vote. This type of run must leave the viewer in awe. Like that SMW run that allows you to play arcanoid and snake, which elicited awe and applause in the spectators. It has to be something marvelous. To obsolete a previous run of this category, the new run has to be even more awesome than the previous one. This was not. The technical achievement to get the arbitrary code execution faster is commendable, but the payoff was not worth it. With a much better payoff it would have probably been a different story. (And please, please no more "pi" nonsense. The previous "pi" submission was boring and nonsensical, and personally I objected to it obsoleting the previous run. Do something much more visual, much more awesome. I'm still hoping for someone to make that "rickroll" version. That would be something worthwhile.)
Joined: 10/1/2013
Posts: 98
Location: My Basement
I agree with the popular opinion.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
In the 2 previous pokemon "arbitrary code" submissions I, who never played a pokemon game, clearly saw the fun part where such code gets executed. And enjoyed both. Here, I just missed it. Was it some pokemon-ish messing around? Or numbers going through the screen? Dunno. Nothing interesting for a non-pokemon fan. Voted clear No.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor
Joined: 11/3/2013
Posts: 506
The sad thing about this submission is that, if FractalFusion had just used the code execution to finish the game rather than promising a payload that didn't really materialise, then its reception would probably have been quite good.
Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Warp wrote:
(And please, please no more "pi" nonsense. The previous "pi" submission was boring and nonsensical, and personally I objected to it obsoleting the previous run. Do something much more visual, much more awesome. I'm still hoping for someone to make that "rickroll" version. That would be something worthwhile.)
A 3D pi made of smaller pi's that dance to "Never Gonna Give You Up" perhaps? ;)
Editor, Experienced player (608)
Joined: 11/8/2010
Posts: 4012
I have to vote No on this. This submission's payload was already done in the Yellow Pi Day run, and it's just not as interesting or achieves the goal as fast as that movie. And like others have said, the length of time just to get to the payload hurts the entertainment value.
Warp wrote:
I'm still hoping for someone to make that "rickroll" version.
I would enjoy seeing that.
ALAKTORN
He/Him
Player (99)
Joined: 10/19/2009
Posts: 2527
Location: Italy
“I have dug into system specs during machine coding for the playaround to determine that, yes, last year's pi-around is invalid (not that anyone cares).” what? why would nobody care? if it’s due to emulation errors, the run should be removed from the site
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
ALAKTORN wrote:
“I have dug into system specs during machine coding for the playaround to determine that, yes, last year's pi-around is invalid (not that anyone cares).” what? why would nobody care? if it’s due to emulation errors, the run should be removed from the site
From what I'm reading in the explanation, internally the run does nothing that's impossible on an actual gameboy, but it's just that VRAM behaves differently and the screen output would appear different on console (probably just missing a few pi graphics here and there). Nothing major, and certainly not something worth unpublishing a run for. (Not that a run like that would possibly ever be done/synced on console anyway, due to the complications with gameboy sync.)
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Editor, Skilled player (1939)
Joined: 6/15/2005
Posts: 3247
Mothrayas wrote:
From what I'm reading in the explanation, internally the run does nothing that's impossible on an actual gameboy, but it's just that VRAM behaves differently and the screen output would appear different on console (probably just missing a few pi graphics here and there). Nothing major, and certainly not something worth unpublishing a run for.
When I tested writing to VRAM BizHawk 1.6.0a, I noticed that if I did mass writes to VRAM (like, trying to overwrite 50 tiles in the span of one frame), there were regular patches of tiles that did not get updated. Certainly there are some workarounds for that, but I don't know the best way to handle it yet. Anyway, thanks for the responses. I'll admit; this is really just a Pokemon Gold tool-assisted speedrun with an alternate end and some small number of pi references thrown in. You guys are expecting too much. Though, I guess with stuff like [2513] SNES Super Mario World "arbitrary code execution" by Masterjun in 02:25.19 around, it can't be helped.
Player (12)
Joined: 11/23/2012
Posts: 94
I approve of this TAS, because despite being much longer than the first "total control" hack, its payload is also infinitely more tolerable. It's not as good as the Pi-kémon Yellow, nor as interactive as Super Mario Pong, but the payload is objectively good, because it's mathematical.
Joined: 1/17/2008
Posts: 133
I appreciate the sheer awesomeness here. Following up last year's Pi day with another total control hack run, has a time of 31:41:59 etc. I'm with the other guys here but holy wow do i give you props for doing it a 2nd time.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11270
Location: RU
FractalFusion wrote:
You guys are expecting too much. Though, I guess with stuff like [2513] SNES Super Mario World "arbitrary code execution" by Masterjun in 02:25.19 around, it can't be helped.
It's not about expectations. It's about applying ideas and how people like them. Some games allow more, some allow less. But for me, what happened in SMW was more of a technical killer than visual impression, while your previous Pi submission was both. Though it doesn't mean the same idea should be reused. Now more and more people are interested in some kind of a rickroll, because it was FREAKING NEVER DONE inside a game.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Joined: 4/3/2005
Posts: 575
Location: Spain
feos wrote:
FractalFusion wrote:
You guys are expecting too much. Though, I guess with stuff like [2513] SNES Super Mario World "arbitrary code execution" by Masterjun in 02:25.19 around, it can't be helped.
It's not about expectations. It's about applying ideas and how people like them. Some games allow more, some allow less. But for me, what happened in SMW was more of a technical killer than visual impression, while your previous Pi submission was both. Though it doesn't mean the same idea should be reused. Now more and more people are interested in some kind of a rickroll, because it was FREAKING NEVER DONE inside a game.
Listen carefully to Chrono Trigger's Robo's Theme. And watch this: http://www.youtube.com/watch?v=fM_bCP7rGr0
No.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
thatguy wrote:
The sad thing about this submission is that, if FractalFusion had just used the code execution to finish the game rather than promising a payload that didn't really materialise, then its reception would probably have been quite good.
That's because its goal would have then been different, and thus would be subject to different standards. Personally, however, I'm not very happy with arbitrary execution hacks jumping to the end of the game. The reason for this is that once you can freely decide where to jump in the game's code, the definition of what constitutes "jumping to the end of the game" becomes pretty much arbitrary. How do you define the "end of the game" in this respect? Exactly which part of the game code can be considered the "end of the game"? Is it right after the final boss? The end of the possible epilogue? The start of the end credits? The end of the end credits? Something else? Why that particular point, and not a point earlier or later? It becomes a question of subjective opinion, and thus it's pretty arbitrary and up to the person deciding. Personally I would prefer if the game would be allowed to naturally reach its endpoint (end boss is defeated, and the game proceeds normally from there.) And if the question is "well, could you thus jump to the end boss via arbitrary code execution? Who decides where it's ok to jump?" Well, precisely: Jumping to an arbitrary execution point is subjective. The solution is pretty simple: Just don't do it. But that's just me (and I understand I seem to be an extremely small minority on this.)