Skip to content

Deployment

dfgordon edited this page Sep 20, 2025 · 10 revisions

Deployment

If you want to play Realm, please see Installation. If you are interested in modifying the code, read on.

Build vs. Deploy

The term "deploy" is intended as a subset of "build." Historically "building" had little meaning since there was no source (machine code was by hand). The modern project introduced assembly source, however at present we do not cross-assemble. The assembly is done on an emulator before deployment. Tokenization of BASIC is handled during deployment by a2kit.

Preliminaries

Start by cloning the Realm repository. Next install a2kit. If you have the rust toolchain, you can simply type cargo install a2kit, which should work on a wide variety of platforms. You can also download an executable from the release page. If you use cargo, the path is taken care of automatically, otherwise don't forget to put a2kit where the shell can find it.

Deploy All

The deploy script will create a directory with the following contents

  • DOS 3.3 master, dungeon, monster, and setup disks in WOZ format
  • ProDOS 800K disk in WOZ format
  • ProDOS 800K disk in PO format
  • HD Installer disks 1 to 3 in WOZ format

To run the script, navigate to the scripts directory in the Realm project directory. Type

python deploy.py <x.x.x> <proj_path> <distro_path>

Replace <x.x.x> with the version (this only affects the directory name). For <proj_path> you will presumably have .. (parent). The <distro_path> is where the Realm-vxxx directory will be created. If it already exists you are prompted to overwrite.

Gotchas

  • The scripts assume that a2kit is in the path. This should automatically be the case if you install it with cargo.

  • Remember this is not a full build, in particular:

    • If assembly sources change they have to be reassembled, the script only copies the binaries.
    • If you are editing text.json in order to change monologues or troves, don't forget to run realm-map-writer.py to write the changes back to the native binaries. This presupposes that the full set of JSON files have been created using realm-map-reader.py.

Clone this wiki locally