-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment
If you want to play Realm, please see Installation. If you are interested in modifying the code, read on.
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.
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.
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.
-
The scripts assume that
a2kitis in the path. This should automatically be the case if you install it withcargo. -
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.jsonin order to change monologues or troves, don't forget to runrealm-map-writer.pyto write the changes back to the native binaries. This presupposes that the full set of JSON files have been created usingrealm-map-reader.py.