Post subject: Major Update
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
So, on the surface it has been all quiet on the spectrum front for the last month or so. What has actually been happening, is that we have been soldiering on away from the master branch working on emulation timings (among other things). I am happy to say that ZXHawk in the dev build is now passing all the Z80, contention and floating bus tests that we have been able to throw at it. It is also running every one of the technically advanced scene demos (that require a precise timing implementation) that I can find, perfectly. Alyosha should take most of the credit for much of this work (indeed ALL of the Z80 work) and we are now at a stage where making the core ZX Spectrum machine emulation within Bizhawk more accurate is going to be extremely difficult. Which is a good place to be :) As usual, please let me know if you come across anything untoward. Thanks, -Asni
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Tremendous job gentlemen! Here's some cookies for you two.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3822)
Joined: 11/30/2014
Posts: 2832
Location: US
Well that was a lot of work but the result was certainly well worth it! The Spectrum uses a lot of hardware trickery to get things done, and getting everything just right is must for this core. Fortunately, the Spectrum community has reverse engineered the system to fine detail, and had many tests available to fix bugs. It must have taken them many hundreds if not thousands of hours to get to the point where we are now where every t-state is accounted for, it's a pretty impressive feat! Truth be told there are still a few minor inconsistencies between the z80 core and the real thing, but they are undectable on the spectrum anyway (except maybe NMI somehow?) and not used anywhere else to my knowledge, so there's not much point sorting them out. Even after all this work, it's still interesting though how easy it is to detect an emulator from real hardware. I saw an example online while doing some research for the core where you can basically repeatedly do LD R,A and thus prevent proper memory refresh. After a short time, memory on real hardware will decay. But, obviously we can't track memory refresh on every byte of emulated memory without going at 0 fps, so this effect is lost to us. So if anyone out there doesn't want their code running on emulator, it takes only a dozen or so lines of code to detect it, pretty neat! EDIT: Well, now that I think about it, there is probably enough headroom left to do memory refresh and still run at maybe full speed (although probably no faster) but still not really worth it.
Experienced player (690)
Joined: 11/23/2013
Posts: 2233
Location: Guatemala
So that means this core will be TASable in the next BizHawk release?
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
Kurabupengin wrote:
So that means this core will be TASable in the next BizHawk release?
Thats the plan.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Asnivor wrote:
Kurabupengin wrote:
So that means this core will be TASable in the next BizHawk release?
Thats the plan.
What's holding us back?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
Nothing. Its pretty much ready for an initial release imo. I just figured you guys had some kind of release schedule and we were waiting for that to come around....
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Try to laod Santa's Xmas Caper +3 disks (The version from World Of Spectrum (2 sides)). [MOD EDIT: Link to commercial copyrighted content removed. -Mothrayas]
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Fortranm
He/Him
Editor, Experienced player (878)
Joined: 10/19/2013
Posts: 1121
Link to video Trying to load Kong Strikes Back by Ocean Software ends up in a reboot, as shown around the 2:40 mark of the video. This happens on both 2.3.0 and the newest developer build as of now. The re-release by Zafi Chip can be loaded, however.
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
phoenix1291 wrote:
Try to laod Santa's Xmas Caper +3 disks (The version from World Of Spectrum (2 sides)).
Thats a tape master disk(s) so probably in a propriety format (as the exception message suggests) that ZXHawk doesnt support (yet). Also, if you could get that disk to work, it probably only contains routines to write the data to tape.
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
Fortranm wrote:
Trying to load Kong Strikes Back by Ocean Software ends up in a reboot, as shown around the 2:40 mark of the video. This happens on both 2.3.0 and the newest developer build as of now. The re-release by Zafi Chip can be loaded, however.
I'm still trying to work on this. Speedlock 1 can be pretty temperamental as a tape encoding scheme, so there is probably just one pulse level that is inverted or something. It's gonna take a while though, the datacorder code is a mess and I should probably redo/refactor it to better understand the bug.
Joined: 7/17/2012
Posts: 543
Location: Switzerland
Any chance to see ZX Spectrum Next implementation sooner or later?
My Citra 3DS rerecording movie files test repositery: https://cutt.ly/vdM0jzl Youtube playlist "Citra Tests": https://cutt.ly/AdM0wg9 http://www.youtube.com/user/phoenix1291
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
phoenix1291 wrote:
Any chance to see ZX Spectrum Next implementation sooner or later?
Probably later I'm afraid. Unless somebody has the time to port one of the existing Next emus.
Asnivor
He/Him
Editor, Emulator Coder
Joined: 11/27/2017
Posts: 87
Location: United Kingdom
Fortranm wrote:
Link to video Trying to load Kong Strikes Back by Ocean Software ends up in a reboot, as shown around the 2:40 mark of the video. This happens on both 2.3.0 and the newest developer build as of now. The re-release by Zafi Chip can be loaded, however.
This is now fixed in the latest dev. But will probably cause desyncs with earlier movies.