#zxspectrum — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #zxspectrum, aggregated by home.social.
-
Wec Le Mans - Title (AY) by Jonathan Dunn
./w/W.E.C.LeMans.ay?#0
Title: Wec Le Mans - Title (AY)
Author: Jonathan Dunn
#ZXSpectrum
#chiptune -
The last few days of ZenZX and zen80 development (my ZX Spectrum emulator and my Z80 emulator respectively) have been mostly about fine tuning memory contention correctness with precise T-state count, I/O contention, floating bus emulation, ULA last out byte, and a few other quirks and idiosyncracies very particular to ZX Spectrum emulation.
I'm not aiming to make ZenZX a simulator (like flooh's Z80) or an extremely precise emulator (like @FromTheFourthPlanet 's SpecIDE).
The first goal of ZenZX is to be a legible and usable ZX Spectrum emulator written in Go. That has already been largely achieved.
The second goal is subjective: to be able to run a good part of the software I personally considered to be some of the best I used to know for the ZX Spectrum back in the day. This has been largely achieved as well. My shortlist was that an emulator that is able to run Batman, Head Over Heels, Bruce Lee, and Jet Set Willy is a good enough ZX Spectrum emulator. Of course there is plenty of room for disagreement about the specifics here, but the general idea was that if some of the best titles are able to run on ZenZX, why wouldn't most others worth playing?
Which takes me to the third criteria: running a game is not exactly the same as loading it, and having dedicated quite a lot of effort to emulate the NEC FDC controller of the Spectrum +3, for a whille I neglected tape loading. The reason for that was that I had already developed reasonably functional loaders of .Z80 and .SNA snapshots, as well as ZenZX's own richer snapshot format .ZXS.
Though not the main focus of ZenZX, tape loading is historically important and there are many tape files of copy-protected games that ZenZX is still unable to load, even if it's able to run the games they contained via snapshot files. The other reason this has taken a long time is that loading of copy-protected tapes for some kinds of turbo loaders implies clock-perfect emulation, and perfect simulation of a host of ULA and bus peculiarities. Perfection of simulation of all the quirks has never been a ZenZX goal, but still, considering the historical weight of tape loading I persevered.
But there is a limit to how much perfection I can achieve within the technical limits and scope of ZenZX. Within the range of stated goals for ZenZX, in the next few weeks I'll be nearing the end of the correctness checks I aimed to deliver, most games run, many more tapes now load which didn't load before the latest improvements, but the truth remains that many copy-protected tape files were never part of the goal, still don't load and may never load.
What still lies ahead is massive UI improvements, making it more usable, making it more enjoyable, supporting a few more Speccy cousin models and custom ROMs, and possibly providing support for esxDOS. In that direction, both the Zenas assembler, and the zen80 emulator are now compatible with the ZX Spectrum Next's Z80N, including a test harness that checks behaviour against CSpect.
My expectation is that ZenZx is going to reach version 1.0 sometime in the next few weeks or months, delivering a reasonable emulation of ZX Spectrum 48k and ZX Spectrum 128k models, along with a list of tested titles that actually run on it.
Updates and fixes and new releases of the 1.x branch will continue for the reminder of 2026. The rest of the stuff that doesn't make it to the 1.x cycle is going to be scheduled to be released as part of a roadmap towards 2.0, sometime in 2027.
References:
-- flooh's cycle-stepped Z80 simulator
https://floooh.github.io/2021/12/17/cycle-stepped-z80.html-- Martian Girl's SpecIDE ZX Spectrum emulator
https://github.com/MartianGirl/SpecIde#zenzx #zen80 #Spectrum #ZXSpectrum #Speccy #emulator #foss #golang
-
Starglider (title) by Dave Lowe
./s/Starglider.ay
Title: Starglider (title)
Author: Dave Lowe
#ZXSpectrum
#chiptune -
Flashpoint by unknown
./f/Flashpoint.ay
Title: Flashpoint
Author: unknown
#ZXSpectrum
#chiptune -
Progress is being made. Complete success is still probably days or weeks away.
#zenzx #emulator #golang #foss #ZXSpectrum #Speccy #Spectrum #retrogaming #retrocomputing
-
Joe Blade (title) by Gari Biasillo
./j/JoeBlade1.ay?#0
Title: Joe Blade (title)
Author: Gari Biasillo
#ZXSpectrum
#chiptune -
Due to the way the zen80 emulator works (the Z80 emulator I wrote) and because when I started it I aimed for readability of the code and educational value more than raw performance, I've been hitting against a few limitations that seemed somewhat intractable when trying to make ZenZX load fast a good portion of the ZX Spectrum game titles that use a "turbo" copy protection.
For many titles that don't use that specific type of copy protection, ZenZX could load .tap and .tzx files just fine in "fast" mode, instantly loading and playing a game that used to take 3 or 4 minutes to load from tape. But games like Chase H.Q. and others, especially those which have substantial 128k versions, were a different story.
The design of zen80 (and ZenZX by extension) doesn't easily allow for dynamic acceleration of the virtual Spectrum's memory access beyond a certain limit. This would have been trivial to solve in C or C++ using a
unionstructure to access memory through different field arrangements, but Go (the language I chose to write zen80 and ZenZX) doesn't admitunionstructures. (and I could have used Go'sunsafepackage to implement something equivalent, but that would have defeated the educational purpose of writing an emulator in safe, readable, and educationally useful Go).So I was faced with the difficult possibilty of having to substantially redesign the emulator I've been working on for a couple of years.
Thankfully, that wasn't necessary. I designed an alternative "fast-track" memory that zen80 can use to read from and write to memory and i/o ports, which represents an addition and extension to the existing design, whilst keeping all the existing interfaces the same.
What good is it to have these extensions if, essentially, the CPU that already exists, and the one that's already wired into the code can't be dynamically accelerated to the maximum? you might ask.
Well, what it does is that it allows me to execute a second Z80 in parallel, just for the turbo loaders, with very high precision, at very high speed. The maximum speed a modern computer can achieve is potentially thousands of times the speed of an emulated Z80, especially for a Z80 that's running in parallel without need to update the screen.
So essentially, ZenZX now has a third tape loading mode
--tapemode=turbo, in addition to the already existing--tapemode=fastand--tapemode=accurate, with "accurate" being an euphemism for f* slow, identical to the original ZX Spectrum ROM tape loading routine.After some minor surgery to the code, a parallel Z80 instance now loads the game in a separate, faster memory, and when it's done loading and decoding whatever it has to do in turbo mode, every new tape block is copied verbatim to the memory of the user-facing emulator that ZenZX is running on the front shop.
I don't have much evidence to show yet, as I'm ironing out a number of other new wrinkles, trying to deliver a more polished user interface than you have seen in the last week or so. The thing with screenshots when everything goes right is that they look exactly the same as when everything went wrong but you fixed the problem 🤣
Here they are, for now you have to take my promise that these games actually loaded very fast! 🤣
#ZXSpectrum #Spectrum #Speccy #retrogaming #retrocomputing #zenzx #emulator #golang #foss #z80
-
RC2014 AY Driver Graphics and Sound test
-
Future Games - Title (Beeper) by Tim Follin
./f/FutureGames.ay?#0
Title: Future Games - Title (Beeper)
Author: Tim Follin
#ZXSpectrum
#chiptune -
Mastertronic Sales Records Reveal the 20 Biggest Budget Hits
#Mastertronic #Commodore64 #C64 #ZXSpectrum #Commodore16 #Plus4 #RetroGaming #8Bit #SebsPlace #RetroComputing
https://theoasisbbs.com/mastertronic-sales-records-reveal-the-20-biggest-budget-hits/?fsp_sid=12160 -
How I got started with computers over four decades ago.
https://journal.paoloamoroso.com/paoloamoroso/the-origins-of-my-computing-journey
-
Daley Thompson's Olympic Challenge - Title (AY) by Jonathan Dunn
./d/DaleyThompsonsOlympicChallenge.ay?#0
Title: Daley Thompson's Olympic Challenge - Title (AY)
Author: Jonathan Dunn
#ZXSpectrum
#chiptune -
TFreax, new game for #Atari8bit computers (and other vintage machines) https://forums.atariage.com/topic/392268-tfreax-a-new-atari400800-game-3k/ #atari #c64 #vic20 #zxspectrum #c16
-
The Mystery of Arkham Manor - Title (Beeper) by Unknown
./m/MysteryOfArkhamManorThe.ay
Title: The Mystery of Arkham Manor - Title (Beeper)
Author: Unknown
#ZXSpectrum
#chiptune -
Finally, after trying many cool computers & consoles, I'm trying my #r36s with what it's really worth! 😎
-
As a curiosity, this is the distant cousin of the oddball three-inch floppy drives used in the Amstrad CPC, PCW, and ZX Spectrum +3.
Yamaha marketed the MDR-1 as an external drive that allowed a line of their existing music instruments to record and retrieve digital data from magnetic disk media.
-
Wah! Woke up feeling bored with Retro. Time to take a holiday, then have a break from retro. On the hope that absent will make the heart grow fonder. Never thought this would happen. Failing that maybe some therapy. #retrogaming #zxspectrum
-
100 TIN SOLDIERS BANK HOLIDAY BLOWOUT SALE! A bundle by PuttyCAD, $4.99 for 8 games https://itch.io/s/199021/100-tin-soldiers-bank-holiday-blowout #indiegames via @itchio #zxspectrum #speccy #8bit #retro #brandnewretro #games
-
In the future everybody will have persistent random access memories.
-
Boiler House (in-game) by unknown
./b/Boiler_House.ay
Title: Boiler House (in-game)
Author: unknown
#ZXSpectrum
#chiptune -
Solar Invasion - Title (AY) by Tim Follin
./s/SolarInvasion.ay?#0
Title: Solar Invasion - Title (AY)
Author: Tim Follin
#ZXSpectrum
#chiptune -
Brand new Spectrum game (currently in beta): Dracula, by giadacu.
Download:
https://giadacu.itch.io/dracula -
Chase H.Q. among other things is notorious for its turbo copy protection. The emulator was able to load correctly Chase H.Q. for the ZX Spectrum 128k in "accurate mode" (meaning slow old, slow old). It wasn't able to accelerate the load in this version, the forthcoming version later in the week aims to solve that. On the plus side, the AY chip is producing relatively acceptable music and sound effects!
The emulator is still unable to save audio or video, so this is audio captured with the laptops mic, just enough to document that it works. I messed with the menus and other UI elements a bit to try to see if that would affect the emulation and the music, and I couldn't detect any difference. Another little emulation success, and homework for the rest of the week! -
Another instant tape loading success for the emulator. No living things were slapped during the production of this testing session.
-
Run the Gauntlet (title) by unknown
./r/RunTheGauntlet.ay
Title: Run the Gauntlet (title)
Author: unknown
#ZXSpectrum
#chiptune