Skip to content

EN Options

drew.po28@gmail.com edited this page Jul 22, 2026 · 3 revisions

Options

Menu path: Options · Boards: all · Requires: SD card for custom-ROM flashing (everything else works without one)

Overview

The Options menu holds the machine/ROM preferences, joystick configuration, keyboard-as-joystick emulation, interface language, and firmware/ROM Update. It also contains the Other submenu, which is large enough to have its own page — see Other.

  • Preferred Machine / Preferred ROM decide which model and ROM set the emulator boots into (or Last used to keep whatever you ran last).
  • Joystick picks the emulated joystick type and lets you remap its keys.
  • Joystick emulation maps PC-keyboard keys onto the joystick.
  • Language switches the OSD language.
  • Update reflashes the firmware (USB-BOOT) or a custom ROM image.

Most changes are saved to NVS immediately; switching Language redraws the menu right away.

Menu structure

Options
├── Preferred Machine ▸   Spectrum 48K / 128K / Pentagon 128K / 512K / 1024K / Last used
├── Preferred ROM ▸       per-machine ROM-set chooser (see below)
│   ├── Spectrum 48K ▸
│   ├── Spectrum 128K ▸
│   ├── Pentagon 128K ▸
│   ├── Pentagon 512K ▸
│   └── Pentagon 1024K ▸
├── Joystick ▸            Cursor / Kempston / Sinclair 1 / Sinclair 2 / Fuller + Assign keys
├── Joystick emulation ▸  Cursor Keys as Joy / TAB as fire 1 / Right Enter / WASD/KL
├── Other ▸               → see the Other page
├── Language ▸            English / Spanish
└── Update ▸              Firmware (USB-BOOT) + custom-ROM flashing

Preferred Machine

The model the emulator boots into at startup.

Value Marker Description
Spectrum 48K [4] Sinclair ZX Spectrum 48K
Spectrum 128K [1] Sinclair ZX Spectrum 128K
Pentagon 128K [P] Pentagon 128K clone
Pentagon 512K [5] Pentagon 512K
Pentagon 1024K [2] Pentagon 1024K
Last used [L] (default) boot into whatever machine was last running

Stored as Config::pref_arch (default Last). The current choice is marked with *.

Preferred ROM

A chooser per machine: pick Preferred ROM, then the machine, then its ROM set. Each ROM list ends with Last used (keep whichever ROM you last booted).

Machine ROM choices Config
Spectrum 48K 48K · 48K Spanish · Custom · Last used pref_romSet_48
Spectrum 128K 128K · 128K Spanish · +2 · +2 Spanish · ZX81+ · Custom · Last used pref_romSet_128
Pentagon 128K Original · Custom · Last used pref_romSetPent
Pentagon 512K Original · Custom · Last used pref_romSetP512
Pentagon 1024K Original · Custom · Last used pref_romSetP1M

All default to Last used (Last). Custom uses the matching custom ROM slot flashed via Update (below). The Spanish ROM entries are hidden in builds compiled without the Spanish ROMs.

Joystick

Pick the emulated joystick type (one of five), then optionally Assign keys to remap it.

Value Description
Cursor Sinclair Cursor / Protek (keys 5,6,7,8,0)
Kempston (default) Kempston interface (port #1F)
Sinclair 1 Sinclair Interface 2, port 1 (keys 1–5)
Sinclair 2 Sinclair Interface 2, port 2 (keys 6–0)
Fuller Fuller joystick interface
Assign keys Open the joystick mapping dialog — assign a Spectrum key (or special/Kempston action) to each pad direction/button (Left/Right/Up/Down, A/B/C/X/Y/Z, Start/Mode/L2/R2, Ok/Test), with a Define / Test mode toggle

Type stored as Config::joystick (default Kempston); selecting a type also loads its key map via Config::setJoyMap. The Kempston port itself (and the second-joystick / map-to-cursor toggles) live in Other.

Joystick emulation

Map PC-keyboard keys onto the joystick (handy when you have no physical pad). Each row is a Yes/No toggle.

Item Values Default Description
Cursor Keys as Joy Yes / No Yes Use the PC arrow keys as the joystick (drives the keyboard Scroll-Lock LED to show state)
TAB as fire 1 Yes / No No Remap TAB to fire 1 (and ` to fire 2); off restores TAB / grave as normal keys
Right Enter Yes / No (as Space) Yes Make the right-hand Enter act as Space
WASD/KL Yes / No Yes Use WASD + K/L as directional / fire keys

Stored as Config::CursorAsJoy, Config::TABasfire1, Config::rightSpace, Config::wasd.

Other

The Other submenu (ALU timing, 48K Issue 2, map-joystick-to-cursor, second joystick, Kempston port, throttling, hot keys, LED indicators, SD-card LED, and — on RP2350 — the RTC + NVRAM toggle) is documented on its own page: Other.

Language

Value Description
English (default) OSD in English
Spanish OSD in Spanish

Stored as Config::lang (default 0 = English). Changing it redraws the menu immediately.

Update

Flash new firmware or a custom ROM. The ROM-flashing rows only appear when an SD card is present (otherwise only Firmware is shown).

Item Hotkey Description
Firmware (USB-BOOT) Reboot into USB bootloader (reset_usb_boot) to drag-drop a new UF2
Custom ROM 48K — Flash a 48K custom ROM image from SD
Custom ROM 128k — Flash a 128K custom ROM image
Custom ROM Pentagon — Flash a Pentagon custom ROM
Custom ROM ALF — Flash an ALF custom ROM
Cartridge ROM ALF — Mount an ALF cartridge from SD (streamed from the card, not flashed; switches into ALF in place)
TRDOS ROM — Flash the Custom TR-DOS ROM slot (used by Storage → Betadisk → ROM → Custom)
Main ROM Pentagon bank #0 — Flash Pentagon main-ROM bank #0
Main ROM Pentagon bank #1 — Flash Pentagon main-ROM bank #1

Each ROM row opens the SD file browser (ROM folder) to pick the image, then writes it to the matching custom slot. These custom slots are what Preferred ROM → Custom and Betadisk → ROM → Custom then use. The exception is Cartridge ROM ALF: the cartridge is not flashed — it is mounted from SD and served from the card on demand (see Machine → ALF cartridge loading).

How to test

Action What it checks Expected result
Set Preferred Machine = 128K, reboot Boot model Emulator comes up as 128K
Set Preferred ROM (48K) = Custom after flashing one Custom-ROM slot The flashed 48K ROM is used
Joystick = Kempston, run a Kempston game Joystick type Pad/keys move the player
Joystick emulation → WASD/KL = Yes Keyboard-as-joystick WASD + K/L drive the joystick
Language = Spanish OSD language Menus redraw in Spanish

See Test images.

Links

Clone this wiki locally