VRAM to VRAM copy on Screen 2

Page 2/3
1 | | 3

Par PingPong

Prophet (3997)

Portrait de PingPong

05-06-2011, 17:44


Now let's estimate if it's possible with, let's say, V9938.
Data byte read: 1.12 microseconds, data byte write: 1.12 microseconds = 2.24 microseconds for single YMMM iteration.

@eugeny: 1.12us? where you got/calculate those timing values?

Par Eugeny_Brychkov

Paragon (1226)

Portrait de Eugeny_Brychkov

05-06-2011, 18:08

1.12us? where you got/calculate those timing values?
Oscilloscope. That's minimal value between two VRAM data I/O (for all modes except "TEXT1"). This stuff is not well documented yet.

Par PingPong

Prophet (3997)

Portrait de PingPong

05-06-2011, 19:03

1.12us? where you got/calculate those timing values?
Oscilloscope. That's minimal value between two VRAM data I/O (for all modes except "TEXT1"). This stuff is not well documented yet.

nice!
would be nice if one could measure how much vdp accesses are done by vdp during a copy command, in an active rasterline and in a vblanked rasterline...
Is this possible?

Par lfantoniosi

Supporter (3)

Portrait de lfantoniosi

04-07-2011, 20:29

First bitmap scroller ever ? What about Taito Gyrodine ? It does a pretty decent vertical scrolling, though it shows the color separation but still is a very good game for msx1.

Par hit9918

Prophet (2926)

Portrait de hit9918

07-07-2011, 16:58

First bitmap scroller ever ? What about Taito Gyrodine ? It does a pretty decent vertical scrolling, though it shows the color separation but still is a very good game for msx1.

I am surprised about every game with smoothscroller, it mostly is old games. If you know more, you could post youtube videos.

But this one does not work with "real screen 2 gfx". If it just had the knightmare background tile, the entire screen would be flashing, because the colorbytes are scrolled in a different time as the pattern bytes.

So if one would do a doublebuffered game, scrolling gfx like Ikari Warriors CPC,
it would be the first color bitmap scroller with "real screen 2 gfx".

Which would have not only no colorflashing, but also not the wobble when hit by the rasterbeam as seen in this monochrome game: http://www.youtube.com/watch?v=e6FJxFtZ63k .
Those "3 colors by ditheering" gfx are nice, with MSX sprites in other colors it could be really good.

One could have a doublebuffered monochrome scroller which goes 25fps PAL 30fps NTSC and then some little amount of "color writer lines" that update color changes of the gfx in vertical direction. And the gfx could somewhat aproach screen 1 gfx: e.g. imagine the ground tiles got two completely different colors (which can be different than black as no ZX sprites are used).
Screen 1 potential is seen in turtles ZX : http://www.youtube.com/watch?v=6uwqhgA81pI ,
and on screen 2 such gfx can scroll vertical without "need blank gaps in vertical direction".

Par Huey

Prophet (2687)

Portrait de Huey

07-07-2011, 18:04

it would be the first color bitmap scroller with "real screen 2 gfx".
Pippols?

Par hit9918

Prophet (2926)

Portrait de hit9918

07-07-2011, 23:14

it would be the first color bitmap scroller with "real screen 2 gfx".
Pippols?

But Pippols is a charset scroller. The tricky screen 2 always is a bitmap mode and a charset mode at the same time, so it is difficult to find descriptive words.

charset scroller: you scroll a char and then this effort is displayed multiple times onscreen.

bitmap scroller: no such duplication. can scroll in any random graphics, no neighbour tile combination issues, easy programming.

You may still make the level tile based, but without the neigbour tiles programming/pixeling efforts/extra memory consumption.

Doublebuffering is needed for a non-monochrome scroller. Normaly max width is 128 pixels, by loading 768 bytes in vblank one gets 2 more columns, makes a 144 pixels wide scroll area. Concentrating the reloading on the middle charset you get 6 more columns, makes 176 pixels width, then snip 3 lines from top and bottom of the screen to get the charset-space for the increased width.

Par hit9918

Prophet (2926)

Portrait de hit9918

08-07-2011, 00:26

MSX vs CPC:

On a CPC site I read that LDI takes "5 NOPS", 20 cycles (CPC got 4Mhz, and display DMA does increase the cycles taken to a multiple of 4 cycles).
On MSX, ram to vram copy at legal speed within visible area is outi : jp nz,loop 29 cycles.

The CPC takes 0.08 sec to copy its 16k, the MSX takes 0.1 sec to copy its 12k -
add a dozen sprites and both machines run same speed.
This means a vertical scroller in Ikari Warriors CPC display format is doable.

Instead of "the MSX got the horrible slow vram acess", the result is
"the MSX gameplay blasts with 60fps sprites" Smile

Par hit9918

Prophet (2926)

Portrait de hit9918

08-07-2011, 01:09

Description of yet another engine Wink

Instead of copying 6144 bytes of bitmap (as in previously talked halve-screen-width doublebuffered color bitmap scroller), go charset style.

Requires writing the nametable. Aiming for similar speed, remaining bugdget is 6144-768 = 5376 bytes. 5376 / 3 (3 charsets) / 2 (pattern+color) / 8 (8 lines per char) = 112 chars.

Disadvantage: must get the level in 112 tiles, plus arrange the gfx for vertical scrolling (so copying the bitmap at offset 0...7 makes the scroller). This is for tile-style games, while a bitmap scroller can have tons of graphics.

Advantages: Same speed in a fullscreen scroller.
Bonus: a config menu "hybrid mode" will speedup on MSX2 and MSX1 that can take it. Then copy 1 instead 3 charsets, not much to code.
Bonus 2: the time saved allows going screen 4 and "simply full colorcopy" MSX2 sprites, getting 8 per scanline, nice MSX2 support.

Par jltursan

Prophet (2619)

Portrait de jltursan

08-07-2011, 21:32

Check the recent MSX catalog Wink

In the last years, games like Malaika or Qbics already exploited the tiles scrolling techniques to their full extent, specially Qbics that uses similar approach that the one you've explained. They're doable; but usually takes a lot of work and planning to finish a game with those specs.

The already mentioned G'n'G demo is also one of the best efforts in this field...

Page 2/3
1 | | 3