Previous Thread
Next Thread
Print Thread
Page 3 of 4 1 2 3 4
Joined: Mar 2001
Posts: 17,215
Likes: 234
R
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 17,215
Likes: 234
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.

Joined: Apr 2013
Posts: 75
Likes: 2
G
geecab Offline OP
Member
OP Offline
Member
G
Joined: Apr 2013
Posts: 75
Likes: 2
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

Joined: Apr 2013
Posts: 75
Likes: 2
G
geecab Offline OP
Member
OP Offline
Member
G
Joined: Apr 2013
Posts: 75
Likes: 2
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.



Joined: Feb 2004
Posts: 2,597
Likes: 300
Very Senior Member
Offline
Very Senior Member
Joined: Feb 2004
Posts: 2,597
Likes: 300
Can you please create a branch on github for this so people can see it easily and comment on stuff in context?

Joined: Apr 2013
Posts: 75
Likes: 2
G
geecab Offline OP
Member
OP Offline
Member
G
Joined: Apr 2013
Posts: 75
Likes: 2
No worries, back soon smile

Joined: Apr 2013
Posts: 75
Likes: 2
G
geecab Offline OP
Member
OP Offline
Member
G
Joined: Apr 2013
Posts: 75
Likes: 2
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

Joined: Mar 2013
Posts: 344
Likes: 3
I
Senior Member
Offline
Senior Member
I
Joined: Mar 2013
Posts: 344
Likes: 3
Have you tried running that demo on a CRT, just in case that it may blend the odd and even frames better?

Joined: Apr 2013
Posts: 75
Likes: 2
G
geecab Offline OP
Member
OP Offline
Member
G
Joined: Apr 2013
Posts: 75
Likes: 2
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).

Joined: Apr 2013
Posts: 75
Likes: 2
G
geecab Offline OP
Member
OP Offline
Member
G
Joined: Apr 2013
Posts: 75
Likes: 2
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
Joined: Jun 2001
Posts: 520
Likes: 33
O
Senior Member
Offline
Senior Member
O
Joined: Jun 2001
Posts: 520
Likes: 33
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

Link Copied to Clipboard
Who's Online Now
1 members (Lord Nightmare), 273 guests, and 1 robot.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,320
Posts121,929
Members5,074
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com