-
Notifications
You must be signed in to change notification settings - Fork 3
EN Other
Menu path: Options → Other · Boards: all (RTC + NVRAM is RP2350 only) · Requires: nothing (the RTC row needs an SD card to keep its NVRAM)
A grab-bag of machine-, input- and indicator-related toggles that don't belong to the audio, video or storage menus. Most are global settings saved to NVS and applied immediately; a few apply on the next reset:
- Machine timing — ULA/ALU Early vs Late timing and the 48K Issue 2 EAR behaviour.
- Joysticks / input — map a joystick to the cursor keys, pick the second joystick source, and choose the Kempston port address.
- Performance — a throttling delay to cap the frame rate.
- Hot Keys — rebind the OSD/emulator keyboard shortcuts.
- Indicators — on-screen LED indicators and the onboard SD-card activity LED.
- RTC + NVRAM (RP2350) — the Pentagon/Profi Mr Gluk MC146818 real-time clock with battery-backed CMOS.
Other
├── ALU Timing ▸ Early / Late (ULA contention timing)
├── 48K Issue 2 ▸ Yes / No
├── Map joystick to cursor ▸ No / Yes
├── Second joystick ▸ DPAD #1 / DPAD #2 / NUMPAD
├── Kempston joystick port ▸ 1Fh / 37h / 5Fh
├── Throttling ▸ None / 1000 / 2000 / 3000 µs
├── Hot Keys ▸ rebind OSD/emulator shortcuts
├── LED indicators ▸ Yes / No + Legend
├── SD card LED ▸ Yes / No
└── RTC + NVRAM ▸ (RP2350) Yes / No
(RTC + NVRAM is appended at runtime only on RP2350 boards.)
| Item | Values | Default | Description |
|---|---|---|---|
| ALU Timing | Early / Late | Early | ULA/ALU contention timing. Late shifts the interrupt window 1 T-state later (CPU::latetiming); some borderline demos/games need Early vs Late. Applied live (updateStatesInFrame) |
| 48K Issue 2 | Yes / No | Yes | Emulate Issue 2 keyboard/EAR hardware (port #FE bit 3 feeds back into the EAR input, inverting bit 6). Only affects the Spectrum 48K; Issue 3 machines don't do this feedback |
| Map joystick to cursor | No / Yes | Yes | When Yes, a joystick / D-pad also drives the cursor keys (Config::joy2cursor) |
| Second joystick | DPAD #1 / DPAD #2 / NUMPAD | DPAD #2 | Which controller acts as the second joystick (Config::secondJoy): the first or second D-pad, or the numeric keypad |
| Kempston joystick port | 1Fh (31) / 37h (55) / 5Fh (95) | 1Fh | I/O port the Kempston joystick responds on (Config::kempstonPort). #1F is the standard; the alternates avoid clashes with some interfaces |
| Throttling | None / 1000 / 2000 / 3000 | None | Per-frame sleep in microseconds (Config::throtling) — adds a delay to slow the emulator / cap CPU use. None = run as fast as the frame timer allows |
| Hot Keys | — | — | Opens the hotkey editor: rebind each OSD/emulator shortcut. F6 = reset all to defaults, F8 / Del = clear a binding. Some entries (e.g. the menu key) are read-only. Saved to NVS |
| LED indicators | Yes / No (+ Legend) | No | On-screen activity LED bar (Tape, Floppy/TR-DOS, DivMMC/esxDOS, Z-Controller, IDE/HDD, Beeper, AY, Covox, SAA1099, MIDI, General Sound, ULA+, Timex SCLD, Gigascreen, RAM paging, Z80 DMA, Kempston joy/mouse, ZiFi network TX/RX). Legend opens a key explaining each icon. Can also be toggled on/off live with Alt+F8 (reconfigurable) |
| SD card LED | Yes / No | No | Blink the onboard LED (GPIO 25) on physical SD-card access (Config::sdLedBlink) |
| RTC + NVRAM (RP2350) | Yes / No | No | Pentagon/Profi Mr Gluk TimeKeeper (MC146818 emulation) + battery-backed CMOS. See RTC + NVRAM below |
The ULA generates the maskable interrupt at a fixed point in the frame; real machines vary by a T-state or two in exactly when. Late timing moves the interrupt window 1 T-state later than Early. Most software is insensitive, but a few timing-tight demos and games only run correctly under one or the other. The change is applied immediately (no reset).
On a real Issue 2 Spectrum 48K, writing port #FE causes bit 3 (the MIC/border bit)
to feed back into the EAR input on bit 6, inverting it. Issue 3 machines don't.
Toggling this matches the behaviour some tape loaders and keyboard-reading routines
expect. It only affects the 48K machine.
- Map joystick to cursor — when on, a D-pad/joystick also presses the cursor keys, so cursor-key games work without configuring a joystick.
-
Second joystick — selects the source for the second player's joystick: the first
D-pad (
DPAD #1), the second D-pad (DPAD #2, the default), or the numeric keypad (NUMPAD). -
Kempston joystick port — the Kempston interface is normally read at port
#1F;#37and#5Fare alternates for setups where#1Fclashes with another device.
See Options (Joystick → Assign keys) and Hardware (HID devices) for the full joystick/gamepad mapping.
Adds a fixed microsecond sleep each frame (None, 1000, 2000, 3000 µs). Use it
to slow the emulator down or reduce CPU load / heat. The default is None — the
emulator simply runs to its normal 50 Hz frame timer.
The hotkey editor lists every rebindable OSD/emulator action with its current binding. Select a row and press the new key combination to rebind it. F6 resets every binding to its default, and F8 / Del clears the selected one. A few core actions (the menu key) are read-only and can't be changed. Changes are saved to NVS on exit.
- LED indicators draws a small on-screen bar of activity lights for the emulated peripherals. The submenu also has a Legend that lists what each icon means: Tape (EAR), Floppy/TR-DOS, DivMMC/esxDOS, Z-Controller, IDE/HDD, Beeper, AY-3-8912, Covox DAC, SAA1099, MIDI, General Sound, ULA+, Timex SCLD, Gigascreen, RAM paging, Z80 DMA, Kempston joy, Kempston mouse, and ZiFi network activity (TX / RX). The whole bar can be toggled on/off at any time with the Alt+F8 hotkey (rebindable in Hot Keys), without opening the menu.
- SD card LED blinks the board's onboard LED (GPIO 25) whenever the SD card is physically accessed — a hardware activity light.
RP2350 only. This row is appended to the Other menu at runtime; it does not appear on RP2040 boards.
A Yes/No toggle (default No) that enables the Pentagon / Profi Mr Gluk TimeKeeper — an MC146818 real-time clock with battery-backed CMOS NVRAM:
- The clock answers on ports
#DFF7(register latch) and#BFF7(data) on Pentagon and Profi machines. When No, those ports are bypassed and Gluk reports "NO CMOS". - The NVRAM is persisted to
cmos.nvrin the config dir on SD (battery emulation): loaded at init, flushed when dirty. - Setting the time: the clock is synced from the internet over SNTP — see Network (Time zone + Sync time (SNTP); auto-syncs on WiFi connect and at boot when a WiFi network is saved). The RTC must be enabled here for the sync to have anywhere to write.
| Action | Feature | Expected result |
|---|---|---|
| Toggle LED indicators → on | LED bar | Activity icons appear and light up when tape/disk/sound is active |
| LED indicators → Legend | Legend | A popup lists every LED icon's meaning |
| Enable RTC, set Time zone + Sync time (Network) on a Pentagon/Profi | RTC | Mr Gluk shows the correct date/time instead of "NO CMOS" |
| Set Throttling = 3000 | Throttling | Emulator visibly slows / lower CPU load |
See test images.
- ULA timing / contention background: https://worldofspectrum.org/faq/reference/48kreference.htm
- Issue 2 vs Issue 3 EAR feedback: https://worldofspectrum.org/faq/reference/48kreference.htm
- Kempston interface: https://en.wikipedia.org/wiki/Kempston_joystick_interface
- SNTP time sync (RTC): Network
- Board GPIO maps (LED / SD pins): Boards & pinout
Меню (RU)
Сквозные темы
Для разработчиков