[TAS] Pokémon Yellow - Arbitrary Code Execution
MrWint4 HN recommenders · recommended in 4 months, 2020–2025
demo · general · evergreen · 2020–2025 on HN
A tool-assisted speedrun of Pokemon Yellow by MrWint that uses arbitrary code execution to push Game Boy hardware to its limits. Through crafted inputs it injects code and ends up running other programs, such as Tetris, inside the game.
HN points to it as the standard demonstration of arbitrary code execution on a Game Boy, and of glitches and bugs being turned into a working computer.
Up next
9 mo on HNSNES Code Injection -- Flappy Bird in SMW
SethBling
9 HN recommender · 2016–2025
3 mo on HNVeritasium: A Story of YouTube Propaganda
Tom Nicholas
3 HN recommender · 2021–2023
12 mo on HNSM64 - Watch for Rolling Rocks - 0.5x A Presses (Commentated) [OUTDATED]
pannenkoek2012
13 HN recommender · 2016–2024
12 mo on HNReverse emulating the NES to give it SUPER POWERS!
suckerpinch
12 HN recommender · 2018–2025
10 mo on HNMarI/O - Machine Learning for Video Games
SethBling
10 HN recommender · 2015–2026
7 mo on HNFIXING the ENTIRE SM64 Source Code (INSANE N64 performance)
Kaze Emanuar
7 HN recommender · 2022–2025
4 mo on HNMyHouse.WAD - Inside Doom's Most Terrifying Mod
Power Pak
4 HN recommender · 2023–2026
5 mo on HNHow lucky is too lucky?: The Minecraft Speedrunning Dream Controversy Explained
Stand-up Maths
5 HN recommender · 2021–2025
3 mo on HNTasBlock at AGDQ 2017: TASBot
TASVideosChannel
3 HN recommender · 2019–2025
3 mo on HNDid Nintendo really forget to Optimize Super Mario 64 ? | MVG
Modern Vintage Gamer
3 HN recommender · 2020–2022
3 mo on HNWalls, Floors, & Ceilings
UncommentatedPannen
3 HN recommender · 2017–2018
3 mo on HN[Epilepsy Warning] Choco Mountain: The History of Mario Kart 64's Most Infamous Track
Summoning Salt
3 HN recommender · 2018–2018
6 comments from Hacker News
One of the crazier uses of ACE in Gameboy Pokemon games exploits is this "speedrun", by MrWint: ▶ 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.
There is an amazing video of a similar exploit in Pokémon Yellow where they basically run a bunch of different games: ▶ this video
Sometimes even after you've come up with the exploit, you can create something really beautiful for the console to run afterwards. Pokemon Yellow: ▶ this video Super Mario World: link
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: ▶ this video (skip to 1:20 for craziness)
Arbitrary Code Execution TAS like Triforce% or this Pokemon Yellow one[1] 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 TAS[2] are demos :D [1] ▶ this video [2] link
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: ▶ 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.