X16Community / x16-rom

Other
43 stars 27 forks source link

Commander X16 BASIC/KERNAL/DOS ROM

This is the Commander X16 ROM containing BASIC, KERNAL, and DOS. BASIC and KERNAL are derived from the Commodore 64 versions.

Releases and Building

Build Status Release License: Mixed Contributors

Each release of the X16 emulator includes a compatible build of rom.bin. If you wish to build this yourself (perhaps because you're also building the emulator) see below.

WARNING: The emulator will currently work only with a contemporary version of rom.bin; earlier or later versions are likely to fail.

Building the ROM

Building this source code requires only GNU Make, Python 3.7 (or higher) and the cc65 assembler. GNU Make is almost invariably available as a system package with any Linux distribution; cc65 less often so.

On macOS, cc65 in homebrew, which must be installed before issuing the following command:

If cc65 is not available as a package on your system, you'll need to install or build/install it per the instructions below.

If lzsa is not available as a package on your system, you'll need to install or build/install it per the instructions below.

To check the version of python you have use python3 --version.

Once the prerequisites are available, type make to build rom.bin. To use that with the emulator, copy it to the same directory as the x16emu binary or use x16emu -rom .../path/to/rom.bin.

Additional Notes: For users of Red Hat Enterprise Linux 8, you will need to have CodeReady builder repositories enabled, for CentOS, this is called PowerTools. Additionally, you will need Fedora EPEL installed as well as cc65 does not come usually within the official repositories.

Building/Installing cc65

Linux Builds from Source

You'll need the basic set of tools for building C programs:

The cc65 source is on GitHub; clone and build it with:

git clone https://github.com/cc65/cc65.git
make -j4    # -j4 may be left off; it merely speeds the build

This will leave the binaries in the bin/ subdirectory; you may use thes directly by adding them to your path, or install them to a standard directory:

#   This assumes you have ~/.local/bin in your path.
make install PREFIX=~/.local

Building and Packages for Other Systems

Consult the Nesdev Wiki Installing CC65 page for some hints, including Windows installs. However, the Debian packages they suggest from trikaliotis.net appear to have signature errors.

Building/Installing lzsa

Linux Builds from Source

The lzsa compression utility is used for some resources packaged into the ROM, and is available on Github; clone and build it with:

git clone git@github.com:emmanuel-marty/lzsa.git
make

The lzsa utility will be left in the root directory of the repository. It can be copied into a directory in your path, such as ~/.local/bin.

Building and Packages for Other Systems

The lzsa repository contains project files for both Visual Studio 2017 and XCode, which should allow it to be built for Windows and OS X.

Credits

See LICENSE.md

Release Notes

Release 48 ("Cadmium")

For hardware compatibilty, the following firmware versions are supported by this ROM release:

Changelog:

Release 47 ("Roswell")

This is a major update with new features and bug fixes. This ROM requires a matching emulator version.

For hardware compatibilty, the following firmware versions are supported by this ROM release:

Changelog:

Release 46 ("Winnipeg")

This is mainly a minor bugfix release.

Release 45 ("Nuuk")

Release 44 ("Milan")

This is the third release of x16-rom by the X16Community team

Release 43 ("Stockholm")

This is the second release of x16-rom by the X16Community team

Release 42 ("Cambridge")

This is the first release of x16-rom by the X16Community team

Release 40 ("Bonn")

Release 39 ("Buenos Aires")

Release 38 ("Kyoto")

Release 37 ("Geneva")

Release 36 ("Berlin")

Release 35

Release 34

Release 33

Release 32

Release 31

Release 30