Page 1 of 6

Testing emulators using z80test-1.0. Quick results

Posted: Tue May 22, 2018 4:03 am
by druellan
A friend shared with me this little tool designed by Patrik Rak for testing Z80 instructions on emulated environments.
Download: https://www.dropbox.com/s/33he0chzu6v7x ... 0.zip?dl=0

The full set consists of 152 individual tests, that I decided to run on several of the emulators I have at hand. I captured only the end result, but the tool provides a concise list of both passed and failed tests.

SpecEmu v3.1 build 16/03/18
Image
Result: all tests passed (!)

Retro Virtual Machine 2.00 Alpha
Image
Result: 001 of 152 tests failed.

FUSE 1.5.3
Image
Result: 002 of 152 tests failed.

ZXSpin 0.7
Image
Result: 004 of 152 tests failed.

Spud 0.250
Image
Result: 005 of 152 tests failed.

ZERO 0.7.1
Image
Result: 003 of 152 tests failed.

ZEsarUX 6.1-RC
Image
Result: 008 of 152 tests failed.

UnrealSpeccy 0.38.2
Image
Result: 010 of 152 tests failed.

EightyOne 1.9
Image
Result: 014 of 152 tests failed.

EmuZWin 2.7
Image
Result: 015 of 152 tests failed.

Speccy 4.6
Image
Result: 088 of 152 tests failed.

And some DOS ones, thanks @Equinoxe for the testing!

X128
Image
Result: 086 of 152 tests failed.

R80 0.30
Image
Result: 013 of 152 tests failed.

RealSpec
Image
Result: 019 of 152 tests failed.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 9:16 am
by zx81
You has forget to test JSpeccy... ;)

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 10:15 am
by djnzx48
Interesting results!
I tried this out with Spectaculator, and it gave exactly the same results as Fuse: only the SCF and CCF tests failed, and with identical CRC values too.
Image

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 10:56 am
by Ast A. Moore
Well, this one is not exactly a be-all and end-all test—and it only tests the CPU, not Spectrum emulation itself—but, yes, SpecEmu is a very accurate emulator. I’m curious, though, how’d you come across the alpha version of Retro Virtual Machine? Could you share a link, perhaps?

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 2:21 pm
by druellan
zx81 wrote: Tue May 22, 2018 9:16 am You has forget to test JSpeccy... ;)
JSpeccy 0.93.1
Image
Result: all tests passed.

My respects!

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 2:41 pm
by druellan
Ast A. Moore wrote: Tue May 22, 2018 10:56 am Well, this one is not exactly a be-all and end-all test—and it only tests the CPU, not Spectrum emulation itself—but, yes, SpecEmu is a very accurate emulator.
I agree. The CPU is a very important part of the package, but the emulator still needs to translate that to the screen, provide tools and interpreters for the different snaps and file formats, manage expansions and interfaces and other enhancements. I rather use a no-so-perfect CPU emulation with extra stuff that a perfect one that is barebone.

So, it is interesting to know how the different emulators compare using the same test tool, but if one emulator is better than another, that is really a personal opinion based on many factors.
Ast A. Moore wrote: Tue May 22, 2018 10:56 amI’m curious, though, how’d you come across the alpha version of Retro Virtual Machine? Could you share a link, perhaps?
Ah! That was a test version I have, and was provided by the author and is not for distribution (sorry). To be fair I was not supposed to post that screenshot here, but the results are so good that I thought it only shows how good that emulator is going to be.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 2:52 pm
by Ast A. Moore
druellan wrote: Tue May 22, 2018 2:41 pm That was a test version I have, and was provided by the author and not for distribution (sorry).
No biggie, man. I understand.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 2:54 pm
by druellan
+F Spectrum Emulator
Image
Q parameter error, 20

Qaop
Image
Result: 002 of 152 tests failed.
Impressive!

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 3:07 pm
by RMartins
The description of Zero 0.7.1 says 005 but the image states only 3 errors.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 3:18 pm
by druellan
RMartins wrote: Tue May 22, 2018 3:07 pm The description of Zero 0.7.1 says 005 but the image states only 3 errors.
Oh! My bad! Sadly, I can't change it anymore. I also misspelled "quick" on the title :roll:

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 3:34 pm
by RMartins
Which instruction are these ?

ALO A, A
ALO something

SLIA A

SRO (xy)

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 3:43 pm
by RMartins
There are some inconsistent results too

Running `Z80Full.tap`
Gives 002 errors, for example.

and I see that instruction INC RR an INC XY (apparently they are different things (could it be second is for iX and iY ?) are returned as OK.
But these return as errors, when running `Z80ccf.tap`

It's not running a subset of the full test, or something fishy is going on.

NOTE: I was using FUSE, for test.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 4:22 pm
by zx81
RMartins wrote: Tue May 22, 2018 3:43 pm There are some inconsistent results too

Running `Z80Full.tap`
Gives 002 errors, for example.

and I see that instruction INC RR an INC XY (apparently they are different things (could it be second is for iX and iY ?) are returned as OK.
But these return as errors, when running `Z80ccf.tap`

It's not running a subset of the full test, or something fishy is going on.

NOTE: I was using FUSE, for test.
That's true. I have Fuse 1.5.3 compiled from sources by myself running Fedora 28 (GCC 8.1.1). z80full fails two tests. But z80ccf fails 65 tests, first the 000 SELF TEST and then from INC RR fails many tests, JMP instructions included.

JSpeccy pass all tests OK from z80ccf. I'm very confident with Patrik's tests. I suspect from some problem with Fuse.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 5:32 pm
by RMartins
Independently of the quality of the test tool, it might have some specific dependency on a specific instruction, that if it fails, it might trigger a lot of other fails.

What I mean, is a simple fail, might trigger a lot more fails, because the test tool relies on that specific bad instruction, to make other tests.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 5:34 pm
by druellan
RMartins wrote: Tue May 22, 2018 3:43 pm It's not running a subset of the full test, or something fishy is going on.
The readme says: "- z80ccf - tests all flags after executing CCF after each instruction tested.", so I understand is not a subset of the z80full but a variation of the test?

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 5:50 pm
by druellan
Z80Stealth 1.23
Image
Result: 025 of 152 tests failed.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 5:57 pm
by druellan
Patrik Rak however later discovered that the way how the flags 5 and 3 are affected after SCF/CCF actually depends on the previous instruction completed. In case of genuine Zilog CPU, if an instruction modifies the flags, the immediately following SCF/CCF does move of bits 5 and 3 from A to F, whereas if an instruction doesn't modify the flags (and after interrupt), the SCF/CCF does OR of bits 5 and 3 from A to F. In case of NEC and other clones, it is similar, except that instead of OR it does AND with some unknown value, making the result unreliable.
Source: https://faqwiki.zxnet.co.uk/wiki/Z80

The z80ccf.tap is perhaps related to that?

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 6:03 pm
by zx81
druellan wrote: Tue May 22, 2018 5:57 pm
Patrik Rak however later discovered that the way how the flags 5 and 3 are affected after SCF/CCF actually depends on the previous instruction completed. In case of genuine Zilog CPU, if an instruction modifies the flags, the immediately following SCF/CCF does move of bits 5 and 3 from A to F, whereas if an instruction doesn't modify the flags (and after interrupt), the SCF/CCF does OR of bits 5 and 3 from A to F. In case of NEC and other clones, it is similar, except that instead of OR it does AND with some unknown value, making the result unreliable.
Source: https://faqwiki.zxnet.co.uk/wiki/Z80

The z80ccf.tap is perhaps related to that?
Yes, it's related.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 6:05 pm
by RMartins
OK, then a great test to do, is save the app into a snapshot after break, and then run it on a real Spectrum, using DIVIde, DivMMC or similar.

I'm curious to run this on the ZX Next too :)

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 6:32 pm
by MonkZy
ZXBaremulator (version 3.H.5)

Image

All tests pass!!

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 6:51 pm
by zx81
[mention]MonkZy[/mention]

Thanks by the test. JSpeccy shares the Z80 core with ZX Baremulator, simply translated from Java to C++.

Are you using a mini-LCD monitor or a Raspberry's LCD touch screen?. Your system is really cool... :D

Re: Testing emulators using z80test-1.0. Quck results

Posted: Tue May 22, 2018 6:55 pm
by MonkZy
The screen is a cheap Chinese clone from eBay, it is a copy of the Waveshare 5" display. It does have a touch screen but I don't use it as the driver support is not good. The case is designed and printed by me 8-) I will open a thread about it, one day. I am a huge ZXBaremulator fan.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Sat May 26, 2018 5:58 pm
by Magnus
May I add the results for SoftSpectrum48 (it was a pain though :geek: ):
Image

Re: Testing emulators using z80test-1.0. Quck results

Posted: Sat May 26, 2018 8:36 pm
by druellan
Magnus wrote: Sat May 26, 2018 5:58 pm May I add the results for SoftSpectrum48 (it was a pain though :geek: ):
Image
Nice work. I'm testing your emulator and I can say it looks promising. It plays the Gyroscope music quite well, something not all emulators are able to do.

Re: Testing emulators using z80test-1.0. Quck results

Posted: Sat May 26, 2018 9:11 pm
by Pegaz
Spectramine v1.0.1b, passed all tests.

Image

I'm not surprised, Woody has already praised this emulator, as very precise...