-
Notifications
You must be signed in to change notification settings - Fork 3
EN Options
Menu path: Options · Boards: all · Requires: SD card for custom-ROM flashing (everything else works without one)
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 usedto 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.
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
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 *.
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.
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.
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.
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.
| Value | Description |
|---|---|
| English | (default) OSD in English |
| Spanish | OSD in Spanish |
Stored as Config::lang (default 0 = English). Changing it redraws the menu
immediately.
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).
| 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.
- ZX Spectrum joystick interfaces: https://en.wikipedia.org/wiki/ZX_Spectrum#Joystick_interfaces
- Kempston interface: https://en.wikipedia.org/wiki/Kempston_joystick_interface
- Related submenu: Other
Меню (RU)
Сквозные темы
Для разработчиков