/theodore

Libretro core for Thomson TO8/TO8D emulation, based on Daniel Coulom's DCTO8D emulator.

Primary LanguageCGNU General Public License v3.0GPL-3.0

🇬🇧 🇫🇷

Theodore - Thomson TO8/TO8D emulator

Build status Build status Coverity Scan Build Status GitHub tag

This is a libretro core for emulation of the Thomson TO8/TO8D computers. It is based on Daniel Coulom's DCTO8D emulator.

How to install

Install RetroArch, then start RetroArch and download the "theodore" core using the "Core Updater" feature.

How to compile

On Linux (and most other platforms):

make

You can then run the core with a libretro frontend like RetroArch:

retroarch -L theodore_libretro.so

To compile the Android version, you need the Android NDK:

cd jni
ndk-build

🎮 Gamepad: mapping of the buttons

A => "Fire" button

B => Simulates a keystroke on the 'B' key of the keyboard (allows to start most games without the need for a keyboard)

Virtual keyboard feature: the Y/X buttons of the controller can be used to select a digit/letter/enter key (Y=go down, X=go up) and the start button simulates a keystroke on the selected key. On controllers without Y/X keys, select can also be used to roll the virtual keyboard up. The order of the keys in the virtual keyboard is: digits (0->9) then letters (A->Z) then "Space" then "Enter".

Keyboard: mapping of special keys

Thomson keyboard PC keyboard
STOP TAB
CNT CTRL
CAPSLOCK CAPSLOCK
ACC ALT
HOME HOME
Arrows Arrows
INS INSERT
EFF DEL
F1-F5 F1-F5
F6-F10 SHIFT+F1-F5

💾 File formats

The emulator can read the following file formats: *.fd and *.sap (floppy disks), *.k7 (tapes), *.m7 and *.rom (cartridges).

SAP files: unless a matching *.fd file already exists, *.sap files are converted on the fly to the *.fd format. The *.fd file is then loaded by the emulator.

Thomson flavors

By default, the core emulates a TO8 computer. Using the "Thomson flavor" option you can switch to a T08D computer.

Save states

The emulator supports libretro's "save state" feature. Under RetroArch, use the following keys: F2 (save state), F4 (load state), F6/F7 (change state slot).

😇 Cheat codes

The emulator supports cheat codes with the following format: 0AAAAA:DD with AAAAA the RAM address (in hexadecimal) and DD the value (in hexadecimal) that will be written at the RAM address after each invocation of retro_run().

Cf. the "cheat" directory for some actual cheat codes, as well as a Python script that helps find cheat codes from a set of save state files.

Compatibility

The source code is portable and should compile and run on most platforms. The Travis job checks that the code builds on Linux and MacOS, and the AppVeyor job checks that the code builds on Windows.

Platform Compiles Runs
Linux / amd64 ✔️ ✔️
Raspbian / Raspberry Pi ✔️ ✔️
Android ✔️ ✔️
MacOS ✔️
Windows ✔️ ✔️
Others