(We store a byte-validity mask separate from the ROM so that we can distinguish valid zeros from the zeros we use to blank out irrelevant ROM segments.)īeyond the save state and the sliced ROM, we store a few additional pieces of data inside of our Playable Quote files. While the original ROM on the left has hardly any black at all. As you can see, the sliced game ROM on the right is mostly zeros.
Bytes representing zero (0x00) are colored black and every other byte is colored according to the “jet” colormap. The second image, on the right, is of the sliced game ROM:Įach pixel in the images above represents one byte. The first image, on the left, is a visualization of the game ROM for Tetris. To illustrate this, look at the two images below. You won’t notice that the rest of the book was blank until you start reading outside of the bounds of the quote. If you start reading at the bookmarked location, you’ll immediately get the desired content. You can think of the sliced ROM like a book with most of the pages curiously blank except for those needed to read your quote. The sliced game ROM is similar to the original game ROM, except that every part of the ROM that was not accessed during the recording of the Playable Quote is set to zero. If someone else has the book/game, the bookmark will get them to the passage you want to quote. You can think of the save state like a bookmark in the space of play for that game. The save state contains the entire state of the emulator from the moment that the “Record New Quote” button was clicked: CPU register values, the stack pointer, the program counter, timers, the real time clock, all of various RAM elements, etc.
This is a long post, so we’ll start with an overview of what we’ll be covering: In this post, we (Joël Franusic and Adam Smith) will go into detail about how we created Playable Quotes.
Others can now watch your quote as if it were a video, or decide to grab the controls at any moment and explore the impact of their own choices. Once that is done, you’d get a file that contains just enough of the game to recreate all the moments in the game between when you clicked the “Record demo” button and the moment when you hit the “Stop recording” button. Simply load your game into the Playable Quotes emulator, play towards the part of the game you want to demonstrate, click the “Record New Quote” button, continue playing, then eventually click the “Stop recording” button to complete the demo. With Playable Quotes for Game Boy, you can create and share tiny interactive slices of existing games. What if you could share a playable quote from the game in the way that you can share readable quotes by just copy-pasting the specific text you want? It would be overkill (and likely illegal) to post the entire original game just so that your friend can play for a few seconds. Many Game Boy emulators have a notion of a save state file, but in order for your friend to use one of these, they need to have access to the original game. You could share a screenshot or a video, but that’s not the same as letting your friend grab the controls and try it for themselves. Imagine there’s a specific moment in a Game Boy game that you want to share with a friend. Sorry, your browser doesn't support embedded videos.