Video Games in the Library
September 13, 2018 at 3:35 am #29590
It’s been discussed before that, because of the nature of the Library, all data that can be generated is stored inside of it. Because data can be represented (encoded) in an endless number of ways, this means that even things like computer programs or video games can be found. So, because nobody has done it before, I decided to try and see if I could store a video game on a single page.
Disclaimer: For the purposes of this demonstration, I used a homebrew video game rather than an officially licensed title. No piracy was involved, as the game is freely available for anyone to download. Everything discussed in this post is completely legal.
First, I tried to see what game consoles would make a good fit. Most NES games are far too big, so I had to step down to an Atari 2600. After browsing around, I found “Cave 1K”, by Thomas Jentzsch:
The game itself was still a bit too big, so I had to zip it using “Best” compression. This got the ROM file to be small enough to fit on a single page in the Library. There was just one last problem that I had to overcome. The hexidecimal data contains numbers, which the Library doesn’t use, so I replaced them with letters. After all was said and done, I used the “Search” section to find the page where the game would be located at:
If you’d like to “download” the game from the Library, you’ll need to do a few things:
1) Grab an emulator. I recommend Stella: https://stella-emu.github.io/
2) Grab a hex editor. I recommend HxDen (HxD): https://mh-nexus.de/en/hxd/
3) Copy the text from the page onto Notepad, and make sure you copied ONLY the text, no stray spaces.
4) Replace All (Ctrl+H) of the following letters with the corresponding numbers:
G -> 0
H -> 1
I -> 2
J -> 3
K -> 4
L -> 5
M -> 6
N -> 7
O -> 8
P -> 9
5) Open up HxDen and create a new file. Copy the replaced text from Notepad and paste it into HxDen. Save the file as anything you like, as long as it ends in “.zip”. For example: Cave.zip
And that’s it! You now have a ZIP file which you can either unzip and get the ROM from, or just play directly with Stella (it will detect the game inside). It also occured to me that QR codes can hold almost the same amount as a page. The upside is that you don’t have to do any number conversion, but the downside is that they’re not as easy to work with, especially if you scan them with a mobile device. For the curious, I uploaded one here:
PS: As I was posting this, I did a search. It turns out that there actually are some 1K NES games that are able to fit on a page. Here’s a collection of 20 games by Sly Dog Studios:
I tested this method out with “The Invasion” and it works great!September 13, 2018 at 4:31 am #29592
This is great. 1000 internet points to you good sir/mamSeptember 13, 2018 at 12:51 pm #29596
dude you said you had like free time once in a few weeks but it’s been like 3 days and you’ve already made another huge postSeptember 15, 2018 at 12:40 am #29630
Delengroth I seriously think you should become a curator/keymaster of this forum.September 15, 2018 at 12:42 am #29631
Also how does one use Stella? The process seems extremely complicated, is there any other website that doesn’t require downloading content?September 16, 2018 at 9:30 am #29656
The easiest way to open a ROM in Stella would be to just drag the zip file onto the executable located in the 32bit or 64bit directory. If you’re not sure which one to use based on your computer, use the 32bit version.
I looked around and there does seem to be an online emulator that accepts ROMs though. It’s located at:
If your browser blocks the popup to open the file, you can click the power button on the lower left and select “Open File”. Navigate to the zip file and you should be good to go!September 16, 2018 at 4:12 pm #29671
HxDen doesn’t work for Mac, it only works for Windows… any other hex editor which I can use for Mac?September 16, 2018 at 9:47 pm #29678
I’m not too familiar with Mac computers, but Hex Fiend seems like a good choice:
http://ridiculousfish.com/hexfiend/September 16, 2018 at 10:20 pm #29679
I’m excited to say it worked with Hex Fiend and the online emulator! We should create a file library in the Library which has all sorts of video games and other programs free to download. Can you upload programs other than video games into the Library?September 17, 2018 at 4:25 pm #29695
Glad to hear it worked! And yes, any file or program that can exist on a computer (hell, even websites) can be found in the Library using this method, but with one caveat. They have to of course be 3200 bytes or less in order for them to exist on a single page, since that’s our only method of searching. If the Library had the capability to search for an entire book, we’d be able to search for things that are 1,312,000 bytes long (or about 1.25 MB). For comparison, a standard 3.5 inch floppy disk held 1.44 MB.September 17, 2018 at 8:11 pm #29698
I have quite possibly the most ingenious idea of human civilization. Let us create a file library in which every file ever can be accessed through a bookmark, the files in the file library being curated by the most premier members of the human race. In short, the bookmarks would take up far less space to store than each file on the page, creating a whole new way to store information and download files.September 17, 2018 at 8:24 pm #29701
You still run into the bookmark storage issue. The bookmark is small, yes, but it still leads to a full hex location. That location is (very likely) stored in a database, so it still takes the same or more space to store it on this website than just curating things the traditional way. Furthermore, since the database and algorithm are not available to the public, the retrieval of information relies on this website still being online.September 17, 2018 at 10:39 pm #29704
But if the website is a public domain download… then the only thing that is stored is the bookmark database and the program itself, which takes up a set amount of space, right? Like the program’s space doesn’t keep expanding the more you use it to bookmark stuff?September 18, 2018 at 3:56 am #29710
The program space does not, but the database does. Think of the database like a spreadsheet. In column A you have the bookmark label, and in column B you have the full hex/wall/shelf/volume/page location. When you re-visit a bookmark, the program simply looks through column A to find it, and then redirects you to whatever is in column B. Because hex locations are often larger than the contents of the page itself, it’s better to just curate things the old fashioned way.
Also, I think you misunderstood what I meant by publicly available. The website itself is accessible to the public, yes, but the code behind it is not. If Jonathan decided tomorrow to take it offline, you would not be able to retrieve a bookmarked page.September 18, 2018 at 10:31 pm #29728
But like what if we pay Johnny’s web hosting fees. Then he won’t take it offline?