How I make SC2 interlaced graphics manually.

Страница 2/2
1 |

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

01-11-2010, 16:22

Yeah, your demo is very good, thats the way the graphics has to be interlaced.

By yzi

Champion (444)

Аватар пользователя yzi

01-11-2010, 17:07

If there are really no ugly side-effects on regular TVs I think that
1) emulators should (by default) offer a screen mode that emulates this properly, with no flickering and still readable scroller texts (currently it's either-or)

I think the problem can be even the opposite. With BlueMSX, interlaced^H^H^H^H^H^H^H^H^H^Hmixed-color graphics can look nice even when it's totally unwatchable on a real MSX and a CRT/TV, like in Dvik&Joyrex's demos. It's difficult to get right on emulators, because most modern flat-screen computer displays are fixed to 60Hz refresh rate, so there's just no way to show a steady 50Hz stream of frames. To get scrolltexts smooth you could vectorize, motion-detect and re-render the whole thing to a different frame rate like modern TVs do, but that won't help for "mixed-color" modes.

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

01-11-2010, 18:21

BlueMsx mix the interlace, better than true TV, real msx computer un a CRT TV is very good, not flick too much, but, if you use a non sincroniced or non interlace mixed emulation, you obtain a bad experience, sure.

Try Menace on BlueMSX with De-interlace ON and Mix Frames ON, is a perfect image, no flickering.

By Manuel

Ascended (19273)

Аватар пользователя Manuel

01-11-2010, 22:07

thanks for sharing this! Nice to see how you do it Smile

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

01-11-2010, 23:55

Thanks Manuel, I am very proud of that Face

By hit9918

Prophet (2927)

Аватар пользователя hit9918

03-11-2010, 20:51

@PingPong

Anyway, how does you change the name table every frame?
a) Do you blit from ram every blank or
b) you simply do relocate the nametable address to another vram area of 768 bytes?
(assuming there is some hole in vram to use for an alternate nametable, i've not verified)

I'm curious...

I use those 3 nametables in screen 2: 0x1800, 0x1C00, 0x3C00
The second one is a free hole and the third does snip the sprite pattern to 50%.

And copying 768 bytes from RAM outi outi outi... should just fit in an NTSC blank. 25% of a NTSC frame.

By PingPong

Prophet (4093)

Аватар пользователя PingPong

04-11-2010, 19:47

... should just fit in an NTSC blank. 25% of a NTSC frame.

about this, most people are bothered about the subject: 'can i copy via otir in a vblank?'.
This is not really a problem if you go outside the infamous vbl time with a slow copy.

Assuming we are blitting the 768 bytes, the raster beam cannot catch you even with a slow copy with 28 t-states.

Some math:
a scanline is about 228 T-States. Assuming a slow copy, 28 T-States, you can copy 8 bytes / scanline to vram.
Now, assuming that when active area is beginning, you have at least already copied 32 bytes, that is a 'stripe' of 32 charaters, the raster beam will reach the second 'stripe' only after 8 scanlines (because a charater is 8 scanline). In this time a running slow copy will move 8 bytes*8 scanlines = 64 bytes of name table, that is two rows (or 'stripe') of chars.

Conclusion:
in pattern based mode, a slow copy can transfer 2 times faster than the scanline horz. freq.

You will not be catched by video beam, no frame tearing or artifacts.

By yzi

Champion (444)

Аватар пользователя yzi

04-11-2010, 20:43

If you're using multiple nametables, you could copy to an offscreen table and then flip tables in the vblank, right? Smile

What comes to copying stuff to screen 2 VRAM, Marq's LT2show program has a pretty comprehensive set of different routines for different cases.
http://www.kameli.net/lt/prod.htm
VDP1 and VDP2 behave a bit differently, what comes to the exact "speed limit", how fast you can copy data into vram outside vblank, which also seems to slow down the further away the scan goes, especially on MSX1, IIRC. And what happens if you copy too fast, is different on VDP1 and VDP2. On VDP1, your data is replaced with seemingly random bytes, but on VDP2, the data is simply thrown away.

Not that this has much to do with SC2 interlaced graphics as such.

By PingPong

Prophet (4093)

Аватар пользователя PingPong

05-11-2010, 00:41

If you're using multiple nametables, you could copy to an offscreen table and then flip tables in the vblank, right? Smile

... If the conditions i've wrote above are met, there is no need to have a triple or double buffer ....
the speed of copy i wrote about is the slowest, works on all situation.

I only pointed out that even with a slow copy, the only condition one should respect when working on nametable is to have almost copied the first 32 bytes before the first scan line is drawn. Then, even at the slowest 'safe' speed there is no chance to being catched by the raster update.

Страница 2/2
1 |