But IMHO, the most exciting moments in emulation history is when we see an emulator running on an old machine, such as the 8bit range of the past... The excellent Zeddy emulators (there are two of them) written by dr beep for the Spectrum belong to these magic moments. Of course we're not talking exactly about emulation here, as the CPUs between these two machines are the same, and only parts of the hardware need to be emulated. So the heaviest task for the processor to imitate another processor is spared in that case... The Spectrum is the genuine and direct descendant of the ZX81and really deserved to be able to successfully emulate its glorious ancestor! And it does it well, even though it's not the strongest among its Z80 competitors...
One thing I have noticed during all these years, there are Z80-based machines, like the Amstrad CPC family, the MSX 1/2 range and the mighty Enterprise 64/128, MUCH more advanced hardware-wise than a 48k Spectrum, also the Camputers Lynx 48/96/128, even the Grundy Newbrain and there has never been an attempt to emulate ZX81(and/or ZX80) on any of them...
I believe that this would be possible (and I assume relatively easy, even though I am not a programmer myself), it's just that no programmer had the interest of trying it so far...
There are already good software emulators for Spectrum running on Enterprise and MSX2 (and even Amstrad emulators for these machines), but no one has considered writing a Zeddy emulator for one or more of these platforms...
Nowadays, thanks to... emulators for the PCs etc., any programmer or just simple user can have the experience of using all the machines mentioned above, even though some of them are really obscure and difficult to find as real hardware. Also manuals and documentation for all of them can be found online, and there are sources of already finished emulators for the Zeddy on other platforms. So, more or less, (almost) everything needed by a bold programmer is available out there, to start developing ZX81 and ZX80 emulators for Z80-based machines who can handle the very limited features of these simple, minimalistic but yet genius home computing pioneers.
What is mostly needed to start is time (global lockdown circumstances help) and inspiration, and the latter is my purpose of opening this thread...
In 1987, a ZX81 emulator for MSX1 was launched in Brazil, developed by Rubens Pereira Silva Jr. and marketed by the company "KRON Publicações e Planejamento de Sistemas Ltda".
Here you can download it: http://msxbytes.blogspot.com/2011/11/em ... -zx81.html
and here the review of the Brazilian magazine Micro Sistemas:
ZeXtender board, Joy81 - Programmable Joystick Controller, Turbo Sound 81
i had planned to get each system where this would be possible, the P2000, the MSX and more.
At that moment I had coded the Zx81 emulator on the ZX Spectrum and the full running emulator on the SAM Coupe.
In the end I couldn’t get enough info for all the machines (or compiliers) so it was discontinued.
Now you can add with yourhelp.
Not true, I will explain why.kokkiklhs wrote: ↑Sat Dec 12, 2020 11:17 pm Of course we're not talking exactly about emulation here, as the CPUs between these two machines are the same, and only parts of the hardware need to be emulated. So the heaviest task for the processor to imitate another processor is spared in that case...
On a ZX128 with added hardware (even with more extra hardware on a 48K) this is mainly true, it is fully true on a SAM Coupe.
On a SAM you can define a memoryblock of 32K for the ZX81 which is accessible as #0000 to #7FFF. So you load ROM and software on real addresses and just run the code. All you do is use intrupts to update screen and read keyboard.
On a ZX Spectrum the ROM and software is dislocated from the original addresses. In my first emulator started on #5E00, in the second on #8000. So when you are accessing memory you need to JP to address +#8000 or LD A,(HL+#8000). This can only be done when each opcode is truly emulated. The only thing not needed is to transfer flags into right position in F-register.
Due to the emulation the speed is less than original, unlike SAM and ZX128 which are fast enough.
On the Enterprise, as I have read sofar, full speed is also possible.
@dr beep: I understand what you say, this mess with the addresses must be a real headache for a programmer... I wish I was a coder to help a little... Of course if there's anything else I could do from my side to help, I would do it more than gladly.
I have subscribed to forums interested in Camputers Lynx, Enterprise, there's also a Newbrain emulator (for the PCs) written by a fellow greek (I could ask him about details on this machine's architecture and/or documentation), so I can search for any info I could provide, in order to help with this idea... Just ask, anytime...
I am very glad to read that you already had the same idea with me (and long before I did) about developing ZX81 emus (and why not ZX80, perhaps even Jupiter Ace!!!) for several Z80-based systems!
That would be GLORIOUS, but I understand that it needs LOTS of time, reading and experimenting!
Cheers, I hope that this thread can be a good start!!
P.S. on the Enterprise 128 (only for the 128k) there are already excellent software emus for the Spectrum 48 and the Amstrad 464, very compatible and functional and running at 85-90% of the original speed, very impressive. So ZX81 emulation (even perhaps on the EP64) would be "piece of cake" for someone who knows what he's doing... I have a near future project to run your SP-2-ZX81 emu on a software emulated Spectrum on my real EP128, but I need to find time to dig out the real hardware.
Once I do it, I will post some photos here!
...BUT... did you notice something unusual on the pic above? No???? Let's have a closer look... What is this at the bottom of the screen? ENTERPRISE? What about it? Hey, wait a minute!!! Is this an EP128??? Yes, it is!! And it has the excellent SPemu software emulator, which emulates a Speccy 48k very accurately, at approximately full speed and with high compatibility. It even loads directly from genuine Spectrum cassette tapes, if you attach a tape recorder and no modifications/tweaks are needed!
So here comes my silly idea, which proved to be not-so-very-silly at the end!
How about trying to load dr.beep's ZX81 emulator for the Spectrum? It worked!!!
And now we have Mazogs running on an EP128 which emulates a 48k Spectrum, which emulates a 16k ZX81!!!
Reporting my impressions out of this test:
Well, the EP128 already runs as a Spectrum at a little lower speed, let's say 85-90%. The ZX81 emu by dr.beep also runs a little slower on a real Spectrum, so on the EP128 I assume that we have here a speed of about 65-70% of a real Zeddy. But this is quite reasonable and usable, we can play games at this speed, it's not dead-slow...
Two major caveats:
a) Only the first (1.0) version of dr.beep's Zeddy emu will load Zeddy games converted to TAP... The recent 2.0 version loads fine on the EP128, but it always freezes on the header section (bytes:filename) on the EP128. Of course this doesn't happen on real Spectrum or the 2.0 Zeddy emu running under a Windoze Speccy emu, like Spectaculator (the one I'm using on my laptop...)
b) On a real Spectrum or on a Windoze Spectrum emulator, both versions of dr.beep's Zeddy emu have a rather high compatibility rate, let's say that almost 7-8 out of 10 "normal" lo-res games will run fine. On the EP128 with the trick I tried, I was able to successfully play, let's say 3-4 out of 10 Zeddy proggies... Many of them are loading fine but they e.g. freeze/crash on the starting screen. Most recent games like the from Bob Smith will not run properly. But hey, 3D Monster Maze, La Pulga, Mazogs, Gauntlet, which are some of my all time favorites, run just fine, of course slower, as I mentioned above!! Cool!!
In fact there is already a ZX81 emu for the Enterprise, from the same author who made the Spectrum emulator...
https://translate.google.com/translate? ... ulator.htm
And you can download it (including sources) here:
But even though the Spectrum emulator is literally excellent, the Zeddy emu is not THAT good, at least as one would expect...
It has more or less the same compatibility issues that I found when running your Zeddy emu under Spectrum emulation...
Anyway, thumbs up to the author, as it is a really good piece of software, despite its imperfections and we shouldn't forget that it's 10 years old, without further improvement...
The benefits are a little more speed (as it runs "natively" on the EP) and the very nice feature of directly loading .P files!!
You mean the one by dr.beep (Johan Koelman), which can be found here:
https://www.mediafire.com/file/oiejfzmj ... X.zip/file
as given by Johan himself...
Along with the old version, you will also find included the second, improved version, released some months ago...