Previous Thread
Next Thread
Print Thread
Page 3 of 4 1 2 3 4
Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113409
05/12/18 01:14 PM
05/12/18 01:14 PM
Joined: Mar 2001
Posts: 16,072
USA
R
R. Belmont Online content
Very Senior Member
R. Belmont  Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,072
USA
One thing with border size is that most TVs overscan and don't show the entire border. On a decent composite monitor like a Commodore 1084/1084S you can adjust it so the entire visible area shows.

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113414
05/12/18 05:04 PM
05/12/18 05:04 PM
Joined: Apr 2013
Posts: 71
G
geecab Offline OP
Member
geecab  Offline OP
Member
G
Joined: Apr 2013
Posts: 71
Yes indeed. Guessing that back in the day, most people programmed their Spectrums using TVs so they would never know/care about the extremes of the border. I guess I'm just trying to work out if this Qarx artifact thing is due to a bug in something I've done, or is it due to Mame exposing border areas that typically weren't visible back in the day. After all my border tests and comparisons I've pretty much convinced myself that its the latter so that's cool smile

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113418
05/13/18 07:58 AM
05/13/18 07:58 AM
Joined: Apr 2013
Posts: 71
G
geecab Offline OP
Member
geecab  Offline OP
Member
G
Joined: Apr 2013
Posts: 71
RB - Splitting up my mods into another file seems a bit more tricky than I anticipated :p My aim was to put all my mods in specz80.h and specz80.cpp. In doing so I had to create another file (I called it z80_common.h) to move some defines from z80.cpp so that specz80.cpp could see them (At first I put all the defines into z80.h but that meant some other drivers failed to compile due to conflicting defines). Also, some of my specz80.cpp member functions failed to compile because they called z80_device member functions that were defined as 'inline' in z80.cpp. I got around this by removing the inline keyword from various z80_device member functions (but I'm not sure if this was the best approach?). Anyways, here is what I've done so far (and it all compiles/works) so see what you think, I don't mind going back to the drawing board again smile

attempt take 5

Also, I just want mention that I don't think I've quite nailed my implementation for the +2a/+3 models. Specifically, there is a demo called 'Mescaline' that MetalliC suggested I try a while back. There are a few builds of this demo (one for the 128K/+2 models, and one for the +2a/+3 models). The 128K/+2 build looks good on mame, but the +2a/+3 build doesn't. So I probably need to take a second look at this.

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113420
05/13/18 01:45 PM
05/13/18 01:45 PM
Joined: Feb 2004
Posts: 2,012
Sydney, Australia
Vas Crabb Offline
Very Senior Member
Vas Crabb  Offline
Very Senior Member
Joined: Feb 2004
Posts: 2,012
Sydney, Australia
Can you please create a branch on github for this so people can see it easily and comment on stuff in context?

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113422
05/13/18 07:48 PM
05/13/18 07:48 PM
Joined: Apr 2013
Posts: 71
G
geecab Offline OP
Member
geecab  Offline OP
Member
G
Joined: Apr 2013
Posts: 71
No worries, back soon smile

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113451
05/19/18 11:55 AM
05/19/18 11:55 AM
Joined: Apr 2013
Posts: 71
G
geecab Offline OP
Member
geecab  Offline OP
Member
G
Joined: Apr 2013
Posts: 71
I think I've found the problem on the +2a/+3. I believe the specpls3 interrupt is firing later than it should. This causes my tstate counter drift out-of-sync for each frame that goes by (Which confuses the video drawing routines as they rely on an accurate tstate counter).
The spectrum_128 config accurately sets up the cpu clock speed and interrupt time like this:
Code
MCFG_DEVICE_ADD("maincpu", Z80, X1_128_SINCLAIR / 5)
MCFG_SCREEN_RAW_PARAMS(X1_128_SINCLAIR / 2.5f, 456, 0, 352, 311, 0, 296)

The spectrum_plus3 config inherits from the spectrum_128 config and then modifies the interrupt time:
Code
MCFG_SCREEN_REFRESH_RATE(50.01)

I think the spectrum_plus3 config should leave the interrupt time as is. When I remove the line "MCFG_SCREEN_REFRESH_RATE(50.01)" my contended memory mods work fine on the +2a/+3 (and the Mescaline Synesthesia demo looks the same as it does when running on my actual +2).

I've now committed all my multicolour mods and this fix to my github branch here:-
https://github.com/geecab/mame/tree/specz80_attempt_6



Just wanted to add some waffle about the Mescaline Synesthesia demo:

To display more colours than is possible on the Spectrum, this demo rapidly swaps screens each frame in an attempt to mix colours (I.e. a pixel might be yellow on one screen, red on another, thus giving the impression of an orange pixel). The I've run the demo (original and 'final cut' version) on my actual +2, and can confirm the effect does not work amazingly. There is quite a bit of flicker during the raster sections and during the still images. The still images also appear to have lines on them, I've added a screencaps into my ZX 128+2 testing album. I've found this youtube clip of the demo running "perfectly". If you read the comments it appears the demo only looks perfect if you run it on the Pentagon. Note, this website says "For Pentagon machines, a hardware modification is available which directly combines the two alternate screen areas into the video signal, thus eliminating the flicker associated with this method". I'm pretty sure after reading some of the youtube comments, the demo was originally written for the Pentagon and it relied on this hardware modification.

Anyways, I've now tested the Mescaline Synesthesia on Mame running the spec128 and specpls3 driver and it looks just the same as when it runs on my actual +2. So that is accurate/good enough for me smile

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113452
05/19/18 11:19 PM
05/19/18 11:19 PM
Joined: Mar 2013
Posts: 266
I
ICEknight Offline
Senior Member
ICEknight  Offline
Senior Member
I
Joined: Mar 2013
Posts: 266
Have you tried running that demo on a CRT, just in case that it may blend the odd and even frames better?


LCD artwork cleanups: https://mega.nz/#F!uFYSzK7S!U-lJon9jsqyoCX_3y7_KLA
Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113453
05/20/18 08:33 AM
05/20/18 08:33 AM
Joined: Apr 2013
Posts: 71
G
geecab Offline OP
Member
geecab  Offline OP
Member
G
Joined: Apr 2013
Posts: 71
Unfortunately, I don't have a CRT to try it out (I'm currently using a 42" plasma (Aerial input)). I did read a comments here http://www.pouet.net/prod.php?which=54207 suggesting it is still not perfect even with the CRT (But I have a tendency not to trust everything I read on the web).

Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113605
06/23/18 08:20 AM
06/23/18 08:20 AM
Joined: Apr 2013
Posts: 71
G
geecab Offline OP
Member
geecab  Offline OP
Member
G
Joined: Apr 2013
Posts: 71
Hi There! I've tried the Mescaline Synesthesia demo when connecting my ZX Spectrum +2 to a old 14" CRT TV. I observed same amount of flicker during the raster sections and during the still images. The still images also appear to have lines on them. I took some pics and have added them to my ZX 128+2 Testing album.

In summary, I've now run this demo on the following setups:
- My Contended Memory modified version of MAME with an 27" LCD screen.
- An actual ZX spectrum 128k+2 with a 42" Plasma screen screen (Aerial input).
- An actual ZX spectrum 128k+2 with a 14" CRT TV (Aerial input).
and the Mescaline Synesthesia demo runs/looks the same regardless of the setup. So from MAME's point of view, I think it is emulating this demo perfectly (and I think this demo, despite being ported from the Pentagon to the ZX Spectrum, will never look as good on any Spectrum as it does on the Pentagon). Case closed smile

Also, just wondered if anyone has had a chance to try out my contended memory modifications I committed to my github branch a while back?
https://github.com/geecab/mame/tree/specz80_attempt_6

Many thanks! smile

Last edited by geecab; 06/23/18 08:23 AM. Reason: Fixed link
Re: ZX Spectrum Contended Memory - MultiColour Effects [Re: geecab] #113645
07/04/18 06:44 AM
07/04/18 06:44 AM
Joined: Jun 2001
Posts: 393
somewhere else entirely
O
Olivier Galibert Offline
Senior Member
Olivier Galibert  Offline
Senior Member
O
Joined: Jun 2001
Posts: 393
somewhere else entirely
I'd like to do some experiments with that memory contention stuff, but I have problems parsing th thread. So let's ask the experts.

To test if a memory contention implementation works for the spectrum, what should I use? What driver, what software, what commands to type? And then, what should it look like?

OG.

Page 3 of 4 1 2 3 4

Who's Online Now
3 registered members (Stick, Cpt. Pugwash, 1 invisible), 18 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Shout Box
Forum Statistics
Forums9
Topics8,607
Posts112,529
Members4,828
Most Online296
Dec 5th, 2018
Powered by UBB.threads™ PHP Forum Software 7.6.1.1
(Release build 20180111)
Page Time: 0.172s Queries: 15 (0.095s) Memory: 5.7270 MB (Peak: 5.9493 MB) Zlib enabled. Server Time: 2018-12-19 16:14:13 UTC