You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I decided to see if I could fiddle with the VGA registers to make a really weird video mode. I set the horizontal display end to character 39, vertical display end to 100, start horizontal retrace to 20 and offset to 20. Then, I set the start address to 16000, giving me an active page at offset 0 and a visible page at offset 16000.
When I run this code in DOSBox-X, it seems to ignore most of the values I've set, including the start address. The screen continues to display 320x200 pixel data, and the top quarter of the screen shows my active page while the next quarter shows what was supposed to be the visible page. It is offset a bit, it sort of looks like only the low byte of the Start Address is taking effect.
2026-05-10.11-21-32.mp4
Is DOSBox-X doing the right thing here and I'm just not understanding these registers? In a forum, someone asserted that not only is this exact mode possible, but they've seen multisync monitors handle it just fine back in the day. I'm not 100% sure how much to trust this assertion. :-)
The exact register values I'm setting:
Starting point: set mode 13h using the standard BIOS interrupt.
Clear Vertical Display End overflow bits 8 and 9 in the CRTC Overflow register.
Vertical Display End := 100
Maximum Scan Line := 0
Horizontal Display End := 39
Start Horizontal Retrace := 20
Offset := 20
Start Address High := 62 (16000 >> 8)
Start Address Low := 128 (16000 & 0xFF)
For what it's worth (not very much, I'm sure), VirtualBox completely fails to handle this at all:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
I decided to see if I could fiddle with the VGA registers to make a really weird video mode. I set the horizontal display end to character 39, vertical display end to 100, start horizontal retrace to 20 and offset to 20. Then, I set the start address to 16000, giving me an active page at offset 0 and a visible page at offset 16000.
When I run this code in DOSBox-X, it seems to ignore most of the values I've set, including the start address. The screen continues to display 320x200 pixel data, and the top quarter of the screen shows my active page while the next quarter shows what was supposed to be the visible page. It is offset a bit, it sort of looks like only the low byte of the Start Address is taking effect.
2026-05-10.11-21-32.mp4
Is DOSBox-X doing the right thing here and I'm just not understanding these registers? In a forum, someone asserted that not only is this exact mode possible, but they've seen multisync monitors handle it just fine back in the day. I'm not 100% sure how much to trust this assertion. :-)
The exact register values I'm setting:
For what it's worth (not very much, I'm sure), VirtualBox completely fails to handle this at all:
All reactions