hobbit-text-game

The Oregon Trail, 1985

MECC’s The Oregon Trail for the Apple II (1985, version 1.4) as one self-contained page, oregon85.html, that works on a phone. It is a port, not an emulator: the game’s Applesoft BASIC was translated program by program, so every price, probability, formula and message is the original’s, and the disks’ own pictures, sprites and tunes are drawn and played the way an Apple II showed them. The numbered questions are buttons; the hunting and rafting screens take touch as well as keys; the journey is kept in the browser so a reload carries on where it was, and the Oregon Top Ten and the tombstones you leave persist between games.

What is in the port

Files

File What it is
oregon85_src.html the page: markup, styles and the interface script
js/engine.js the Apple II side: hi-res screen, decoders, sprite blits, colour rules, tunes
js/game.js the game, transliterated from the BASIC (line numbers in the comments)
js/hunt.js the hunting screen
js/raft.js the Columbia
build.py inlines the scripts and data.json into oregon85.html
tools/pack.py makes data.json from apple2/: pictures, image libraries, tunes, the variable table, the talk texts
tools/pck.py, tools/ima.py decode the picture and image formats to PNG
apple2/ the files from the disks the page uses
src/ the Applesoft listings the port follows

Notes on the formats

A .PCK is one 280×192 hi-res screen, run-length coded column by column. An .IMA library is a count, an offset per image (bit 15 marks a raw image), then each image as a width in 7-pixel bytes, a height, and its bytes — row by row for raw images, column by column and coded like the screens otherwise. VAR.BIN is the game’s saved Applesoft variable table (landmarks, distances, rivers, weather codes, prices). MS*.BIN are the landmark tunes: pairs of note and duration.

Credits and rights