iCP2: They're throwing in the towel.


I like how a genuine microcontroller really can handle as something as low end as ZXSpectrum emulation, assuming they can get by without extremely high accuracy.
This is being developed by the guy who literally wrote the book on the Spectrum ULA - extremely high accuracy (as in 99% taking into account the one remaining unknown z80 flag operation on certain instructions) is the least of our expectations.

This thing sold out within 2 days of funding starting, and is now being sold on a pre-order basis for £150 a pop - a markup of 50% and it's still selling like hot cakes.

D.
 
This is being developed by the guy who literally wrote the book on the Spectrum ULA - extremely high accuracy (as in 99% taking into account the one remaining unknown z80 flag operation on certain instructions) is the least of our expectations.
Accuracy is a really broad subject. Getting all the discrete results of operations correct is one thing, getting all of the nuances of timing correct is something else. It's not just a matter of knowing how everything works but being able to still emulate it perfectly on a microcontroller.

Then there's fuzzy stuff like mechanical drive timing. I wonder how good of a physical model it really has? I don't think you can really make this "perfect."
 
This is being developed by the guy who literally wrote the book on the Spectrum ULA - extremely high accuracy (as in 99% taking into account the one remaining unknown z80 flag operation on certain instructions) is the least of our expectations.
Accuracy is a really broad subject. Getting all the discrete results of operations correct is one thing, getting all of the nuances of timing correct is something else. It's not just a matter of knowing how everything works but being able to still emulate it perfectly on a microcontroller.

Then there's fuzzy stuff like mechanical drive timing. I wonder how good of a physical model it really has? I don't think you can really make this "perfect."
Mechanical drive timing? You mean the tape deck? :)

Seriously, we've been emulating the z80/ULA combination at 99% accuracy for years at a software level - there isn't any software available now that can tell the difference between a 48k/128k Spectrum and an emulator. The aforementioned remaining CCF flag affector is unreliable and changes between z80 manufacturers... Timing is measured in T-States, and current emulators are now accurate to 1T accuracy, and you really can't get any lower than that. And the only instance of a 1T difference between machines is in the ULA frame start period and depends on how warm the Spectrum is - and we emulate that too.

Edit: We also emulate DRAM refresh (and the corresponding fade in the RAM chips if the refresh is witheld) too - and that's about as extreme as we go.

D.
 
Last edited by a moderator:
Mechanical drive timing? You mean the tape deck? :)
That would be a mechanical drive, yes. There also appears to be a floppy disk. I remember trying to model the timing of the CD drive in PCE-CD (based on some test data), and was frustrated at how difficult it was. Of course there's no such thing as perfect since the timing is not in discrete units, and real performance will vary from drive to drive within some tolerance (which will vary due to environmental conditions, aging, etc), but at the same time it still has to be right enough or some games won't work. You wouldn't think such games would be so sloppy but badly written games are good at finding ways to unintentionally rely on very particular behavior, or maybe I should say they're good at accidentally working. No idea how much this is true with Speccy games though.

Seriously, we've been emulating the z80/ULA combination at 99% accuracy for years at a software level - there isn't any software available now that can tell the difference between a 48k/128k Spectrum and an emulator. The aforementioned remaining CCF flag affector is unreliable and changes between z80 manufacturers... Timing is measured in T-States, and current emulators are now accurate to 1T accuracy, and you really can't get any lower than that. And the only instance of a 1T difference between machines is in the ULA frame start period and depends on how warm the Spectrum is - and we emulate that too.

Edit: We also emulate DRAM refresh (and the corresponding fade in the RAM chips if the refresh is witheld) too - and that's about as extreme as we go.
99% accuracy isn't quite the same as 100% though :) And of course I have no doubt that very, very accurate emulation has existed for a long time now. I just wondered how much overhead it takes to get that level of accuracy, even with very clever implementations. I might be overestimating the demand based on what I'm used to with consoles where graphics and sound chips have relatively complex state machines and all of the components interact with each other in complex ways. ZXSpectrum may be simpler than that (if the huge number of clones are any indication), and if you only have to worry about tightly timing the CPU and stuff like DRAM refreshes then yes, a microcontroller may suffice. What I'm thinking about is things like having to capture exactly how the graphics chip accesses memory (running a state machine that is often a lot faster than how the CPU processes instructions) in order to properly emulate delay cycles added due to contention between it and the CPU. Or worse, something like multiple CPUs sharing memory, or emulating cache and writeback timing (or worse, doing both). Now from what I can see, ULA and Z80 does have contention in accessing VRAM, but the access patterns seem more fixed and straightforward than some other platforms I'm thinking of, since video is not much more than a framebuffer.

Let's just say, if you were trying to do an NES emulator that was very close to perfectly accurate (based on the extensive reverse engineering done on the NES), you'd have a very hard time doing it on a microcontroller. Especially something that's not a high end ~200MHz Cortex-M4, M7, or microAptiv or whatever, but more mid-range like a 72MHz Cortex-M3 or something. But if you think this is pretty doable for ZXSpectrum I'll take your word for it. On the other hand, if very very few games rely on such incredible accuracy it might not really matter very much. I guess you guys will get to see how good it is with tech demos.
 
Last edited by a moderator:
And finally the ICP2 KS comes to a sad completion for me

Just got this along with the Paypal notice:

"We've refunded your PayPal account $27 in place of the iControlPad2 pledge.  Thank you for backing the project, we apologize again that it didn't go as planned."
 
Last edited by a moderator:
"We've refunded your PayPal account $27 in place of the iControlPad2 pledge.  Thank you for backing the project, we apologize again that it didn't go as planned."
"Didn't go as planned"? That's a bit of an understatement. "You all got ripped off by my business partner" would be more accurate. Still, I'm glad it's over. I can't help but wonder what Craig's next disaster will be though.
 
Got the refund, many thanks Link for your efforts to sort this mess out to the best of your ability.

Decided to spend the refund money on the Steam Sale.

So far so good.

Prison Architect for £3.99
Castle Crashes for £0.99
Astebreed for £3.29

 
 
Yet another failed KickStarter, this time from one of the big hitters in the industry.

http://www.digitiser2000.com/main-page/for-godus-sake-molyneux-accused-of-over-promising
That wasn't actualy a surprise, at least not for me. His best times are over and the last game from Molineux I've played was "Black& White". Which was basicly the same hype story with not much more than hot air in the end. Very disappointing game (for me), good ideas done wrong. History is repeating as usual.
 
Yet again why developers need project managers to keep them on task. Everyone thinks they can deliver the moon.
 
Back
Top