VOGONS


VGA bug DOSbox 0.62/0.63

Topic actions

First post, by jal

User metadata
Rank Oldbie
Rank
Oldbie

I didn't notice earlier, but since DOSbox 0.62 there seems to be a bug in the VGA BIOS emulation. When starting Rick Dangerous 1 or 2 (but probably more programs suffer from this feat, as RD uses standard BIOS calls only), instead of the green/red/yellow/intensity mode, the game starts in cyan/magenta/white/no-intensity mode. When setting machine to cga, RD1 works correctly. When played from the commandprompt (even on Win2k), the correct mode is used, so this must be a DOSbox problem. In DOSbox 0.61 everything works as expected.

JAL

Reply 1 of 7, by icemann

User metadata
Rank Member
Rank
Member

That`d be a game specific bug, not a bug ingeneral with dosbox. You`d be better off posting this in the games section.

Two stones, two crosses, the rest is just icing. - 7th Guest

Reply 2 of 7, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Only if it's not indicative of a general issue. It's possible that in VGA mode, DOSBox defaults to the wrong CGA palette mode.

Reply 3 of 7, by jal

User metadata
Rank Oldbie
Rank
Oldbie
icemann wrote:

That`d be a game specific bug, not a bug ingeneral with dosbox. You`d be better off posting this in the games section.

I could of course flame you for insulting my judgement, but instead I'll try to convince you. Attached is a simple program that displays the text "Test" in 320x200x4 graphics mode (BIOS mode 4). The 'T' has a different color than "est". When running with machine=cga, it runs correctly: the 'T' is green, "est" is yellow, with intensity. When running with machine=vga, it runs incorrectly: the 'T' is blue and "est" is white, without intensity.

DOSbox thus must be incorrectly handling the int 10h call ah=0bh, set palette, since that's the one I use for changing the palette to green/red/yellow from the default cyan/magenta/white. Shouldn't be too hard to fix, I guess.

JAL

Reply 4 of 7, by getaaron

User metadata
Rank Newbie
Rank
Newbie

I agree there's a VGA problem in 0.63. Check out the second scene of Conquest of the Longbow in Dosbox 0.63 compared with Dosbox 0.60. It seems that the characters are placed BEHIND the scene...except for certain pixels (perhaps certain shades of brown?). When the sprites animate, you can see the pixels change colors, and they eventually disappear when a character leaves the scene.

Also notice the white bar at the bottom of the window.

This also happens in fullscreen mode, and I have tried adjusting the cpucycles and frame skip to no avail.

Reply 6 of 7, by priestlyboy

User metadata
Rank Oldbie
Rank
Oldbie

It could be your graphics card drivers. I've had problems from time to time that I've had to uninstall my nVidia drivers, clean them with Driver Cleaner Pro, and then reinstall them.
I just tested it in 0.63 and in the latest CVS and there's no missing sprites.

Ieremiou
----------
Helping Debug DOSBox.

Reply 7 of 7, by jal

User metadata
Rank Oldbie
Rank
Oldbie
priestlyboy wrote:

It could be your graphics card drivers. I've had problems from time to time that I've had to uninstall my nVidia drivers, clean them with Driver Cleaner Pro, and then reinstall them.
I just tested it in 0.63 and in the latest CVS and there's no missing sprites.

Since DOSbox displays complete VGA-buffers (and there's no hardware accelerated sprites on VGA), it's not possible for the Windows graphic card drivers to have any effect on partial screen display in this manner. The only reason I can think of the sprites are missing, is that they are stored in a memory area (graphics memory or main memory) that somehow is accessed wrong in DOSbox 0.63 (maybe it's a protected mode game?) causing the copy to copy random or incomplete sprites.

Edit: not entirely true, of course it could also be a true VGA-bug, and the copying of the sprites is done from vidmem to vidmem, with some rarely used registersetting (otherwise more games would be affected).

JAL