BitMagic
The Complete Development Environment for the Commander X16.

The Emulator

Build

Please note the documentation is a currently a work in progress while the old docs are brought up to date.

Emulating the Commander X16 for general use.

Download

Currently the best way to download the emulator is via the latest version from the build process, which is available here.

Alternatively you can clone the whole repository, and load in the emulator project.

Prerequisites

Before you can run the emulator, you will need to obtain a copy of the Rom.

Emulator State

The emulator is currently not complete, with features being added continually. It is advised to check back regularly for updates as there is currently no automatic update mechanism.

Not Yet Implemented

The following features are not yet implemented in the Emulator. If you want to use these then please try the official emulator, or Box 16.

Not Yet 100% Complete

Tile rendering and its access to VRAM is not yet ‘cycle accurate’, which can lead to slight differences between BitMagic and hardware.

Various changes to VERA after December 2022 have not yet been included.

The SMC module doesn’t support writing config to the PS2, or reading its state. It also doesn’t implement the ‘echo’ functionality.

Frame syncing isn’t great, its based on the machine monitor refresh. Issue

The mouse movements are generated from the host system, and could well overwhelm the X16. A buffer is required. Issue

Files on the SDCard will be changed to 8.3 filenames if brought in from the local file system. Issue

Command Line Arguments

Argument Description  
-p, –prg .prg file to load.  
-r, –rom rom.bin file to load, will look for rom.bin using locally or falling back to the BITMAGIC_ROM environment variable.  
-a, –address Start address.  
-c, –code Code file to compile. Result will be loaded at 0x801.  
-w, –write Write the result of the compilation.  
–warp Run as fast as possible.  
-s, –sdcard SD Card to attach. Can be a .zip or .gz file, in the form name.xxx.zip, where xxx is either BIN or VHD.  
–sdcard-size SD Card size in mb if the card is being created by the emulator.  
-d, –sdcard-folder Set the home folder for the SD Card.  
–sdcard-synctox16 Sync any changes to the home directory to SD Card. Root directory only.  
–sdcard-syncfromx16 Sync any changes to SD Card to the home directory. Root directory only.  
-y, –sdcard-sync Sync any changes to SD Card to the home directory, or vice versa. Root directory only. Same as setting –sdcard-synctox16 –sdcard-syncfromx16.  
-f, –sdcard-file File to add to the SD Card root directory. Can add multiple files and use wildcards.  
–sdcard-write SD Card file to write at the end of emulation. Can be a .zip or .gz file, in the form name.xxx.zip, where xxx is either BIN or VHD.
–sdcard-overwrite When writing the SD Card file, it can overwrite.  
-u, –sdcard-update Sets ‘sdcard-write’ to the ‘sdcard’ parameter and enables overwrite.  
–help Display this help screen.  
–version Display version information.