Internet Archive Emulation

From Digitize the Planet
Revision as of 00:19, 2 December 2015 by Jscott (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The Internet Archive has a javascript-based emulation system for uploaded files called the Emularity. The Emularity allows users to contribute a wide variety of software to the Internet Archive (via its upload facility) and with a few metadata settings, make the software playable in the browser. While experimental and subject to various limits, the Emularity provides a new level of hosting executable software, especially software of a historical nature.

While initially non-intuitive, the implementation of the Emularity in the Internet Archive has a few simple rules behind it that allow quick turnaround in making software playable. This documentation is meant to work through some of the more unusual problems and allow users to upload their acquired software easily and quickly.

Some Important Aspects and Quirks of the Internet Archive Software System

Here's some basic unique aspects of the Internet Archive's system. They reflect a number of non-obvious situations that have arisen over the years with the Archive's uploading and presentation of its collections, and represent the most obvious places that people get "tripped up". They are:

  • Everything in the Internet Archive is an "item". This means that each individual disk image, cartridge image, cassette image should be considered a single item. If you are uploading a pair of images that are each side of a single floppy disk, or that represent disk 1 and 2 of a pair, then you can do so, but only the first image will be able to boot. (There is a goal to change this, so you should certainly upload paired or small sets of floppies meant to be together; they just won't work beyond the first image, currently.)
  • Each Item in the Internet Archive needs to be a "media type". While it is possible to upload, say, a PDF or a game file into the same "item" on the Archive, once you set the item to a given "type", only the uploaded files compatible with that "type" will be given a preview/display window. Media types on the archive are texts, movies, software, web, and audio. For example, if you are uploading a floppy disk image and a manual, and want to have it be possible to "boot" the disk image and "read" the manual, you will want to upload them to separate items.
  • The files that contain the software image can't have spaces in them. This may change one day, but for the time being, it's better to name a file "Disk_Image.dsk" than to name it "Disk Image.dsk" and upload it - otherwise the system will run into problems emulating it.\

Please read this entire document and look at the examples already uploaded to the archive before uploading. It will save a lot of trouble.

What the Internet Archive Emulates

Here are the names of the Emulator settings currently available at the Archive, what machine it emulates, and what file extensions it accepts:


  • a800 (Atari 800) (.atr, .dsk, .xfd)
  • a800cart (Atari 800, Booting off the Cartridge Slot) (.bin, .rom, .car)
  • a800xl (Atari 800XL) (.atr, .dsk, .xfd)
  • apple2c (Apple IIc) (.do, .dsk, .bin, .po, .nib)
  • apple2e (Apple IIe) (.do, .dsk, .bin, .po, .nib)
  • apple2ee (Apple IIe Extended) (.do, .dsk, .bin, .po, .nib)
  • apple2gs (Apple IIgs) (.do, .dsk, .bin, .po, .nib)
  • coco2 (Color Computer 2) (.ccc, .rom)
  • coco2cart (Color Computer 2, Booting off the Cartridge Slot) (.ccc, .rom)
  • dosbox (DOS Machine) (.zip)
  • dosbox-sync (DOS Machine with Additional Settings) (.zip)
  • pdp1 (DEC PDP-1) (.tap, .rim)
  • sorcerer (Exidy Sorcerer) (.bin)
  • spec128 (ZX Spectrum 128) (.ach, .frz, .plusd, .prg, .sem, .sit, .sna, .snp, .snx, .sp, .z80, .zx, .raw, .scr)
  • spectrum (ZX Spectrum) (.ach, .frz, .plusd, .prg, .sem, .sit, .sna, .snp, .snx, .sp, .z80, .zx, .raw, .scr)

Game Consoles

  • a2600 (Atari 2600)
  • a5200 (Atari 5200)
  • a7800 (Atari 7800)
  • advision (AdventureVision)
  • apfm1000 (APF-MP1000)
  • aquarius (Mattel Aquarius)
  • arcadia (Emerson Arcadia 2001)
  • bally (Bally Astrocade)
  • channelf (Fairchild Channel F)
  • coleco (Colecovision)
  • crvision (CreatiVision)
  • gamegear (Sega GameGear)
  • gamepock (Epoch Game Pocket Computer)
  • genesis (Sega Genesis)
  • gx4000 (Amstrad GX-4000)
  • intv2 (Intellivision II)
  • intvsrs (Intellivision)
  • megadrij (Sega Megadrive - Japanese Region)
  • megadriv (Sega Megadrive - North America Region)
  • megaduck (MegaDuck/Cougar Boy)
  • ngp (Neo-Geo Pro)
  • odyssey2 (Odyssey 2)
  • scv (Super Cassette Vision)
  • sg1000 (Sega Game 1000)
  • sms (Sega Master System)
  • socrates (VTech Socrates)
  • supracan (Super A-Can)
  • sv8000 (Bandai Supervision 8000)
  • svision (Watara Supervision)

How You Turn On Emulation on an Item

The process to turn on emulation is relatively simple:

  • The item must be set with mediatype equal to software. The other mediatypes (including texts, movies, audio, web) will not work.
  • For DOSBOX, set the Emulator to dosbox, set Emulator_ext to zip, and set Emulator_start to the file inside the ZIP file that the emulation should "boot" on.
  • For everything else, set the Emulator to the emulator string you need, and set Emulator_ext to the extension of the bootable file in the item. Emulator_start should not be set; it will be ignored.

Regarding console titles: Unless you are uploading a newly-discovered cartridge or a newly-made homebrew program for a game console, there is probably a reason (including compatibility, availability) that a standardly released console title is not on the Archive.

Adding a Screenshot

By default, the emulation system will add a generic "Emulate It!" graphic to click on if emulation is turned on. You may optionally add a screenshot to any item and it will put that image under the play button instead.

Screenshots are added in the form of:

  • itemname_screenshot.gif

So, if you have an item called emulated_apple_ii_program, then a screenshot file called emulated_apple_ii_program_screenshot.gif or emulated_apple_ii_program_screenshot.jpg will replace the Emulate It! graphic.

Some Common Issues

Here are some of the problems that cause the emulator to not be invoked when uploading software:

  • Except for DOSBOX and DOSBOX-SYNC, no other emulated item should be in a .ZIP file or archive file. The system prefers uncompressed, original files that can be accessed directly.
  • When first setting Emulator_* metadata pairs on the Internet Archive, occasionally the emulator will not show up for a short time. This is due to the way that Internet Archive processes jobs - the converting of your item to a bootable emulated program will take a few seconds or a few minutes while the Archive's routines are working against thousands of changes being made constantly.
  • Spelling and Capitalization counts. Always set the emulator and emulator_ext metadata to lowercase. Make sure the filename extension is lowercase. Make extra sure you've set the Emulator metadata to an existing emulator.

Some Examples

When you image an Apple II floppy disk, the resulting file will likely be a .dsk or .do file, around 140k.

Using this item, you can see the following information:

  • The disk image is named
  • The emulator is set to apple2e
  • The emulator_ext is set to do to match the .do extension on the disk image.
  • The mediatype is set to software.

The Internet Archive's emulation system notes the settings of emulator and emulator_ext and, assuming it can find any files with the .do extension, turn on the "play this program" window at the top.

Some Links

  • Internet Archive Software Collections
    • [1] The Internet Archive Software Library
    • [2] The Internet Archive Software Library: MS-DOS
    • [3] The Internet Archive Software Library: Atari Computers
    • [4] The Internet Archive Software Library: Apple Computers
    • [5] The Internet Archive Software Library: ZX Spectrum
  • [6] The Internet Archive Console Living Room
Personal tools