ZX81 (EightyOne)

Contribute to this documentation

DOCUMENTATION IS A WORK IN PROGRESS

In order to propose improvements to this document, visit its corresponding source page on github. Changes are proposed using "Pull Requests."

There is a To-Do list for libretro/docs here

You can submit suggestions or issues regarding documentation at the libretro/docs issue tracker or in our forum thread.

Background

EightyOne is a port of the EightyOne (a.k.a. THE Sinclair Emulator) to libretro.

EightyOne emulates a number of ZX80, ZX81, clones, and other computers based on the same hardware:

How to install the EightyOne core:

After this has finished downloading, the core should now be ready for use!

How to start the (Core name) core:

The content should now start running!

Authors

License

A summary of the licenses behind RetroArch and its cores have found here.

The EightyOne core is licensed under

Extensions

Content that can be loaded by the EightyOne core have the following file extensions:

Databases

RetroArch database(s) that are associated with the EightyOne core:

Features

RetroArch-level settings or features that the EightyOne core respects.

Feature Supported
Restart
Screenshots
Saves
States
Rewind
Netplay
Core Options
RetroAchievements
RetroArch Cheats
Native Cheats
Controls
Remapping
Multi-Mouse
Rumble
Sensors
Camera
Location
Subsystem
Softpatching
Disk Control
Username
Language
Crop Overscan
LEDs

Directories

The EightyOne core's directory name is 'EightyOne'

The EightyOne core saves/loads to/from these directories.

RetroArch's State directory

Geometry and timing

Auto-configuration

Since configuring the core for each game can be a tedious task, the EightyOne core features auto-configuration. Games that support auto-configuration are listed in the src/gamedb/gamedb.json file, along with some information and the configuration required to play them.

Currently, there's no way to change the auto-configuration settings short of recompiling the core after making the changes. If you feel the provided auto-configuration could be better or has bugs, please open an issue.

Colorization

Colorization works by loading a program prior to loading the game. This program will check if the Chroma 81 expansion is installed, and, if it is, configures the colors of the ZX81 characters, and then loads the original game, which runs unaware that it's playing with colors.

Since the EightyOne core can't load arbitrary programs from the file system, the colorization program and the game must exist in the same file.

Core options

The EightyOne core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.

Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.

??? note "Emulate Chroma 81 - auto/On"

??? note "Emulate Chroma 81 - Off"

??? note "Video Presets - clean"

??? note "Video Presets - tv"

??? note "Video Presets - noisy"

??? note "Transparent Keyboard Overlay - On"

??? note "Transparent Keyboard Overlay - Off"

Controllers

The EightyOne core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):

User 1 device types

User 2 device types

Controller tables

Joypad

Attention

Use the Joypad mapping core options to configure the Cursor Joystick inputs.

User 1 Remap descriptors RetroPad Inputs Cursor Joystick
Joypad B button mapping
Joypad Y button mapping
Keyboard overlay
Joypad Up mapping
Joypad Down mapping
Joypad Left mapping
Joypad Right mapping
Joypad A button mapping
Joypad X button mapping
Joypad L button mapping
Joypad R button mapping
Joypad L2 button mapping
Joypad R2 button mapping

Keyboard

RetroKeyboard Inputs Sinclair Keyboard
Keyboard Backspace VK_BACK
Keyboard Tab VK_TAB
Keyboard Clear VK_CLEAR
Keyboard Return VK_RETURN
Keyboard Pause VK_PAUSE
Keyboard Escape VK_ESCAPE
Keyboard Space VK_SPACE
Keyboard Comma , VK_COMMA
Keyboard Delete VK_DELETE
Keyboard Keypad 0 VK_NUMPAD0
Keyboard Keypad 1 VK_NUMPAD1
Keyboard Keypad 2 VK_NUMPAD2
Keyboard Keypad 3 VK_NUMPAD3
Keyboard Keypad 4 VK_NUMPAD4
Keyboard Keypad 5 VK_NUMPAD5
Keyboard Keypad 6 VK_NUMPAD6
Keyboard Keypad 7 VK_NUMPAD7
Keyboard Keypad 8 VK_NUMPAD8
Keyboard Keypad 9 VK_NUMPAD9
Keyboard Keypad Period . VK_DECIMAL
Keyboard Keypad Divide / VK_DIVIDE
Keyboard Keypad Multiply * VK_MULTIPLY
Keyboard Keypad Minus - VK_SUBTRACT
Keyboard Keypad Plus + VK_ADD
Keyboard Up VK_UP
Keyboard Down VK_DOWN
Keyboard Right VK_RIGHT
Keyboard Left VK_LEFT
Keyboard Insert VK_INSERT
Keyboard Home VK_HOME
Keyboard End VK_END
Keyboard Page Up VK_PRIOR
Keyboard Page Down VK_NEXT
Keyboard F1 VK_F1
Keyboard F2 VK_F2
Keyboard F3 VK_F3
Keyboard F4 VK_F4
Keyboard F5 VK_F5
Keyboard F6 VK_F6
Keyboard F7 VK_F7
Keyboard F8 VK_F8
Keyboard F9 VK_F9
Keyboard F10 VK_F10
Keyboard F11 VK_F11
Keyboard F12 VK_F12
Keyboard F13 VK_F13
Keyboard F14 VK_F14
Keyboard F15 VK_F15
Keyboard Num Lock VK_NUMLOCK
Keyboard Caps Lock VK_CAPITAL
Keyboard Scroll Lock VK_SCROLL
Keyboard Right Shift VK_SHIFT
Keyboard Left Shift VK_SHIFT
Keyboard Right Control VK_CONTROL
Keyboard Left Control VK_CONTROL
Keyboard Right Alt VK_MENU
Keyboard Left Alt VK_MENU
Keyboard Print VK_SNAPSHOT