A long time ago, I was a MSX and MSX2 programmer

Page 8/12
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10 | 11 | 12

By PingPong

Prophet (3767)

PingPong's picture

21-12-2012, 10:36

hit9918 wrote:

@ARTRAG,
getting the blitter to run beyond a split, you do groundbreaking research Big smile
Is it really setting R18 after the two blank lines? Not right after blanking?

This is speculation.
An answer to the R18 / cmd engine corruption may be this:
R18 is like a early clock bit for sprites. It starts before/later the scanline generation. So, changing R18 affect when the vdp starts to read data from VRAM for the current scanline.
We guess that the vdp engine VRAM slot allocation is not in 'real time' synched to the R18 value.
So altering the R18 make the vdpengine to go out-of-phase with the time-slots reserved to it, because the raster VRAM accesses data sligthly before/after than when R18 was set to the old value.

However, there is a situation where the R18 value does not matter, it's on VBLANK or when the screen is turned off. Why?
Just because the VDP does not make any access in this situation!

The two scanline delay is TO MAKE sure that the vdp goes into 'screen blanked, fast cmd engine' mode, and therefore R18 cannot create problems.

By ARTRAG

Enlighted (6550)

ARTRAG's picture

21-12-2012, 10:40

ahah
same post
LOL!

By PingPong

Prophet (3767)

PingPong's picture

21-12-2012, 10:51

ARTRAG wrote:

ahah
same post
LOL!

yes, your is explained better.
(one correction: "the vdp go into fast vram access" should be "the vdp go into a less slow vram access"

By ARTRAG

Enlighted (6550)

ARTRAG's picture

21-12-2012, 18:27

Stop offending the poor vdp, it's Christmas Santa

By ARTRAG

Enlighted (6550)

ARTRAG's picture

21-12-2012, 21:54

Anyway, everything should be fixed now.

I've removed the last two glitches, we can do platforms and shot'em up with horizontal scrolling with 256 colors.
https://docs.google.com/open?id=0Bx4kWAc-fapqemVZMWRTcENPZHM
anyone willing to test it on real HW?

I think that it could give something close to some early VGA pc game ...
like this test with Gods graphic
https://docs.google.com/open?id=0Bx4kWAc-fapqNEdxYTVNMC0zMDg

By hit9918

Prophet (2905)

hit9918's picture

21-12-2012, 21:54

The question still is WHAT does make the blitter sync.
It is great that there is a method that works. The question is why does it work, extend the VDP model theory.

Your explanations focus is about the blank phase.
Well, "being able to run more freely in blank" does NOT make a sync. Rather the opposite...
And then after the nice blank party comes again a display, with evil different R18 Wink

It is not clear at WHICH step in that whole process the blitter got sync to the new R18 value.

By ARTRAG

Enlighted (6550)

ARTRAG's picture

21-12-2012, 22:12

IMHO after each line retrace the vdp command engine takes the sync with the raster on the new R18 value; this because only few bytes per copy get corrupted.
And IMHO after one line retrace in blank mode the vdp commutes to "fast vram" access.
I used two lines just to be safe.

By hit9918

Prophet (2905)

hit9918's picture

21-12-2012, 22:33

So maybe it is this:
The blitter actually does sync every scanline
But only in blank mode it is fast enough to reliably sync to a changed R18.

About needing to blank two scanlines:
The reason may be cpu jitter.
Maybe the actual action goes on in one scanline.
But with cpu jitter, to cover 100% of events happening in a scanline, need to blank 2 scanlines.

By hit9918

Prophet (2905)

hit9918's picture

21-12-2012, 22:35

Does turining on/off blank have effect mid-screen?

I assume changing R18 does not have effect mid-screen.
My model of it is: at start of the scanline, R18 is copied to display gears delay counter.

Mhm I think I remember having read that vertical set adjust takes effect only at vblank.
That would be same picture, start loading a delay counter at vsync.

By hit9918

Prophet (2905)

hit9918's picture

21-12-2012, 23:05

The demo is great, practically fullscreen scroll screen 8 yeah Big smile

I get jitter on openmsx. But not on bluemsx.
I wonder how many % of an NTSC frame is a 176 lines columncopy. Is it 99% or is it 101% Smile

Page 8/12
1 | 2 | 3 | 4 | 5 | 6 | 7 | | 9 | 10 | 11 | 12