CD-ROM images are now working correctly again;
Fixed all the reported bugs regarding the Settings dialog; MIDI out device is now no longer reset to 0 after hard reset; Removed all vestiges of the old disk activity flash; The configuration file is no longer saved when it shouldn't be; Redone the status bar icon updating so it is only done in win.c; Made sure all variables in ibm.h are extern; A lot of other bugfixes; Added Mouse Systems Mouse emulation (patch from TheCollector1995); Added IBM PS/1 Model 2133 (486) emulation (patch from TheCollector1995); Tweaked the CPU dynamic recompiler cycle periods - 486SX 33 and 486DX 33 now work; Increased compatibility with configuration files from before the previous commit.
This commit is contained in:
@@ -686,7 +686,6 @@ void ega_poll(void *p)
|
||||
ega->video_bpp = (ega->gdcreg[5] & 0x20) ? 2 : 4;
|
||||
}
|
||||
|
||||
readflash=0;
|
||||
ega->firstline = 2000;
|
||||
ega->lastline = 0;
|
||||
|
||||
|
||||
@@ -870,8 +870,6 @@ void svga_poll(void *p)
|
||||
if (!svga->override)
|
||||
svga_doblit(svga->firstline_draw, svga->lastline_draw + 1, wx, wy, svga);
|
||||
|
||||
readflash = 0;
|
||||
|
||||
svga->firstline = 2000;
|
||||
svga->lastline = 0;
|
||||
|
||||
|
||||
@@ -43,10 +43,75 @@ int svga_display_line(svga_t *svga)
|
||||
|
||||
void svga_render_blank(svga_t *svga)
|
||||
{
|
||||
#if 0
|
||||
int x, xx;
|
||||
int y_add = (enable_overscan) ? 16 : 0;
|
||||
int x_add = y_add >> 1;
|
||||
int dl = svga_display_line(svga);
|
||||
uint32_t *p;
|
||||
|
||||
if (svga->firstline_draw == 2000)
|
||||
svga->firstline_draw = svga->displine;
|
||||
svga->lastline_draw = svga->displine;
|
||||
|
||||
if (dl >= 2046)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (x = 0; x < svga->hdisp; x++)
|
||||
{
|
||||
switch (svga->seqregs[1] & 9)
|
||||
{
|
||||
case 0:
|
||||
for (xx = 0; xx < 9; xx++)
|
||||
{
|
||||
p = ((uint32_t *)buffer32->line[dl]);
|
||||
if (&(p[(x * 9) + xx + 32 + x_add]) != NULL)
|
||||
{
|
||||
p[(x * 9) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
for (xx = 0; xx < 8; xx++)
|
||||
{
|
||||
p = ((uint32_t *)buffer32->line[dl]);
|
||||
if (&(p[(x * 8) + xx + 32 + x_add]) != NULL)
|
||||
{
|
||||
p[(x * 8) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 8:
|
||||
for (xx = 0; xx < 18; xx++)
|
||||
{
|
||||
p = ((uint32_t *)buffer32->line[dl]);
|
||||
if (&(p[(x * 18) + xx + 32 + x_add]) != NULL)
|
||||
{
|
||||
p[(x * 18) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 9:
|
||||
for (xx = 0; xx < 16; xx++)
|
||||
{
|
||||
p = ((uint32_t *)buffer32->line[dl]);
|
||||
if (&(p[(x * 16) + xx + 32 + x_add]) != NULL)
|
||||
{
|
||||
p[(x * 16) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
int x, xx;
|
||||
int y_add = (enable_overscan) ? 16 : 0;
|
||||
int x_add = y_add >> 1;
|
||||
|
||||
if (svga->firstline_draw == 2000)
|
||||
svga->firstline_draw = svga->displine;
|
||||
@@ -57,16 +122,16 @@ void svga_render_blank(svga_t *svga)
|
||||
switch (svga->seqregs[1] & 9)
|
||||
{
|
||||
case 0:
|
||||
for (xx = 0; xx < 9; xx++) ((uint32_t *)buffer32->line[dl])[(x * 9) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
for (xx = 0; xx < 9; xx++) ((uint32_t *)buffer32->line[svga->displine + y_add])[(x * 9) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
break;
|
||||
case 1:
|
||||
for (xx = 0; xx < 8; xx++) ((uint32_t *)buffer32->line[dl])[(x * 8) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
for (xx = 0; xx < 8; xx++) ((uint32_t *)buffer32->line[svga->displine + y_add])[(x * 8) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
break;
|
||||
case 8:
|
||||
for (xx = 0; xx < 18; xx++) ((uint32_t *)buffer32->line[dl])[(x * 18) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
for (xx = 0; xx < 18; xx++) ((uint32_t *)buffer32->line[svga->displine + y_add])[(x * 18) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
break;
|
||||
case 9:
|
||||
for (xx = 0; xx < 16; xx++) ((uint32_t *)buffer32->line[dl])[(x * 16) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
for (xx = 0; xx < 16; xx++) ((uint32_t *)buffer32->line[svga->displine + y_add])[(x * 16) + xx + 32 + x_add] = svga_color_transform(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,8 +199,8 @@ uint8_t edatlookup[4][4];
|
||||
|
||||
int enable_overscan;
|
||||
int overscan_x, overscan_y;
|
||||
|
||||
int force_43;
|
||||
int enable_flash;
|
||||
|
||||
/*Video timing settings -
|
||||
|
||||
|
||||
@@ -81,10 +81,9 @@ extern void (*video_blit_memtoscreen_8_func)(int x, int y, int w, int h);
|
||||
/* Enable EGA/(S)VGA overscan border. */
|
||||
extern int enable_overscan;
|
||||
extern int overscan_x, overscan_y;
|
||||
|
||||
/* Forcibly stretch emulated video output to 4:3 or not. */
|
||||
extern int force_43;
|
||||
/* Enable disk activity flash. */
|
||||
extern int enable_flash;
|
||||
|
||||
extern int video_timing_b, video_timing_w, video_timing_l;
|
||||
extern int video_speed;
|
||||
|
||||
Reference in New Issue
Block a user