EmuNews

NeoST

habib256/neost

3 tracked updates · latest 16 days ago

GitHub

NeoST 0.6.2

0.6.2 release
Release notes · 9 files

NeoST 0.6.2 — closer to the metal

Seven weeks of hardware fidelity work since 0.6.1.

Deterministic external control. A --server mode, joystick scripts, memory probes and state exploration: the same script replays the same game down to the cycle. Disks can be swapped while running and drive B unplugged from the server.

Serial and keyboard chips rebuilt to match the hardware. The MFP USART, the Mega STE SCC, the MIDI and keyboard ACIAs, the IKBD protocol and the real-time clock. Custom 6301 keyboard programs are now recognised: Froggies over the Fence runs on all three disks.

Floppies and hard disks. More faithful STX copy protections, WD1772 write-protect timing, and ACSI transfers that honour the DMA sector count.

68881 FPU. Transcendental functions are bit-exact.

Video and memory. STE 336-pixel mode, the 22-bit video counter wrap, the "stopped Shifter" trick (resolution 3), and two new RAM sizes: 2176 KB and 2.5 MB.

Sound. The PSG crackle in Super Hang-On is gone, and STE DMA sound starts on the exact sample of the PLAY write.

Comfort. Alt+Enter toggles fullscreen with mouse capture, mouse sensitivity is adjustable, the GEMDOS host drive is reliable (accented file names on macOS, no call served twice), and the CRT curvature is subtler by default.

Save states move to format v51: states from earlier versions are refused.

macOS is still unsigned by Apple: right-click the app and choose Open on first launch.

NeoST 0.6.1

0.6.1 release
Release notes · 9 files

NeoST 0.6.1 — your settings stay put

A patch release. No new features: 23 defects found and fixed across five rounds of multi-agent bug hunting, plus a hardware-validation pass on the published packages.

Settings are saved again

On macOS and on every AppImage, NeoST runs from read-only media, so it stores its configuration in your user directory — but it never created that directory, and every setting was silently lost when you closed the emulator. Five of the eight packages were affected. Machine profile, video, audio and MIDI setup now survive a restart.

Also fixed

  • The macOS disk image installs by drag and drop. It shipped with the app alone, no Applications shortcut.
  • The web build ships its licences (GPL-3.0, GPL-2.0, third-party notices), like every other package.
  • A save-state can no longer be reloaded under a different ROM. The pairing relied on two bytes of TOS version, which five localisations share, so resuming under the wrong ROM froze the CPU without a word. The state format is now v19; v18 and older are refused explicitly, with a message that says why.
  • A malformed .PRG can no longer make NeoST read outside its memory — Windows package only, where a 32-bit long turned an unvalidated header field into a negative index.
  • Android: data unpacking repairs itself instead of staying permanently incomplete, and the touch model was rewritten — a tap now produces a real click, and the two-finger right click works.
  • Kiosk: the picture is no longer cropped on screens narrower than 16:10, and a key no longer sticks when you switch between desktop and kiosk while holding it.
  • Web: the STE profile started on an ST-only ROM; it now starts on EmuTOS 256 KB.
  • UltraSatan: a packet left in flight no longer hijacks the next sector write, and an ejected card is really remounted.
  • MIDI: the MT-32 checkbox did nothing, muting every channel of a device reopened it wide at restart, and a race between two threads could corrupt the message decoder.
  • Headless harness: a truncated dump, trace or capture is now reported as a failure instead of being announced as a success.

Notes

macOS is still not signed by Apple: right-click the app and choose Open on first launch. Windows shows a SmartScreen warning for the same reason — one click to proceed.

Every package is 100% free software: EmuTOS only, three freely distributable demos, and every shipped component named with its licence.

The 0.5.2 and 0.5.4 releases were removed on 2026-09-02 — their archives contained Atari ROMs. Their git tags remain.

Full Changelog: https://github.com/habib256/neost/compare/0.6...0.6.1

NeoST 0.6

0.6 release
Release notes · 9 files

NeoST 0.6 — MegaSTE on the test bench, MIDI studio, fully free packages

192 commits since 0.5.4.

MegaSTE validated on the Field Service bench — the diagnostic cartridge's Q suite passes 12/12, and it is replayed on every full test tier, so it stays passing.

MIDI studio. Input now clocks at a real 31250 baud — the ACIA pulls bytes on a scheduler event instead of receiving one burst per frame (×20 throughput, 92% of a real cable). A merge box feeds several keyboards into the ST's single ACIA with per-source channelisation; output routes per channel to several destinations. Plus device profiles, same-model devices told apart by unique ID, an adjustable output lead, and a built-in GM synth. Hardware devices now work on all three platforms — CoreMIDI, ALSA and winmm. The only gap left is the virtual port on Windows, which the OS cannot create.

Networking. CAB browses theoldnet.com from the GUI; EtherNEC (ROM3/ROM4 windows fixed) and the Slirp backend pass 5/5.

Accuracy. Blitter-stolen cycles advance the timer clock; the FDC FIFO flush stalls the CPU at Hatari's exact rate; a halted 68000 says so; the med-res left border removal is fixed. Closure and a generated Spectrum 512 test join the pixel tier, and three demo references moved off Atari ROMs.

Interface. Per-port Input page, clickable ST keyboard, per-source audio mixer, desktop/kiosk toggle from the keyboard.

Packages are 100% free by default. The public history no longer distributes any proprietary file (repository pack 165 → 12 MiB): EmuTOS only, three freely distributable demos bundled, and every shipped component named with its licence.

Known limitation

The macOS .dmg is neither signed nor notarised and the Windows .zip is not signed. Gatekeeper will report "NeoST is damaged". Until notarisation, clear the quarantine flag:

xattr -dr com.apple.quarantine /Applications/NeoST.app

Update, 2026-09-01 — macOS package replaced

NeoST-0.6-macOS-universal2.dmg was re-uploaded. The original build carried no bundle signature at all — only the ad-hoc signature the linker puts on the Mach-O binaries, with the Info.plist unbound and no sealed resources — so a downloaded copy was reported by macOS as damaged, with no way to open it short of a terminal command.

The replacement seals the bundle with an explicit ad-hoc signature. NeoST is still not notarised (that needs a paid Apple Developer ID), so macOS still asks on first launch — but now it asks, instead of refusing: right-click NeoST.app → Open → Open.

Nothing else changed in the emulator — the packaging script gained the signing step (commit e80faa3), and the other seven packages are untouched. SHA256SUMS.txt has been updated for the new .dmg.