Skip to content

EN Other

drew.po28@gmail.com edited this page Jun 27, 2026 · 3 revisions

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)

Overview

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.

Menu structure

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.)

Options

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

ALU Timing (Early / Late)

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).

48K Issue 2

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.

Joysticks & Kempston

  • 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; #37 and #5F are alternates for setups where #1F clashes with another device.

See Options (Joystick → Assign keys) and Hardware (HID devices) for the full joystick/gamepad mapping.

Throttling

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.

Hot Keys

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 & SD card LED

  • 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.

RTC + NVRAM (RP2350)

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.nvr in 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.

How to test

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.

Links

Clone this wiki locally