Testing emulators using Border test. Quick results

Struggling with Fuse or trying to find an emulator with a specific feature. Ask your questions here.
TheMartian
Microbot
Posts: 100
Joined: Wed Feb 03, 2021 5:18 am

Re: Testing emulators using Border test. Quick results

Post by TheMartian »

Pegaz wrote: Mon Dec 07, 2020 6:26 pm Yes, SpecIde is a great emulator, but incredibly hardware demanding.
Without the quad core cpu at 3 Ghz, theres no chance for smooth operation in some higher resolutions.
I managed to run it in 720p and full screen mode at full speed, but in windowed mode it just crawls.
A similar situation is with Linux and on the raspberry Pi 3B+, its virtually unusable with few frames per second. :)
I'm running SpecIde mostly on GNU/Linux (Ubuntu/Xubuntu 20.10) and Windows 10 64-bit. I've been using a Core 2 Duo E7500 (two cores @2.93GHz, it takes about 60% CPU) for some time, and it works nicely on Linux both on full screen (1920x1080 - the TV screen in the living room, lol) and windowed modes. I've tried to run it on a Raspberry Pi 3B and it is what you say, it just can't move.

SpecIde emulates things cycle-by-cycle. It does 7 million iterations per second. When I started writing it, I wanted it to be precise, and to have the best full screen mode ever seen on a Spectrum emulator for Linux. So, instead of counting cycles, I tried to see what would happen if I emulated them all. I guess I've learned a lot about Spectrums :) also thanks to the help of many people who've commented or provided analysis on ZX Spectrum behaviour.

Also, I'm not so good at multi threaded programming in C++ yet, so I'm not quite taking advantage of the newer CPUs with multiple cores. :D

Really, the bad performance issue is something that itches on my brain a lot, but as I say, SpecIde is sort of a "pilot project". Maybe some day, if I find the time, I'll try to do an actual emulator. :)
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using Border test. Quick results

Post by Pegaz »

TheMartian wrote: Wed Feb 03, 2021 5:29 am Hi, this is Marta, SpecIde's dev

Yeah, I found this bug on March 2020 and since then it's been fixed on the main branch. This was an error in the calculation of I/O contention, precisely found thanks to this test. (Funny, that I/O contention is so very seldom used at all!). Seems that I had it right at the beginning, then I tried to fix something, and well, I "fixed" it. jsmolina's fork is still at Aug.2018, so that's why it works fine.

I'd recommend to try to compile the emulator from sources, whenever possible. These days, due to work, I'm working on SpecIde when I find the time and energy, and sometimes I fail to provide Windows binaries with the due dilligence. Sorry for that.

I've seen the comments, and I really thank you for your appreciation of SpecIde. :)

Cheers!
Hi Marta and welcome, its nice to see you here at SC.
Your emulator is really something special in terms of accuracy and I really like it. :)
I think I mentioned it earlier, but SpecIde is the only emulator that I know of, that runs the "snow" test program correctly, the way it works on a real Spectrum 48k.
Of course, the emulator still needs to be improved with more features and a better GUI, but it's still great and I often use it in combination with the advmenu, as a frontend.
At the moment, there is one little thing that I would like, and that is the ability to use some command line switch to turn on antialisaing from the start, instead of pressing Shift + F2 every time.
btw, thank you for this fix in the latest source code, I already managed to compile the emulator under Raspbery Pi, but I am struggling to do it under Windows.
It would be great if you could provide the latest Windows binary on your github page.

Cheers!
TheMartian
Microbot
Posts: 100
Joined: Wed Feb 03, 2021 5:18 am

Re: Testing emulators using Border test. Quick results

Post by TheMartian »

Pegaz wrote: Wed Feb 03, 2021 9:46 am At the moment, there is one little thing that I would like, and that is the ability to use some command line switch to turn on antialisaing from the start, instead of pressing Shift + F2 every time.
Done! Now I've added the --antialias command line option, and also the antialias=yes option in the config file.
Pegaz wrote: Wed Feb 03, 2021 9:46 am It would be great if you could provide the latest Windows binary on your github page.
And done! I've updated the files in the Readme.MD, they point to my Drive. Those are usually the latest, until I make a proper release.

Cheers!
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using Border test. Quick results

Post by Pegaz »

TheMartian wrote: Wed Feb 03, 2021 10:22 pm
Pegaz wrote: Wed Feb 03, 2021 9:46 am At the moment, there is one little thing that I would like, and that is the ability to use some command line switch to turn on antialisaing from the start, instead of pressing Shift + F2 every time.
Done! Now I've added the --antialias command line option, and also the antialias=yes option in the config file.
Pegaz wrote: Wed Feb 03, 2021 9:46 am It would be great if you could provide the latest Windows binary on your github page.
And done! I've updated the files in the Readme.MD, they point to my Drive. Those are usually the latest, until I make a proper release.

Cheers!
Thanks for the prompt response Marta, really appreciate it.
Just tested the new Windows binaries and everything works great. :)
I have already mentioned the test program, which only works correctly on SpecIde.
I thought he was working on SpecEmu as well, but that wasn't true.
Here is the program and what it looks like on real Spectrum 48K and SpecIde:
https://drive.google.com/file/d/0B-KEen ... pCcmc/edit
https://www.youtube.com/watch?v=Ix9Wy2jhDwI

However, since SpecIde is currently the closest to perfection in terms of accuracy, you may be interested in this old thread, regarding a very special ULA behavior, which allows four bright shades, under certain conditions.
https://www.worldofspectrum.org/forums/ ... rlace-demo

Currently, only one official demo (MQM 5) and several small test programs demonstrate this capability and only ZX Spin and SpecEmu have support for these effects.
I haven't noticed that this exotic ULA quirk affects any other software, but if you have the opportunity to implement it in the future, no one will be able to tell the difference between SpecIde and real Spectrum anymore. :)
btw, I read somewhere that SpecIde also supports the Pentagon model (or just timings) but I can't start it.
I tried to add pentagon.rom and trdos.rom to the SpecIde folder, but without success.
User avatar
4thRock
Manic Miner
Posts: 415
Joined: Thu Nov 09, 2017 9:35 am
Location: Portugal

Re: Testing emulators using Border test. Quick results

Post by 4thRock »

Pegaz wrote: Thu Feb 04, 2021 1:17 pm However, since SpecIde is currently the closest to perfection in terms of accuracy, you may be interested in this old thread, regarding a very special ULA behavior, which allows four bright shades, under certain conditions.
Thats new to me!

Relevant links, so people don't need to go through the entire WOS thread:
https://omega.webnode.com/news/mqm5-effect/
https://omega.webnode.com/news/another-ula-effect/
azesmbog
Manic Miner
Posts: 307
Joined: Sat May 16, 2020 8:43 am

Re: Testing emulators using Border test. Quick results

Post by azesmbog »

Pegaz wrote: Thu Feb 04, 2021 1:17 pm I have already mentioned the test program, which only works correctly on SpecIde.
I thought he was working on SpecEmu as well, but that wasn't true.
It works exactly the same on SpecEmu.
And on the hard emulator ZX Uno works just as well
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using Border test. Quick results

Post by Pegaz »

[mention]azesmbog[/mention]

You're right, I turned off the snow effect before and forgot to turn it on again. ;)
btw, which zx-uno core are you using for this test?
azesmbog
Manic Miner
Posts: 307
Joined: Sat May 16, 2020 8:43 am

Re: Testing emulators using Border test. Quick results

Post by azesmbog »

Pegaz wrote: Thu Feb 04, 2021 6:17 pm btw, which zx-uno core are you using for this test?
zx48 Kyp core - ideal core for ZX Spectrum 48
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using Border test. Quick results

Post by Pegaz »

azesmbog wrote: Thu Feb 04, 2021 6:21 pm
Pegaz wrote: Thu Feb 04, 2021 6:17 pm btw, which zx-uno core are you using for this test?
zx48 Kyp core - ideal core for ZX Spectrum 48
This one ?
https://github.com/Kyp069/zx48.zxuno/releases

Does it support 128k models and can it be installed as a base Spectrum core, through the SPECTRUM.ZX1 file ?
azesmbog
Manic Miner
Posts: 307
Joined: Sat May 16, 2020 8:43 am

Re: Testing emulators using Border test. Quick results

Post by azesmbog »

Pegaz wrote: Thu Feb 04, 2021 6:45 pm Does it support 128k models and can it be installed as a base Spectrum core, through the SPECTRUM.ZX1 file ?
Kyp made two versions of its kernel - only zx48 and only zx128 and only for TV video.
Look on the forum, there should be my version zx48tv \ vga + zx128tv \ vga + pentagon (unfinished :) + SAA1099
.ZX1 file link attached)
TheMartian
Microbot
Posts: 100
Joined: Wed Feb 03, 2021 5:18 am

Re: Testing emulators using Border test. Quick results

Post by TheMartian »

Pegaz wrote: Thu Feb 04, 2021 1:17 pm Thanks for the prompt response Marta, really appreciate it.
Just tested the new Windows binaries and everything works great. :)
I have already mentioned the test program, which only works correctly on SpecIde.
I thought he was working on SpecEmu as well, but that wasn't true.
Here is the program and what it looks like on real Spectrum 48K and SpecIde:
https://drive.google.com/file/d/0B-KEen ... pCcmc/edit
https://www.youtube.com/watch?v=Ix9Wy2jhDwI

However, since SpecIde is currently the closest to perfection in terms of accuracy, you may be interested in this old thread, regarding a very special ULA behavior, which allows four bright shades, under certain conditions.
https://www.worldofspectrum.org/forums/ ... rlace-demo

Currently, only one official demo (MQM 5) and several small test programs demonstrate this capability and only ZX Spin and SpecEmu have support for these effects.
I haven't noticed that this exotic ULA quirk affects any other software, but if you have the opportunity to implement it in the future, no one will be able to tell the difference between SpecIde and real Spectrum anymore. :)
btw, I read somewhere that SpecIde also supports the Pentagon model (or just timings) but I can't start it.
I tried to add pentagon.rom and trdos.rom to the SpecIde folder, but without success.
You're welcome :)

About the snow effect, I guess I got it quite close. It's still not 100% accurate yet, though. :) It also works when it affects upper RAM, so if you run, for instance, Renegade 128K, you'll see a little snow-effect glitch whenever the screen toggles between the menu and the high scores.

As for the ULA glitches, I think I was aware of them (and also of the dot crawl in 48K models). All of them are described in the ULA book by Chris Smith, and I myself have been using my old 48K Speccy since '84, so I noticed. However, I'm going to consider this "low priority" for the moment. These days I'm trying to implement the rest of the Pentagon (the disk drive, FD1793 and TRD/SCL support), and I'd rather focus for the moment on this, or on adding some kind of user interface/debugger/etc.

The Pentagon ROMs: I'm using two 16-kB files, called "pentagon-0.rom" and "pentagon-1.rom". The first one is the 128K ROM + TR-DOS support, and the second is a regular English toastrack ROM1. The TR-DOS ROM is called "trdos.rom". I think I got them from a distribution of the old X128 that I had around. So far, the support for Pentagon is just the timings, the border, and the ROM switching in and out. The "Rage" demo works nicely, I think. However, until I don't implement the disk interface, I won't be able to test it more thoroughly. :) (Also, the ROM thing is quite recent; I should document it...)

Cheers!
TheMartian
Microbot
Posts: 100
Joined: Wed Feb 03, 2021 5:18 am

Re: Testing emulators using Border test. Quick results

Post by TheMartian »

azesmbog wrote: Thu Feb 04, 2021 5:46 pm
Pegaz wrote: Thu Feb 04, 2021 1:17 pm I have already mentioned the test program, which only works correctly on SpecIde.
I thought he was working on SpecEmu as well, but that wasn't true.
It works exactly the same on SpecEmu.
And on the hard emulator ZX Uno works just as well
It works *better* on SpecEmu, actually. :) The pattern there is even more accurate. However, SpecEmu doesn't display snow effect when the contended access is in the range $C000-$FFFF. The loader of Ninja Hamster 128K shows snow on a toastrack.
User avatar
Pegaz
Dynamite Dan
Posts: 1210
Joined: Mon Nov 13, 2017 1:44 pm

Re: Testing emulators using Border test. Quick results

Post by Pegaz »

[mention]TheMartian[/mention]

Thanks for the info, I was able to get the Pentagon main screen now. :)
btw, I totally agree with your priorities.
The TRDOS software base is huge and this would bring significant quality to the emulator itself.
Also, some GUI with proper file selector or even tape browser is also a very important thing, because it will greatly expand the emulator user base.
The other things can wait, SpecIde is one of the most accurate emulator, already...
User avatar
ZjoyKiLer
Dizzy
Posts: 67
Joined: Thu Sep 09, 2021 3:20 pm

Re: Testing emulators using Border test. Quick results

Post by ZjoyKiLer »

My emulator, YUME. I'll release it soon:
Image
azesmbog
Manic Miner
Posts: 307
Joined: Sat May 16, 2020 8:43 am

Re: Testing emulators using Border test. Quick results

Post by azesmbog »

then you also need to add Z64K
Image

ZXSEC fixed
Image
User avatar
ZjoyKiLer
Dizzy
Posts: 67
Joined: Thu Sep 09, 2021 3:20 pm

Re: Testing emulators using Border test. Quick results

Post by ZjoyKiLer »

I forgot. These are the results of Timing_Tests-48k_v1.0 in YUME:


Image
azesmbog
Manic Miner
Posts: 307
Joined: Sat May 16, 2020 8:43 am

Re: Testing emulators using Border test. Quick results

Post by azesmbog »

And one more emulator, this time for Linux and MacOS
https://github.com/TomHarte/CLK
Image
azesmbog
Manic Miner
Posts: 307
Joined: Sat May 16, 2020 8:43 am

Re: Testing emulators using Border test. Quick results

Post by azesmbog »

I checked several online emulators, maybe there were some, well, let it be again.

Qaop:
Image
Ideally

JSSpeccy3:
Image
Not very neat, but wide border

R.A.Z.E.:
Image
Everything is very bad here, and the border is very narrow, and the timings leave much to be desired.

I rechecked one of the previous emulators with a slightly updated version of the test, yet its timings are inaccurate, I hope the author will pay attention to this.

z64k:
Image
Post Reply