Haunted House, 1985

Commodore 64 game and screen-editing system · 1985

Haunted House is a Commodore 64 game and screen-editing system I made in 1985 under my pseudonym, 4th Dimension Software. It is a small world of connected rooms, treasures, enemies and doors, built within the particular limits of the machine.

Its built-in 32-screen editor operates as an early content management system: rooms could be created, named, saved and loaded without altering the game code. In this realm of personal-computer work, it is a remarkably early example of separating authored content from the system that presents it.

I recovered the work from my original cassette tape and converted it into a D64 image. Seeing it running again—complete with its blocky graphics, sound and slightly unforgiving controls—feels like opening a very old sketchbook.

This version keeps the original game intact and lets it run in the browser. Click the screen, press fire and enter the house.

Browser controls

  • Click the C64 screen to focus it and enable SID sound.
  • Use the arrow keys as the joystick.
  • Use Space as the joystick fire button.
  • The game contains 32 named screens.
  • Use Reset below the screen to restart.
  • Use the display control for 2× size where space allows, or enter fullscreen.

Browser runtime and credits

The browser runtime is c64js, written by Mikael Borgbrant and published under the MIT License.

Sound is generated through the bundled jsSID layer, including its TinySID, FastSID and ReSID implementations. Audio reaches the browser through pico.js, released under the MIT License. Compressed SID lookup data is unpacked with JSXCompressor from JSXGraph, copyright Matthias Ehmann, Michael Gerhaeuser, Carsten Miller, Bianca Valentin, Alfred Wassermann and Peter Wilfahrt, and dual-licensed under Apache 2.0 or LGPL 3.0.

The emulator interface includes Font Awesome 4.5.0 by Dave Gandy, with its font licensed under SIL OFL 1.1 and its CSS under the MIT License. The original copyright and licence notices remain intact beside the self-hosted source.

The runtime preserves PAL pacing, VIC-II sprite-collision latches, FastSID playback at a safe gain, SID address mirroring, the CIA Timer A high-byte correction and the game’s two-stage blank-load bootstrap.

Technical archive notes

The work is dated from the embedded source string “(C)1985 4TH DIMENSION SOFTWARE.” The preserved 1541 D64 directory contains HAUNTEDHOUSE, HAUNTEDHOUSE2 and HAUNTEDHOUSE3.

The original tape-style bootstrap remains intact: the first blank LOAD installs HAUNTEDHOUSE2 at $1E00; the second installs HAUNTEDHOUSE3 at $0801; RUN 4000 enters the game at $4400. HAUNTEDHOUSE3 remains in the sequence even though it also contains the hidden editor.

The self-hosted browser emulator retains PAL pacing, sprite collision latches, FastSID with safe gain, a SID mirror guard and the CIA Timer A high-byte correction. Explicit editor loading remains disabled while game stability is prioritised.

SHA-256
2661458d92f2d07c24ebb86723430e299765f48bbd661d6f1f632022429230dc

The hidden screen editor

Haunted House includes a hidden 32-screen editing system for creating, naming, saving and loading rooms without changing the game code. The editor remains preserved within the D64 disk image derived from the original cassette tape. These instructions document that original system as an important part of the work. The screen editor is not available in this release; direct access remains disabled while the stability of the playable game is prioritised.

Main menu

  • Select 1 to edit, 2 to save, 3 to load, or 4 to quit.
  • Select one of the 32 available screens, then enter a name of no more than 16 characters.
  • Permitted characters are A–Z, 0–9, space, !, . and ?. Press Return to confirm; press Delete to remove the preceding character.

Screen editor

  • Use the joystick to move through the 10 × 10 grid. Press Fire to finish editing.
  • Press A–N to place block types 1–14. Press Space to insert a blank cell.
  • Press Shift+Home to clear the entire screen.
  • Block I represents the sole door. Placing a new door removes the existing one.
  • Blocks A–E are treasures. A valid screen requires one door and at least one treasure.

Enemy editor

  • Press X to assign horizontal movement or Y to assign vertical movement.
  • Press Z to remove or omit the current enemy.
  • Press A–J to select a row and 0–9 to select a column.
  • Enter an enemy number from 0–9 and a hexadecimal colour value from 0–F.
  • Each screen may contain up to three enemies.
QR code for the Haunted House touch version

Touch version

Haunted House has a dedicated touch version for phones. It opens in a portrait layout with the game enlarged above an onscreen joystick, with separate fire, reset and sound controls.

Scan the QR code with your phone, or open the address below. The touch version opens in its own browser window.

computational.com.au/haunted-house/mobile/index.html