nametable & double buffering

Page 1/10
| 2 | 3 | 4 | 5 | 6

By PingPong

Prophet (3759)

PingPong's picture

13-05-2012, 21:09

Hi to all.
The TMS vdp has a quirk mode where the top two sections of nametable of screen 2 tiles are picked from only one vram area of patterns/attributes of 2048 bytes.
Can one do double buffering by rewriting the pattern table address in order to have two distinct banks of those patterns attributes ?

On msx2 it's possible, but because one can have 128 K of VRAM. In this quirk mode what is the minimum step where patterns /attributes can be relocated?

thx to all in advance

Login or register to post comments

By DanySoft

Champion (450)

DanySoft's picture

13-05-2012, 21:31

The screen 2 have three mode not two mode, can't load this font/color use BLOAD "",S,number offset

Example:

bload "font.fnt",s  : rem 0x0 font
bload "font.fnt",s,2048  : rem 0x2048 font
bload "font.fnt",s,4096  : rem 0x4096 font

or course, if you see all, save all to BSAVE "screen.sc2",0,&H7FFF,s
N.B.: is saved this BSAVE, font, color and sprite included.
bye bye

By ARTRAG

Enlighted (6538)

ARTRAG's picture

13-05-2012, 22:36

@pinpong
having what you say would be great, but I think it would be possible only in screen 1
in screen 2 maybe one could have double buffering using only the middle bank (i.e. a screen area of 256x64)

More ore less the idea is this
you want two pages for your tile sets, say buffer0 and buffer 1

place buffer0 in the upper bank (definitions at 0x0000, colors at 0x2000)
place buffer1 in the middle bank (definitions at 0x0800, colors at 0x2800)

fill the pnt corresponding to the upper and the lower bank with a dummy tile

to show buffer 0 in middle bank go in hybrid mode
to show buffer 1 in middle bank go in normal mode

waiting for better proposals, these are my two cents...

By hit9918

Prophet (2905)

hit9918's picture

13-05-2012, 22:38

@PingPong, do you mean the character masking?

See this thread
http://www.msx.org/forum/development/msx-development/new-hyb...

Does the BASIC test work on 9938?

By ARTRAG

Enlighted (6538)

ARTRAG's picture

14-05-2012, 08:37

Is there a hybrid mode where middle and lower banks show the same tileset different by the upper bank?
I think no but I could be wrong

By PingPong

Prophet (3759)

PingPong's picture

14-05-2012, 17:42

hit9918 wrote:

@PingPong, do you mean the character masking?

See this thread
http://www.msx.org/forum/development/msx-development/new-hyb...

Does the BASIC test work on 9938?

Basically what i mean is this:
1) having a tile bank of 2048 bytes (patterns)+2048 bytes (attributes), showed on screen (used for top 2 regions)
2) while 1 is being displayed write another tilebank @ another address a complete, independent, 2048 bytes + 2048 bytes bank
3) Flip the two with a moderate cpu effort (ideally a write to a register)

I think is clear, if not tell me what isn't, please. thx

By PingPong

Prophet (3759)

PingPong's picture

14-05-2012, 17:43

ARTRAG wrote:

to show buffer 0 in middle bank go in hybrid mode
to show buffer 1 in middle bank go in normal mode

waiting for better proposals, these are my two cents...

weird and interesting idea, but i need upper two parts unfortunately...
:-(

By ARTRAG

Enlighted (6538)

ARTRAG's picture

14-05-2012, 18:22

By PingPong

Prophet (3759)

PingPong's picture

14-05-2012, 21:08

I've seen.
I think is the only possible way...

By ARTRAG

Enlighted (6538)

ARTRAG's picture

14-05-2012, 21:22

not the best one would wish, but it is a something

By ARTRAG

Enlighted (6538)

ARTRAG's picture

15-05-2012, 01:07

https://sites.google.com/site/testmsx/Home/double-buffer-in-...

Press any key to swap pages, space to exit
not a single tile is moved or updated to swap frames

The trick could be useful for games like Utopian's Genesis

I think that nowaday the number of active msx1 that does not support correctly hybrid modes is negligible

Page 1/10
| 2 | 3 | 4 | 5 | 6