This is two seconds of Super Marios Bros. 3 for the Nintendo Entertainment System. Each three inch binder contains a complete list of operations executed by the system’s CPU over forty frames of gameplay. The operations were collected in stage 1-1.
- 2 seconds
- 120 frames
- 2950 8.5 x 11 inch pages, double sided printing
- 4 columns of operations per page
- 6pt font for the operations
- 1475 sheets of paper
- 3, three inch binders
- 561 cubic inches of paper (8.5 x 11 x 6)
- 1,124,949 operations
- Around 9750 operations on average per frame
- 50 different instructions
- LDA was the most common instruction
- BVS was the least common instruction
The execution was collected using the FCEUX emulator. The trace logger captured the executed instructions, while a very simple Lua script captured screenshots for each frame. This raw data was then converted into an html book using some simple python scripts. From there, the html was converted into a pdf and printed on good old fashioned paper.
You can find the scripts, data, and design files for the book on GitHub.
This project shows the volume of operations that even old CPUs could churn through. For modern games, even a single frame would undoubtably generate an order of magnitude more operations and be quite unprintable (especially if you get into GPUs). While leafing through the pages, it’s also interesting to think that these simple operations are what bring Mario to life and underlie the familiar game world we all know.
I’ve listed the book (or rather binders) on eBay. It’s one of kind; I have no plans to make another. A book of the operations used to run Super Mario Bros. 3 is just one of those things I felt should exist. Now it does. If the thing does sell, any proceeds will be donated to the Electronic Frontier Foundation.
The scripts and tools used to create the book are documented on GitHub in case you want to print your very own Mega-Man-azine or Castlevan-ovella.