Archimedes core for Turbo Chameleon 64

This is a port of the Archimedes core from MiSTer to the Turbo Chameleon 64 cartridge.

This is an experimental core, and while I do my utmost to make sure it works for everyone and will try to help solve any problems that arise, you run this core entirely at your own risk.

If you’d like to show your appreciation for this core, or motivate me to work on this and other cores in future, donations are welcome at https://paypal.me/robinsonb5 or https://patreon.com/coresforchameleon. Anyone donating £20 or more via PayPal or sponsoring on Patreon at the second tier will be thanked by name in a “Core Supporters” shout-out page in subsequent releases.

Please note: it’s vitally important that you download the correct version of the core for your Chameleon.

Archimedes for Chameleon V1 hardware: If you have a single mini-DIN socket on the left hand side of your Chameleon, to which a breakout cable attaches for the keyboard and mouse, then you have V1 hardware and need this version:

Archimedes for Chameleon V2 hardware:  If you have three mini-DIN sockets on the left-hand side, with the keyboard and mouse plugging in directly, you have V2 hardware, and need this version:

Currently supported:

  • Floppy disk images
  • Hard disk images
  • CMOS RAM
  • Keyboard (PS/2 and C64)
  • Mouse (PS/2)
  • Configuration files

ROM

The core requires a RiscOS ROM file on the SD card, and this must be named “RISCOS.ROM” (unless specified otherwise in a configuration file).
The highest supported RiscOS version is 3.11 (English), or 3.19 (German)

You can load alternative ROM versions from the OSD, but since the core won’t produce any video until at least one ROM has been loaded, you do need a default ROM on the SD card.

CMOS RAM

The Archimedes contained some battery-backed CMOS RAM for configuration data and this is emulated with a file on the SD card, named CMOS.RAM by default. Three versions of this file are provided, all with IDE hard disk enabled but with different monitor settings. Copy one of them to the SD card (and if you don’t want to use a configuration file, rename it to CMOS.RAM if necessary):

  • CMOS.RAM sets the monitor type to multiscan, which allows higher resolutions for the desktop, and allows games to open a 50Hz PAL-compatible display (scandoubled by default).
  • SVGAIDE.RAM sets the monitor type to SVGA, which will enable higher resolutions for the desktop but will prevent games from opening a 50Hz display, which will give odd looking results.
  • 15KHzIDE.RAM sets the monitor type to “normal”, i.e. 15KHz/50Hz PAL In combination with a configuration file which disables the scandoubler, this should make the core compatible with monitors which can only handle 15KHz.

Configuration files

The on-screen menu has a second page, accessed by pressing cursor-right, from which configuration files can be loaded and saved. The files store the directory and filename of the currently loaded ROM and currently mounted hard disk images, as well as the status of the scandoubler.
As with other DeMiSTified cores, the core can’t create new configurations, only overwrite existing ones. Two examples are provided – Archimed.cfg and Archimed_15KHz. Copy one of these to the root of the SD card, and rename it to Archimed.cfg if necessary. (The only difference between the two files is that the latter has the scandoubler disabled, for use with the 15KHzIDE.RAM file.

HDF files

You can find an example HDF file here:
https://github.com/mist-devel/mist-binaries/tree/master/cores/archimedes
You can mount this file using the menu. At bootup the core will attempt to mount automatically a file named “archie1.hdf” (or an alternative name if specified in a configuration file.)

Keyboard handling

The Archimedes keyboard is very similar to a PC keyboard, so a PS/2 keyboard maps pretty much directly.

The C64 keyboard has fewer keys than a real Archimedes keyboard so there’s some “creative” mapping in use. The most important keys are F12 (used by the Archimedes) and PrintScreen (used by the core as a menu button.)

  • The run/stop key on a the C64 keyboard is used as a modifier, similar to the Fn key on a laptop.
  • The F12 key is mapped to run/stop-del on the C64 keyboard.
  • The Commodore key is mapped to Left Alt.
FunctionPS/2 keyboardC64 keyboardCDTV controller
MenuF12Run/stop + <-Power

Hold the menu button for 1 second or longer to toggle the scandoubler on or off.

Press the middle and right hand buttons on the Chameleon simultaneously to return to the Chameleon C64 core.

Source code for this core can be found at https://github.com/robinsonb5/archimedes

The core is a port of original work by Stephen J. Leary, with enhancements
by Gyorgy Szombathelyi.

The Turbo Chameleon 64 port wraps the MiST core in a compatibility layer (DeMiSTify, by Alastair M. Robinson), and makes very few material changes to the core itself.