mastodon.ie is one of the many independent Mastodon servers you can use to participate in the fediverse.
Irish Mastodon - run from Ireland, we welcome all who respect the community rules and members.

Administered by:

Server stats:

1.5K
active users

#emulator

18 posts5 participants0 posts today
@haitchfive<p>I can't believe I'm still doing this. Anyway, it now has sound. Not perfect sound, but pitch-accurate sound at least, using ebitengine's excellent package 'oto' <br><a href="https://github.com/ebitengine/oto" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/ebitengine/oto</span><span class="invisible"></span></a></p><p>Accurate enough to identify a tune, possibly less accurate AY-3-8912 streaming, but I designed an audio manager with a proper pipeline, a ringbuffer and independent volume channels going into a mixer. That made replacing the audio backend quite straightforward. Sophisticated for this kind of project, perhaps unnecessary, but that was part of the fun too.</p><p><a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/audio" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>audio</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a></p>
@haitchfive<p>We've got LOAD stripes! Not <strong>all of them stripes</strong> but at least we've got some! hahaha</p><p><a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a></p>
@haitchfive<p>Today is one of the less successful days of persistent debugging and little fruit.</p><p><a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a></p>
@haitchfive<p>Ahhhhh glorious! </p><p>God save Jon Ritman! (and Bernie Drummond, wherever he is)</p><p><a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>This reminds me I've made no effort whatsoever to plug the beeper or the Yamaha chip.</p><p><a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a><br><a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>Nanananananana Batman </p><p>The .tap I have for this one didn't work in fast mode, but it did work in "accurate" mode. I'm going to try to devise a middle ground mode that might work relatively fast and with reasonable accuracy. This is ongoing work. Anyway, not a big deal because you can always load the .tap file slowly and then save a snapshot. Snapshots always work.</p><p><a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>Eugene never changes.</p><p><a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a><br><a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p><strong>$ ./zenzx -tape jetsetwilly.tap</strong></p><p><a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a></p>
@haitchfive<p>Integer out of Spain.</p><p><a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p>Welcome to 1987.</p><p><a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/plus3" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>plus3</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/amstrad" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>amstrad</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a></p>
@haitchfive<p><strong>ZX Spectrum: emulated</strong></p><p>To be honest, I thought it was going to be a lot harder, and it would take a lot of debugging to get this done. </p><p>But ultimately, I only had to grab parts of the older Spectrum emulator I had started last year, remove the old spaghetti Z80 that didn't work well, and plug the new well-tested zen80.</p><p>I would call this a very successful weekend 🙂 </p><p><a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Z80</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/zenzx" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zenzx</span></a> <a href="https://oldbytes.space/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p><strong>zen80 roadmap</strong></p><p><strong><em>Having achieved high quality emulation, I'm moving to draft what comes next</em></strong><br><a href="https://github.com/ha1tch/zen80/blob/main/ROADMAP.md" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/zen80/blob/m</span><span class="invisible">ain/ROADMAP.md</span></a></p><ul><li><p>Development so far had focused primarily on two things: accuracy (for an emulator that doesn't want or need to be a clock-exact simulator), and readability (code that can be understood and grown, not optimised too early because that makes extensibility difficult).</p></li><li><p>Up next, I'm devising ways by which we can obtain both, the already existing readability of the code (for educative purposes), and <strong>also</strong> performance improvements that allow for other features to become possible (leaving more cycles available for host system implementation, like, say a ZX Spectrum).</p></li><li><p>This way, in our next iteration, zen80 aims to become one of the few Z80 emulators that is behaviourally accurate (done!), extensible and legible (already is), but also performant for serious practical use (work is ongoing).</p></li><li><p>I still need to update the README and documentation, I will be doing that soon, as I take a little rest completing some of the other adjacent projects, like the ZXA assembler 🙂 </p></li></ul><p><a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a></p>
@haitchfive<p><strong>zen80 update x5: ZEXALL is PASS</strong></p><p><strong><em>After successfully passing zexdoc and zexall for the first time, including all undocumented flag behaviours, zen80 is on equal footing with superzazu's and flooh's rZ80's emulation in terms of Z80 behavioural accuracy</em></strong></p><p>Timings, interrupt accuracy, and system mimicking is a whole another story, however. The next task at hand is plugging this new Z80 into the older Spectrum emulator that had a bad hardcoded Z80 in it.</p><p><a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a></p>
@haitchfive<p><strong>zen80 update x4</strong></p><p><strong><em>The Z80 emulator passes 100% of the unit tests, Spectrum ROM coverage, and ZEXDOC stress tests</em></strong></p><p>Coming up next is preparation of the ZEXALL test, which tests the Z80 implementation against a series of stringent probes that examine the most idiosyncratic quirks, undocumented features, and mindbending side effects known on the Z80.</p><p><a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a></p>
@haitchfive<p><strong>zen80 update x3</strong></p><p><strong><em>COVERAGE.md now reflects the implementation of undocumented features, hidden registers, odd Z80 quirks, complete implementation of Z80 interruption modes</em></strong></p><p>The emulator successfully runs both synthetic test suites (ZEXDOC) and real-world software (Spectrum ROMs), demonstrating both theoretical correctness and practical compatibility.</p><p><a href="https://github.com/ha1tch/zen80/blob/main/COVERAGE.md" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/ha1tch/zen80/blob/m</span><span class="invisible">ain/COVERAGE.md</span></a></p><p><a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a></p>
@haitchfive<p><strong>zen80 update x2:</strong></p><p><strong><em>This is what it does when it runs the ZX Spectrum 128 initialisation process</em></strong> </p><p>It ensures that the toastrack's ROMS 0 and 1 are paged, and that we correctly run an extensive coverage of the instruction set using one of the most widely distributed pieces of non-trivial Z80 code.</p><p>The ZX Spectrum 128 ROMs don't use the entire instruction set, our stats say that at least the initialisation process covers about 69% of the Z80 instruction set.</p><p><a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/Z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Z80</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/retrocomputing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrocomputing</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a></p>
@haitchfive<p><strong>zen80 update: improved tests</strong></p><p><strong><em>Apart from the already substantial unit tests, we now have two additional and rather stringent tests:</em></strong></p><ol><li><p>This test loads the ZX Spectrum 128 ROMs (0 and 1) and runs that machine's initialisation process. Then it shows a statistical analysis of the instruction coverage that's been executed during rom initialisation. (total percentage of different opcodes executed for each instruction group)</p></li><li><p>The second big test implements traps as barebones CP/M shims, loads ZEXDOC.COM and runs its extensive stress test (this can be long). </p></li></ol><p>Work is ongoing to support ZEXALL.COM as well, an even more stringent version of zexdoc that also tests undocumented registers and quirks of the Z80, one of the hardest tests known. This will be next, after I'm certain that this passes all ZEXDOC tests without a hitch. So far so good!</p><p><a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a></p>
@haitchfive<p>Slowly getting there...</p><p><a href="https://oldbytes.space/tags/zen80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>zen80</span></a> <a href="https://oldbytes.space/tags/ZXSpectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ZXSpectrum</span></a> <a href="https://oldbytes.space/tags/Spectrum" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Spectrum</span></a> <a href="https://oldbytes.space/tags/Speccy" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Speccy</span></a> <a href="https://oldbytes.space/tags/z80" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>z80</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a> <a href="https://oldbytes.space/tags/foss" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foss</span></a> <a href="https://oldbytes.space/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a></p>
Feoh<p><span class="h-card" translate="no"><a href="https://mastodon.social/@sonicwalker" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>sonicwalker</span></a></span> And for dilettantes like me who might just want to get a feel for how the TR909 worked there's this 'emulator' which lets you play with a TR909 in your browser :)</p><p><a href="https://oldbytes.space/tags/synth" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>synth</span></a> <a href="https://oldbytes.space/tags/web" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>web</span></a> <a href="https://oldbytes.space/tags/browser" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>browser</span></a> <a href="https://oldbytes.space/tags/tr909" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tr909</span></a> <a href="https://oldbytes.space/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a></p>
Danthrax<p>The Android version of Yaba Sanshiro Sega Saturn emulator just another new feature: RetroAchievements! It joins a short list of Saturn emulators that hook in to the service. Get the details in my story: </p><p><a href="https://www.segasaturnshiro.com/2025/08/06/android-version-of-yaba-sanshiro-adds-retroachievements/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">segasaturnshiro.com/2025/08/06</span><span class="invisible">/android-version-of-yaba-sanshiro-adds-retroachievements/</span></a></p><p><a href="https://retro.pizza/tags/sega" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sega</span></a> <a href="https://retro.pizza/tags/saturn" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>saturn</span></a> <a href="https://retro.pizza/tags/segasaturn" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>segasaturn</span></a> <a href="https://retro.pizza/tags/android" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>android</span></a> <a href="https://retro.pizza/tags/videogames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>videogames</span></a> <a href="https://retro.pizza/tags/retrogaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogaming</span></a> <a href="https://retro.pizza/tags/retrogames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>retrogames</span></a> <a href="https://retro.pizza/tags/mobilegames" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mobilegames</span></a> <a href="https://retro.pizza/tags/mobilegaming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>mobilegaming</span></a> <a href="https://retro.pizza/tags/emulator" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>emulator</span></a></p>