Post #3267069
2026-06-10 20:08 UTC
Replies (3)
-
@Sickday@kbin.earth 2026-06-10 20:54
It's Arbitrary Code Execution
-
@Feyter@programming.dev 2026-06-11 08:43
I try to add something to the understand. Especially in old games, the program code (what happens if you press a button, what happen if your health bar goes to zero…) is often handled in the same memory structure as the game data (sprites, your entered player name, you inventory…) If you glitch a function that should edit a memory block of game data (e.g. reduce the players money or rename a Pokémon) to do it’s operation on a program code block instead, you can reprogram the game while you are playing it and even make it a different game. A different famous example is Super Mario Land. If you glitch trough the level borders the game is displaying all kind of data (game data and program code) as level blocks that you can walk on. Some of those level blocks are distructable, which is setting this memory block to a different value. By carefully destructing the correct blocks, you can change things like how many life’s you have. But if you hit a wrong block, the game will potentially crash because you changed the program code to something that doesn’t make sense.
-
@towerful@programming.dev 2026-06-10 22:01
The first play part is setting up arbitrary (in this case, player-entered) code execution. The 2nd part is entering the arbitrary code to be executed. The 3rd part is the arbitrary code being executed. From the description: This is a Tool-assisted run of Pokémon Yellow, playing around with arbitrary code execution and testing the limits of Gameboy hardware. Tool-assisted meaning a program entering the data into the game. A lot of times tool-assisted is in the context of a speed run, a TAS (tool-assisted speedrun). A TAS file can be shared and perfected by many people, and reflects the most optimised way to finish a game as fast as possible. Sometimes TAS runs include techniques that are “TAS only”, an extreme example being alternating between left & right every frame for 30 seconds. Sometimes these “TAS only” techniques end up being performed by actual speed runners. And some TAS runs are “Human viable” as in “no techniques used that can’t be executed by a speed runner”. Some TAS systems can interface with an actual console, pretending to be a controller (called “TAS Bot” I believe). Generally, they run the game in an emulator or interface with an emulator. So, this video is about a TAS (well, the tool-assisted part, not necessarily the speedrun part) setting up arbitrary code execution (ACE) that then executes a bunch of user-entered code, which is what happens in the rest of the video