Jump to content
Sign in to follow this  
FarmerPotato

Double buffering - 2 pages of bitmap mode

Recommended Posts

Has anyone done this before? Would it work?

 

Two pages of partial bitmap mode, swapped by changing VR3 and VR4.


The idea is to use a pattern table mask, restricting it to the 1st third only. The pattern table is filled with F0, which gives fat pixels, like in Rasmus' Raycaster.

 

The color table is as usual. However, the top third of the color table is static, filled with F0. The other 2/3s are what is updated on each frame.

 

To flip pages, you swap the pattern and color table addresses in VR3 and VR4 (leaving masks unchanged.)

 

This gives you two buffers for the bottom two thirds of the screen. The top third is, alas, transparent and white bars--so set the screen color to white.

 

There is no way to reserve part of the pattern table for alphanumeric patterns, because it would double as its own color table. You could however cut off 2 columns, reserving 16 chars. Make one solid, one transparent. Use this to blank out the top third, and sidebars. You could draw block letters or numbers in white and transparent.

 

You can still define all the sprites.

 

Am I understanding the undocumented modes correctly?

 

VDP memory map

0000 F0
0800 color for page 1 middle third
1000 color for page 1 bottom third

2000 F0
2800 color for page 2 middle third
2000 color for page 2 bottom third

Reference: http://www.unige.ch/medecine/nouspikel/ti99/tms9918a.htm#hybrid bitmap

 

  • Like 1

Share this post


Link to post
Share on other sites

I thought about using the technique you describe for the textured raycaster, but since the frame rate is low and the screen update is relatively fast I don't think it's worth the trouble. 

 

This demo was using the opposite technique. The colors are the same across the screen and the lower 2/3 patterns are double buffered. The stars at the top are sprites.

 

 

  • Like 4

Share this post


Link to post
Share on other sites
13 hours ago, Asmusr said:

I thought about using the technique you describe for the textured raycaster, but since the frame rate is low and the screen update is relatively fast I don't think it's worth the trouble. 

 

This demo was using the opposite technique. The colors are the same across the screen and the lower 2/3 patterns are double buffered. The stars at the top are sprites.

 

Fantastic!

 

I don't understand how the colors stay the same? Do they change after the patterns scroll 8 pixels?

 

Share this post


Link to post
Share on other sites
6 minutes ago, FarmerPotato said:

Fantastic!

 

I don't understand how the colors stay the same? Do they change after the patterns scroll 8 pixels?

 

Yes they are scrolled, but that is by changing the name table only. Actually I wasn't using this technique for double buffering but as a way to double the number of available characters. The double buffering is on the name table. 

Share this post


Link to post
Share on other sites

It would be interesting to try to use the double buffering of the color table for some vector graphics: Draw to a 4K buffer in CPU RAM, copy updated sections to VDP, and flip the buffers.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...