Previous Thread
Next Thread
Print Thread
Page 5 of 5 1 2 3 4 5
#112609 - 02/13/18 05:54 PM Re: FireFly on the ZX Spectrum - Missing graphics [Re: geecab]  
Joined: Apr 2013
Posts: 41
geecab Offline
Member
geecab  Offline
Member

Joined: Apr 2013
Posts: 41
Thanks for the responses!

According to top, when running Firefly my CPU performance jumps from 12% without my hack, to 57% with my hack. Ouch!

Thinking about it, the timer really doesn't need to be triggered every cycle. Just been increasing the timeout (number of cycles) value to see how it effects CPU:-
1 cycle = 57% CPU
8 cycles = 19% CPU
16 cycles = 15% CPU
32 cycles = 13% CPU
224 cycles = 12% CPU

Might as well go with 224, at least it is clear that the screen is being put together line-by-line. Just tried the games out and they all look/play just as good.

I don't think my changes can be applied as-is though as I think I may have broken a few Russian clones. See the diff above, in the mame/video/spectrum.cpp file I commented out calls to spectrum_UpdateScreenBitmap() from the screen_vblank_spectrum() and screen_update_spectrum() functions. I reckon/guess a few of the clones rely on these calls. I will try and get my head around which ones will need attention.

#112681 - 02/18/18 10:42 AM Re: FireFly on the ZX Spectrum - Missing graphics [Re: geecab]  
Joined: Apr 2013
Posts: 41
geecab Offline
Member
geecab  Offline
Member

Joined: Apr 2013
Posts: 41
Originally Posted by Haze
per-scanline drawing isn't difficult (in fact the code might already support finer grained than that, as I said, some stuff was added for the russian clone demos to work where there are no contended memory issues at least)


Hi Haze! Any ideas of the names of these demos that work on the Pentagon? The existing (Partial screen update) fixes to the Pentagon driver basically result in calling spectrum_UpdateScreenBitmap() (In the pentagon_scr_w and pentagon_scr2_w memory write handler functions) more often than the Spectrum driver does. I think doing this somehow 'gets by' making these Russian demos work but doesn't fix the 'Firefly' issue or the flickering in certain games. I don't think the Pentagon driver's extra calls to spectrum_UpdateScreenBitmap() would be necessary if I implement my fix (Repeatedly triggering a call to spectrum_UpdateScreenBitmap() after x amount of CPU cycles). Just want to try these Pentagon demos out for myself in case there is something I haven't understood.

#112682 - 02/18/18 11:56 AM Re: FireFly on the ZX Spectrum - Missing graphics [Re: geecab]  
Joined: May 2004
Posts: 1,484
Haze Offline
Very Senior Member
Haze  Offline
Very Senior Member

Joined: May 2004
Posts: 1,484
_Metallic_ would know better about the Russian demos than I do as he enabled the partial update support for them in the first place.

Maybe if you were lucky some of them were added to a software list, but I don't think they were (they probably should be tho as they provide useful test cases)

Last edited by Haze; 02/18/18 11:57 AM.
Page 5 of 5 1 2 3 4 5

Who's Online Now
5 registered members (robcfg, MarkBielman, R. Belmont, elcondor, Vas Crabb), 30 guests, and 1 spider.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,496
Posts110,806
Members4,781
Most Online225
May 26th, 2014
Powered by UBB.threads™ PHP Forum Software 7.6.0
Page Time: 0.058s Queries: 15 (0.021s) Memory: 4.9520 MB (Peak: 5.1438 MB) Zlib enabled. Server Time: 2018-02-22 16:16:34 UTC