I was thinking that... it doesn't really matter much if my emulator prototype is only a garbage software-only emulator for now. in some years from now you will be able to run it on a MCU at high clock speeds, performing with very high precision that will make any pin signal differences impossible to tell apart from the real hardware ones (assuming you implement all legacy bugs too!).

All retro 8-bit and 16-bit hardware emulated as software on future MCUs will make FPGAs redundant for this particular purpose at least.

In the end it doesn't even matter.
https://youtube.com/clip/UgkxKMLT6TjzrDPYBuJPXKDK2MNvNJHkdX1r?feature=shared

#Spectrum #ZXSpectrum #Speccy #ZXSpectrum256 #ZX256 #Spectrum256 #retrocomputing

Bevor Sie zu YouTube weitergehen

Probably not useful for much, but I want to see what it would look/feel like to keep many spectrum screens arranged in a 3d space. The 3d model of a speccy may not fulfill a real function, but maybe it can work as a sort of icon to select the virtual keyboard, or as a 3d view of the virtual keyboard on which you can tap keystrokes. I still don't know what it's going to look like, this is highly experimental.

#ZXSpectrum #Speccy #Spectrum #retrocomputing #retrogaming #ZXSpectrum256 #Spectrum256 #ZX256

This still doesn't look right and I don't know where I'm going yet, but that's part of the fun I suppose.

#ZXSpectrum #Speccy #Spectrum #retrocomputing #retrogaming #ZXSpectrum256 #Spectrum256 #ZX256

I stayed up late and I fixed the optimisation problems, re-implemented flash, and re-implemented zoom. This is what it looks like now, the red indicator on the bottom right is the number of FPS.

And now I'm going to sleep! Good night!

#ZXSpectrum #Spectrum #Speccy #retrocomputing #retrogaming #ZXSpectrum256 #Spectrum256 #ZXGUI

@tsturm Yes and no.

It's a number of things:

1) Trying to see if I could fit unix-style listings into the Spectrum standard resolution.

2) Trying to see if I could fit unix-style listings using 51-column and 64-column text still in Spectrum standard resolution.

3) A rudimentary attempt (nowhere near ready) to imagine how Spectrum +3 commands should work, using real local filesystem files instead of +3 floppy images.

4) Trying to see whether I would be able to display a DivMMC-like user interface for loading snapshots using the Spectrum screen, or maybe I should use a native toolkit, or something else that works outside of the Spectrum screen (right now I just drag and drop files into the emulator window).

5) Other ideas, like a sort of Netflix interface but for Spectrum titles.

And then a few things more...

#ZXSpectrum
#Spectrum
#Speccy
#ZXGUI
#ZXSpectrum256
#Spectrum256
#retrocomputing
#retrogaming

Texture optimisation now works, working around the OpenGL problems on M1 when drawing on textures. I had a little regression having to implement the flash attribute differently, and also the zoom magnification factor has to be done again.

But hey... 600 FPS now, 200% more up from 200 FPS!

I think I could push it somewhere higher closer to 800 FPS, but I'm content with this already. Further optimisation might risk introducing convoluted and unreadable code.

This improvement leaves a lot of room for doing more processing and for many other things, also allowing for the emulator to be ported to slower machines with ease.

All in all, a good Sunday.

#ZXSpectrum #Spectrum #Speccy #ZXGUI #ZXSpectrum256 #Spectrum256 #retrocomputing #retrogaming

Argh, I think I lucked out on another Apple bug whilst trying to optimise the rendering of the ZX Spectrum screen for my emulator.

It seems to be a GL warning:

POSSIBLE ISSUE: unit 0 GLD_TEXTURE_INDEX_2D is unloadable and bound to sampler type (Float) - using zero texture because texture unloadable

And the program continues to run, but the textures are all rendered blank, and there is no apparent way to detect this during runtime, with no errors being thrown. I should probably keep a small Linux PC around at all times. Blimey I can't do that today on a Sunday afternoon.

Alternatively, I must endure a lengthy OS and XCode update and hope that after that process is completed, this particular Apple bug is fixed. Boring.

Flip side: If I manage to get this sorted, and the FPS rate still stands after that, getting 600 FPS and up after this optimisation, it may be well worth the hassle.

In the end.

#ZXSpectrum #Speccy #Spectrum #ZXSpectrum256 #Spectrum256 #retrocomputing

Here we go again. Hopefully a much improved implementation.

#ZXSpectrum #Z80 #Speccy #Spectrum #ZXSpectrum256 #Spectrum256 #retrocomputing

Still trying to guess what portable engine to use for my little ZX Spectrum emulator. I was using Engo, and that worked well for graphics display purposes, but it's rather terrible for handling keyboard input. Now I'm trying out Raylib, which just does the job for display purposes, and input handling seems less convoluted. I had warmed up to Engo, but I don't want to spend too much time taming the layers that are supposed to make your work lighter. In any case, the display has to render exactly the same and there can be no visible advantages, other than possibly minor performance bottlenecks uploading textures to the GPU.

#ZXSpectrum #Spectrum #
#Speccy #raylib #engo #retrocomputing #ZXSpectrum256 #Spectrum256