Skip to content
0:00 / 0:00

#arbitrarycodeexecution#pokemonyellow#gameboy

[TAS] Pokémon Yellow - Arbitrary Code Execution

MrWint

2K subscribers • 1 video on Hallway

YouTube
  • Recommended by 4 people: 4 on Hacker News.
  • A classic. People kept recommending it from 2022 to 2025.
  • May be out of date. Uploaded 9 years ago, in an area where tools change fast.

Advanced. Deep dive for people who know the field.

597K views9 years ago4 recommendations

SecurityGame developmentExploits and vulnerabilitiesRetro games and consoles

A tool-assisted speedrun of Pokemon Yellow demonstrates arbitrary code execution to inject and run custom programs on Game Boy hardware.

This is a Tool-assisted run of Pokémon Yellow, playing around with arbitrary code execution and testing the limits of Gameboy hardware. See tasvideos.org/5384S.html

Why it's here

4 people recommend this

What people say. Highly recommended as an incredible demonstration of arbitrary code execution and runtime code injection on retro hardware.

stepupmakeupon Hacker News • Recommends

On “Tetsuji: Remote Code Execution on a GameBoy Colour 22 Years Later”

One of the crazier uses of ACE in Gameboy Pokemon games exploits is this "speedrun", by MrWint: link to this video (TAS Pokémon Yellow - Arbitrary Code Execution) I've timestamped the part where the actual exploit begins, after all of thesetup. It's worth mentioning that this isn't faked or edited in any way, and it's possible to download the input data and replicate on a emulator yourself.

alexb_on Hacker News • Recommends

On “Accidentally Turing-Complete”

It mentions Pokemon Yellow, but really any code run isn't really "run in the game" more so that it uses bugs to hack together alternate instructions for the game boy to execute. Good example: link to this video (skip to 1:20 for craziness)

Dwediton Hacker News • Recommends

On “Hackers discover how to reprogram NES Tetris from within the game”

Sometimes even after you've come up with the exploit, you can create something really beautiful for the console to run afterwards. Pokemon Yellow: link to this video Super Mario World: link

alex-moonon Hacker News • Recommends

On “Bad Apple but it's played inside Super Mario Bros”

There is an amazing video of a similar exploit in Pokémon Yellow where they basically run a bunch of different games: link to this video

DougBTXon Hacker News • Mentions

On “Show HN: A SQL database implemented purely in TypeScript type annotations”

At the end of the day, if you look at a low enough level in the stack, there are no types. In a very concrete way, types are a high-level idea, and if the high-level stops matching the low-level, then bugs crop up. See for example Tetris implemented in Pokémon Yellow via runtime code injection: link to this video Their compiler missed that! So I think there's good reason to switch from talking about types as "assumptions", and think of them as compile time "assertions". Something lower-level in the stack could break the high-level code, but that doesn't make the high-level code useless, just imperfect.

schroedingon Hacker News • Mentions

On “Games Done Quick “Ocarina of Time” beta showcase”

Arbitrary Code Execution TAS like Triforce% or this Pokemon Yellow one1 are more or less demos that target both the console and the "host game". I would say even some non-ACE ones like this Brainage TAS2 are demos :D 1 link to this video 2 link