A history of experiments made with classic game emulators, starting in 2016.
One of these experiments - where every time Sonic gets a ring it switches game - went a little bit viral on Twitter and is now publicly available. To play with this, follow this link.
The original emulator was developed in 2016 as a mod of GenesisPlus, running in OpenEmu for MacOS. It allowed game memory to be altered when in-game actions were detected. For example, if Sonic collected a ring it might increase his speed or write random data into memory.
The emulator could also respond to inputs sent over a network, microphone input and barcode scanners.
At this point in the process I wasn't sure what to do with it. It was used as one of the games in an early version of The Incredible Playable Show, but was taken out so that
An attempt to complete the entirety of Sonic the Hedgehog 2 - where every time Sonic collects a ring it scrambles the level layout - was filmed in early 2017.
Complete playlist of playthrough attempt with friends
I wrote up the process of creating it and what I found on my blog.
Extended Write-up
Having sat on the emulator for a couple of years, and not being sure what it was for, I was invited to put together a live show for the PLAY18 Festival in Hamburg, Germany. I decided that the emulator could be a great starting point for a new interactive stage show.
The show included four hacks: (1) getting a ring speeds Sonic up, (2) Sonic only jumps when the audience shouts, (3) getting a ring writes random data into your opponent's level, and (4) a team of 4 shared a controller with randomly-assigned buttons.
On a technical level, the emulator could now run as two separate instances running side-by-side on the same desktop. The two instances can identify their own controllers, and send messages between each other. An external UI wraps around the screen and shows live data about the players' progress. The host can control the UI and switch between the different game hacks from a separate tablet UI.
A full write-up of the show is on my blog.
Extended Write-up
I also dipped my toe into using these challenges as video content, by attempting to complete Sonic the Hedgehog where every time he collects a ring he gets faster
I'd been playing around with similar features in a GameBoy emulator, Gambatte, also running in OpenEmu on MacOS.
I really liked how the original Pokémon games seemed very resilient to data corruption. I also liked how the different creatures' data acted as a kind of digital DNA.
I created a piece of video art, playing through the game until I reached Lavender Town, the in-game site of the Pokémon graveyard. As I played, the corruption caused even simple actions in the game to become increasingly slow and tedious, which made me think of entropy and the heat death of the universe. Because of this, I filmed the playthrough in the style of a Vanitas still-life.
A full write-up of the video is on my blog.
Extended Write-up
I returned to the emulation during the pandemic, to try and create something more readable out of the ideas that were in Journey to Lavender Town.
Some of these were intended to be aesthetically interesting. Some of these were experiments with the gameplay to see what breaking the game would reveal about the mind during play.
Sonic the Hedghog but the controls are shuffled every 30 seconds
Sonic the Hedghog but the pixels are sorted by colour
Sonic the Hedghog wihtout sprites
Dr Robotnik's Mean Bean Machine without colour
Until All the Colour is Gone 1 (Sonic the Hedgehog, where every ring removes a colour from the universe)
Until All the Colour is Gone 2 (Sonic the Hedgehog, where every ring removes a colour from the universe)
Until All the Colour is Gone 3 (Dr Robotnik's Mean Bean Machine, where matched group of beans removes a colour from the universe)
Short trailer for a "Magic Box" glitching installation
Swapping between four classic games but preserving image data
Swapping between four copies of Dr Robotnik's Mean Bean Machine but preserving image data
A livestream where the audience could interact with the "Magic Box" installation by typing into Twitch Chat
Letting 20 games run on idle, swapping every 15 seconds but preserving their image data
One of the features that came up in the earlier experimentation was a hack for Sonic games where every ring collected switched him to another game. A clip of this became popular on Twitter and prompted me to turn this into a publicly-available build.
The Magic Box can be downloaded from here
Latest addition to the Mega Drive emulator I'm hacking around with. Every time Sonic collects a ring it switches to a different Sonic game. pic.twitter.com/IRjuCxwEU1
— Alistair Aitcheson (@agAitcheson) September 24, 2020
Networking features were added into the Magic Box. It was also modified so that viewers on Twitch could change what hacks were active, trigger events (e.g. switching game) and arbitrarily edit memory by typing into Twitch Chat.
I also developed a version of the BizHawk emulator which switched between games on multiple platforms. This can be triggered when Sonic collects a ring, Mario gets a coin, 4 Puyo are matched, or by events in many other games.
I did a lot of livestreams playing around with these tools. I was particularly interested in how they changed the experience on a mental and sensory level, and what they revealed about the differences between each game.
Playing Mega Drive games while Twitch Chat hacks them
Playing Master System games while Twitch Chat hacks them
Pokémon Red controlled by rings in Sonic 2
Pokémon Red controlled by rings in Sonic & Knuckles
Every time Sonic collects a ring a colour is removed from the universe (livestream, various games)
Four Puyo Puyo games in which every time four Puyo are matched it switches game
Completing the Sonic Advance games where every ring switches the game
Part 1 - Part 2
Sonic the Hedgehog, where his speed is dictated by wet paint
Every time Sonic collects a ring it switches game, playing 16 games to completion
Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Part 6
Completing Sonic the Hedgehog 2, where every time Sonic collects a ring, random data is written into the level