Reply 20 of 77, by Falcosoft
- Rank
- l33t
megatron-uk wrote on 2021-01-18, 17:12:I'm using a double buffer, so I have a 256KB buffer in memory, write all of the updates to that, then flush it to VRAM in one operation (which will be in 64KB chunks compared to the X68000 and PC-98). There's no direct setting of pixels, and since there is no animation involved (only a scrollbar moving from one highlighted game to the next, or each games boxart or screenshot loading as it is selected) the latency of doing that once, say, every 500ms is probably going to be good enough. The rest of the application should easily fit in the other 300KB or thereabouts.
Hi,
by using VESA VBE functions 06 and 07 you could avoid using your buffer in system memory and skip the usually not so efficient system memory to video memory copy operation. By using function 06 you can define a larger video memory area than displayed (e.g. in your case 1280x400 that practically means 2 pages) and by using function 07 you can set a different display start (e.g. in your case alternating between start at 0 and start at 640 pixel) without any copy operation. This way you can achieve double buffering using only video memory.