Describe the bug
VBETEST runs through video modes and eventually causes a floating point exception in DOSBox-X.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Tests all modes
I'll take some time tonight to gdb this crash and see where the fault is.
Ref: https://twitter.com/angealbertini/status/1303408409333690368
@Wengier I'm going to pull from master and look into this issue. It might be something simple.
@Wengier Now the VESA BIOS is not reporting any modes. What happened?
Also vmemsize doesn't seem to have any effect anymore, no matter whether it's under the [dosbox] or [video] sections.
@Wengier Hold on, I see the problem.
@Wengier Pushing fix to master now.
This is the crash:
Thread 1 "dosbox-x" received signal SIGFPE, Arithmetic exception.
0x000000000052aa00 in VESA_GetDisplayStart (x=@0x21c60c4: 0, y=@0x21c60c8: 0) at int10_vesa.cpp:659
659 y = (Bit16u)(start_pixel / virtual_screen_width);
(gdb) backtrace
I think I fixed it, but I'm starting to think there are bugs in VBETEST.EXE itself as well. It doesn't seem to handle too much video RAM very well, in fact it can't figure out how to do some of it's panning tests with more than 4-8MB of RAM and in other cases it's got some drawing issues.
Considering the EXE has a copyright of 1994 it's possible video cards had nowhere near that much memory anyway.
Yup, 16-color SVGA modes with more than 4MB of RAM seems to cause it problems.
So to make DOSBox-X accurate, I'm going to need to run it on real hardware and various SVGA cards to see what is supposed to happen.