Reverted Direct3D to 2048x2048 buffer and suppressed the EGA/(S)VGA overscan, if enabled, in 2048x modes, fixes Direct3D freezes;
Improved the BusLogic incoming mailbox code; The BusLogic callback is now three-phases and outgoing mailbox interrupts are emulated correctly; Fixed the CD-ROM command READ DISC INFORMATION (0x51), fixes NetBSD crashing 86Box with segmentation fault when using the AHA-154x; Added the CD-ROM command PAUSE/RESUME ALT (0xC2).
This commit is contained in:
16
src/win.c
16
src/win.c
@@ -121,17 +121,25 @@ void updatewindowsize(int x, int y)
|
||||
if (x < 160) x = 160;
|
||||
if (y < 100) y = 100;
|
||||
|
||||
int temp_overscan_x = overscan_x;
|
||||
int temp_overscan_y = overscan_y;
|
||||
|
||||
if (suppress_overscan)
|
||||
{
|
||||
temp_overscan_x = temp_overscan_y = 0;
|
||||
}
|
||||
|
||||
winsizex=x; efwinsizey=y;
|
||||
|
||||
if (force_43)
|
||||
{
|
||||
/* Account for possible overscan. */
|
||||
if (overscan_y == 16)
|
||||
if (temp_overscan_y == 16)
|
||||
{
|
||||
/* CGA */
|
||||
winsizey = ((int) (((double) (x - overscan_x) / 4.0) * 3.0)) + overscan_y;
|
||||
winsizey = ((int) (((double) (x - temp_overscan_x) / 4.0) * 3.0)) + temp_overscan_y;
|
||||
}
|
||||
else if (overscan_y < 16)
|
||||
else if (temp_overscan_y < 16)
|
||||
{
|
||||
/* MDA/Hercules */
|
||||
winsizey = efwinsizey;
|
||||
@@ -141,7 +149,7 @@ void updatewindowsize(int x, int y)
|
||||
if (enable_overscan)
|
||||
{
|
||||
/* EGA/(S)VGA with overscan */
|
||||
winsizey = ((int) (((double) (x - overscan_x) / 4.0) * 3.0)) + overscan_y;
|
||||
winsizey = ((int) (((double) (x - temp_overscan_x) / 4.0) * 3.0)) + temp_overscan_y;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user