Testing emulators using z80test-1.0. Quick results

Struggling with Fuse or trying to find an emulator with a specific feature. Ask your questions here.
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Pegaz »

Still waiting for the link to that mysterious emulator. 8-)
User avatar
PeterJ
Site Admin
Posts: 6873
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Testing emulators using z80test-1.0. Quick results

Post by PeterJ »

Pegaz wrote: Thu Apr 30, 2020 7:38 pm Still waiting for the link to that mysterious emulator. 8-)
Your wait is over...

https://github.com/mikedaley/SpectREM

It's not been touched for two years though. It's Apple MacOS only.

If users are posting about unusual Emulators please include a hyperlink to the project page. Thank you.
polomint
Drutt
Posts: 29
Joined: Mon Nov 13, 2017 1:50 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by polomint »

PeterJ wrote: Thu Apr 30, 2020 7:54 pm
Pegaz wrote: Thu Apr 30, 2020 7:38 pm Still waiting for the link to that mysterious emulator. 8-)
https://github.com/mikedaley/SpectREM
There is also the CPP version of the above at https://github.com/mikedaley/SpectREMCPP
So far, so meh :)
User avatar
PeterJ
Site Admin
Posts: 6873
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Testing emulators using z80test-1.0. Quick results

Post by PeterJ »

Excellent [mention]polomint[/mention] . Do you need to run compile it with Visual Studio or similar? I can't see a pre-built binary.
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Pegaz »

I don't have a Mac, but thanks anyway.
Windows build would be very welcome of course...

btw, Patrik Rak has opened a github page dedicated to his z80test programs so anyone can find and use them to check the emulator's accuracy.
https://github.com/raxoft/z80test
User avatar
PeterJ
Site Admin
Posts: 6873
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Testing emulators using z80test-1.0. Quick results

Post by PeterJ »

Pegaz wrote: Thu Apr 30, 2020 8:39 pm I don't have a Mac, but thanks anyway.
Windows build would be very welcome of course...

btw, Patrik Rak has opened a github page dedicated to his z80test programs so anyone can find and use them to check the emulator's accuracy.
https://github.com/raxoft/z80test
No problem. I have sent a PM to [mention]edjones[/mention] asking him to include links where possible. Saves us lots of wasted searching around the internet!

Are these any different to the ones mentioned on the first post of this thread [mention]Pegaz[/mention]? They are both v1.00.

viewtopic.php?p=10626#p10626

I've been meaning to say Fire 'n Ice is one of my all time favourites! Were you involved in the development?
polomint
Drutt
Posts: 29
Joined: Mon Nov 13, 2017 1:50 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by polomint »

PeterJ wrote: Thu Apr 30, 2020 8:32 pm Excellent @polomint . Do you need to run compile it with Visual Studio or similar? I can't see a pre-built binary.
Yes, compile it with Visual Studio. The core is in C++ so can be used with whatever language can wrap that. I used the C++ core wrapped in a Win32 C++ Visual Studio project and then added in UI elements etc. to at least get something working. It had a nearly working Windows part but that had to be changed a lot to actually get it working (someone else helped get the OpenGL renderer working).
I've only done this mainly as a way to learn a bit about C++ and Win32 programming (I mainly use C#), so don't expect too much from the Windows version :)
So far, so meh :)
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Pegaz »

PeterJ wrote: Thu Apr 30, 2020 8:45 pm
Pegaz wrote: Thu Apr 30, 2020 8:39 pm I don't have a Mac, but thanks anyway.
Windows build would be very welcome of course...

btw, Patrik Rak has opened a github page dedicated to his z80test programs so anyone can find and use them to check the emulator's accuracy.
https://github.com/raxoft/z80test
No problem. I have sent a PM to @edjones asking him to include links where possible. Saves us lots of wasted searching around the internet!

Are these any different to the ones mentioned on the first post of this thread @Pegaz? They are both v1.00.

viewtopic.php?p=10626#p10626

I've been meaning to say Fire 'n Ice is one of my all time favourites! Were you involved in the development?
No changes, but it's good that everything is available on github now.

btw, I'm not involved in making Fire'n'Ice, it's one of the first Eastern games I tried many years ago.
That loading screen is my favorite, it defines my character pretty well ;) and it's been my avatar ever since.
User avatar
djnzx48
Manic Miner
Posts: 730
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: Testing emulators using z80test-1.0. Quick results

Post by djnzx48 »

Pegaz wrote: Thu Apr 30, 2020 12:49 pm
djnzx48 wrote: Wed Apr 29, 2020 11:55 pm I've tried SpecIde in the past, and it works well, but its accuracy comes at a price. On my machine, it uses a lot of CPU and runs too slowly to be really usable. I don't know if that aspect has been improved since then, but maybe it runs better on other people's computers anyway.
Last few versions I tried, work just fine on my old dual core laptop in full screen mode.
If you've only tested in windowed mode, it's still crawling.
Fortunately, full screen mode is the only thing that matters to me, and it works really well there.
I also tested 50hz sync via the hdmi port on the TV and it is great, I would say perfect.
Also, the emulator is rock solid stable, but until it has some sort of GUI, I doubt it will reach a larger user base.
btw, it's really refreshing that after many years, we've got a female author, an extremely talented programer, like we may not have had in the Spectrum scene, since Veronica Megler.
I tried the latest version in fullscreen mode to see if I would get better performance, but unfortunately it didn't really help. All four builds ran slowly and with stuttery sound. I will just have to accept that my computer can't handle the awesome power of this emulator.
DarkTrancer

Re: Testing emulators using z80test-1.0. Quick results

Post by DarkTrancer »

There a link to the SpudEmu V0.001?
polomint
Drutt
Posts: 29
Joined: Mon Nov 13, 2017 1:50 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by polomint »

DarkTrancer wrote: Fri May 01, 2020 5:27 am There a link to the SpudEmu V0.001?
From the developer:
Not yet, still under development, executable files issued to select few beta testers only, links should be available on World Of Spectrum within the next week or so
So far, so meh :)
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Pegaz »

djnzx48 wrote: Thu Apr 30, 2020 11:52 pm
Pegaz wrote: Thu Apr 30, 2020 12:49 pm Last few versions I tried, work just fine on my old dual core laptop in full screen mode.
If you've only tested in windowed mode, it's still crawling.
Fortunately, full screen mode is the only thing that matters to me, and it works really well there.
I also tested 50hz sync via the hdmi port on the TV and it is great, I would say perfect.
Also, the emulator is rock solid stable, but until it has some sort of GUI, I doubt it will reach a larger user base.
btw, it's really refreshing that after many years, we've got a female author, an extremely talented programer, like we may not have had in the Spectrum scene, since Veronica Megler.
I tried the latest version in fullscreen mode to see if I would get better performance, but unfortunately it didn't really help. All four builds ran slowly and with stuttery sound. I will just have to accept that my computer can't handle the awesome power of this emulator.
Oddly enough, I tested it on Win 7 64 bit, with my 9 year old laptop, dual core Intel 6200, 2 Ghz and there are no issues in full screen mode.
If you are using older windows (XP/Vista/7), you should try out the MinGW version, because the standard 32 and 64 bit versions are customized for windows 10.
It may also matter what the cpu is about, maybe the emulator is not well optimized for amd, if that is the case.
You can't go wrong with the setup because there is virtually nothing to adjust.
 
User avatar
djnzx48
Manic Miner
Posts: 730
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: Testing emulators using z80test-1.0. Quick results

Post by djnzx48 »

In my case, it's almost surely the CPU. I'm currently using a laptop that is about 8 years old, and due to severe thermal problems I have to clock the CPU down below 1.5GHz if I don't want the fans spinning constantly. Disassembling it in an attempt to remove dust from the case didn't fix the problem, so it struggles running some programs. (I did try the other builds just in case.)
User avatar
PeterJ
Site Admin
Posts: 6873
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Testing emulators using z80test-1.0. Quick results

Post by PeterJ »

polomint wrote: Fri May 01, 2020 7:57 am From the developer:
Not yet, still under development, executable files issued to select few beta testers only, links should be available on World Of Spectrum within the next week or so
Thank you for the explanation [mention]polomint[/mention].
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Pegaz »

djnzx48 wrote: Fri May 01, 2020 8:41 am In my case, it's almost surely the CPU. I'm currently using a laptop that is about 8 years old, and due to severe thermal problems I have to clock the CPU down below 1.5GHz if I don't want the fans spinning constantly. Disassembling it in an attempt to remove dust from the case didn't fix the problem, so it struggles running some programs. (I did try the other builds just in case.)
I had the exactly the same problem last year and cleaning the dust was unfortunately not enough.
In my case it was necessary to replace the cooling heatsink and after that CPU went back to normal operating temperature.
I don't know exactly hardware requirements for this emulator, but I think those 2Ghz are probably some lower limit.
edjones
Drutt
Posts: 33
Joined: Fri Feb 28, 2020 1:42 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by edjones »

Sorry about no links yesterday. I hadn't been given any links, only pics to post. Reckon they were after starting the hype train for new releases!
User avatar
druellan
Dynamite Dan
Posts: 1470
Joined: Tue Apr 03, 2018 7:19 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by druellan »

PeterJ wrote: Wed Apr 29, 2020 9:33 pm I missed this first time round druellan. Excellent work!
In the end is little more than a tech curiosity really, since an emulator is much more than a Z80 recreation, but we discovered interesting things, and some authors got inspired to improve on their projects, which is nice.

Another similar and very interesting thread is the AY Emulation Testing viewtopic.php?f=23&t=1045
User avatar
PeterJ
Site Admin
Posts: 6873
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Testing emulators using z80test-1.0. Quick results

Post by PeterJ »

Looking at the results [mention]druellan[/mention] (with many getting very similar scores) do you think that many are sharing the same Z80 emulation code? No issue with that. I would not know where to start writing an emulator!
User avatar
druellan
Dynamite Dan
Posts: 1470
Joined: Tue Apr 03, 2018 7:19 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by druellan »

Well, that is something an emulator author might answer. There are many emulators that are built around a Z80 core, like this java one by [mention]zx81[/mention] https://github.com/jsanchezv/Z80Core, or they used the same literature to create their own core.

But I think that the results you see here are similar because this test is designed to catch undocumented flags, specially the behavior discovered by Patrik Rak that is specific to only genuine Zilog Z80 CPUs, and fails on even real Spectrums (viewtopic.php?p=11038#p11038). Some developers decided not to emulate this because it has no clear benefit for the emulation, so, I think it is natural we see very similar results, because most of them fail on those particular tests.
User avatar
Seven.FFF
Manic Miner
Posts: 744
Joined: Sat Nov 25, 2017 10:50 pm
Location: USA

Re: Testing emulators using z80test-1.0. Quick results

Post by Seven.FFF »

Yes. The tests will pass on NMOS Z80s that are genuine Zilog, They may pass on some second-sourced from designs officially provided by Zilog (Mostek). They may fail on others second-sourced from designs officially provided by Zilog (SGS), reverse-engineered Z80s (some E.European/Russian), or official second-sources based on reverse engineering rather than designs (NEC). They may also fail on CMOS Z80s of any origin.

They're a useful tool for emulator authors, but a less useful tool for judging the authenticity of designs. The most compatible Z80 code is that which uses only officially documented instructions. Software that seeks to trip up emulators by making use of private implementation details only succeeds in making itself incompatible with genuine Z80s.
Robin Verhagen-Guest
SevenFFF / Threetwosevensixseven / colonel32
NXtel NXTP ESP Update ESP Reset CSpect Plugins
User avatar
Lethargeek
Manic Miner
Posts: 742
Joined: Wed Dec 11, 2019 6:47 am

Re: Testing emulators using z80test-1.0. Quick results

Post by Lethargeek »

afaik memptr test is very reliable for all the range and might fail some subtests on eastern Z80 clones only; scf/ccf effects is another story
User avatar
PeterJ
Site Admin
Posts: 6873
Joined: Thu Nov 09, 2017 7:19 pm
Location: Surrey, UK

Re: Testing emulators using z80test-1.0. Quick results

Post by PeterJ »

ES.pectrum

Not an emulator I had used before but seems to have a support for a large range of machines:

Failed 9 of 152

http://www.habisoft.com/espectrum/EN.htm#Descargas

http://www.habisoft.com/espectrum/Manual/EN.htm

Image

Emulation of official models: 16, 48, 48+ (Spanish, Swedish, Arab), 48 NTSC, 128, 128+ (Spanish), grey +2 (Spanish, English, French, Arab), black +2 (Spanish, English, Arab) v4.0 and v4.1, +3 (Spanish, English) v4.0 and v4.1, Timex TC2048, Timex TC2068, Timex TS2068, Unipolbrit Komputer 2086.
Emulation of clones: Inves+, Tk90x (Portuguese, Argentinian), Tk95 (Portuguese, Argentinian), Orel BK-08, Pentagon 128, Pentagon 512, Pentagon 1024 SL v2.x, Scorpion ZS-256, Scorpion ZS-256 Turbo+, Leningrad, Dubna 48K, ATM-Turbo, ATM-Turbo 2+, Ice-Felix HC-91, BK-0001, Foton-IK03.
Emulation of mods: +2e (Spanish, English), +3e (Spanish, English), Spanish Pentagon.
Emulation of virtual ones: Spec256-48, Spec256-128.
Recognized formats:
Snapshot: Z80, SNA, SP, FSU, SZX, EZX, ESP (native).
Tape: TAP, TZX, PZX, CSW, WAV, VOC.
Disc: DSK, FDI, TRD, SCL, Hobbeta, MDR (if it can be considered as one).
Actions: RZX.
Screen: PNG, GIF (animated), SCR.
Cartridge: DCK, ROM (IF2, Dandanator), BIN.
Video: WMV.
Storage: HDF, RAW / BIN, IMG.
Emulation of hardware:
DivMMC.
Multiface 1, 128, +3, SpecMate.
Dandanator, including old versions.
Data-Gear (DMA).
PDS (development system). Requires a special DosBox version for linking.
Turbo Sound.
Covox, Specdrum.
16c modes in Pentagon.
64 / 4096 colour palette in Pentagon.
ULA+.
ZX1 extras (raster interruption, turbo, 128x96 mode).
Timex video modes.
Z80_GFX and 256 colour modes (Spec256, EmuzWin).
Betadisk: Beta, Beta+, Beta 128, and clones: Apina, CAS, Arcade, IDS 91, CBI 95.
Joysticks: Cursor / Protek / AGF, Sinclair 1 y 2, Fuller, Kempston.
Mouse: Kempston.
Guns: Gunstick, Lightgun.
Turbo modes.
Patrik Rak
Microbot
Posts: 116
Joined: Mon Apr 13, 2020 3:07 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Patrik Rak »

Seven.FFF wrote: Fri May 01, 2020 4:32 pmThey're a useful tool for emulator authors, but a less useful tool for judging the authenticity of designs. The most compatible Z80 code is that which uses only officially documented instructions. Software that seeks to trip up emulators by making use of private implementation details only succeeds in making itself incompatible with genuine Z80s.
Well, I would say that you can still use it to judge the quality of the Z80 emulation to some extent regardless.

If the "full" test fails after any of SCF/CCF/SCF+CCF/CCF+SCF, it means it implements other SCF/CCF behaviour than authentic NMOS Zilog Z80, but it's rather esoteric indeed. In such case, the "postccf" test will inevitably fail half of the tests, that's expected. However, until 2012, none of the emulators got this right, and some real CPUs differ as well, so I guess it's something we can live with.

If the "full" test fails after BIT N,(HL/IX/IY) instructions, it means it doesn't implement MEMPTR properly. In such case, the "memptr" test will very likely fail many tests, that's expected too. Of course, MEMPTR was nailed down much earlier, so even if it is obscure, authors should consider emulating it. Unlike the SCF/CCF, I don't think there is any real Z80 CPU which differs regarding MEMPTR.

If the "full" test fails after all IN instructions, the emulator quite likely incorrectly emulates bit 6 of port #FE. While it's not Z80 feature per-se, this should be obviously fixed, as it can impact real games.

Anything else means the z80 emulation is far from perfect and it should be fixed if possible.

So, while you can argue the test is synthetic, seeing numbers greater than 4 means real incompatibilities... The more of those, the worse Z80 emulation, at least that's how I see it (despite the fact that Z80 emulation alone doesn't make a great emulator, of course).
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using z80test-1.0. Quick results

Post by Pegaz »

I just tested the ZX ULAX emulator and I'm not surprised that it passed all the tests. :)
Great job Lethargeek, I hope you'll add emulation of classic Sinclair 48k/128k models in the future.

Image
User avatar
Lethargeek
Manic Miner
Posts: 742
Joined: Wed Dec 11, 2019 6:47 am

Re: Testing emulators using z80test-1.0. Quick results

Post by Lethargeek »

Thanks, [mention]Pegaz[/mention]! Ihope i will add original models too. I chose Pentagon to have faster and simpler start without the contention troubles and other things non-essential for the main goal. As for these tests, i mostly followed the FUSE source code for flag effects.
Post Reply