Merge pull request #4326 from 86Box/tc1995

Tseng Labs fixes and bug-compatible fixes too.
This commit is contained in:
Miran Grča
2024-04-02 15:40:50 +02:00
committed by GitHub
3 changed files with 11 additions and 11 deletions

View File

@@ -129,6 +129,7 @@ typedef struct svga_t {
int hblank_end_mask;
int hblank_sub;
int packed_4bpp;
int ps_bit_bug;
int ati_4color;
/*The three variables below allow us to implement memory maps like that seen on a 1MB Trio64 :

View File

@@ -557,8 +557,6 @@ static const device_config_t et3000_config[] = {
.value = 256 },
{ .description = "512 KB",
.value = 512 },
{ .description = "1 MB",
.value = 1024 },
{ .description = "" } } },
{ .type = CONFIG_END }
};

View File

@@ -652,7 +652,9 @@ et4000_recalctimings(svga_t *svga)
svga->ma_latch |= (svga->crtc[0x33] & 3) << 16;
svga->hblankstart = (((svga->crtc[0x3f] & 0x4) >> 2) << 8) + svga->crtc[2];
svga->hblankstart = (((svga->crtc[0x3f] & 0x4) >> 2) << 8) + svga->crtc[2];
svga->ps_bit_bug = (dev->type == ET4000_TYPE_TC6058AF) && svga->lowres && ((svga->gdcreg[5] & 0x60) >= 0x40);
if (svga->crtc[0x35] & 1)
svga->vblankstart |= 0x400;
@@ -664,6 +666,8 @@ et4000_recalctimings(svga_t *svga)
svga->vsyncstart |= 0x400;
if (svga->crtc[0x35] & 0x10)
svga->split |= 0x400;
if (!svga->rowoffset && !svga->ps_bit_bug)
svga->rowoffset = 0x100;
if (svga->crtc[0x3f] & 1)
svga->htotal |= 0x100;
if (svga->attrregs[0x16] & 0x20) {
@@ -727,13 +731,6 @@ et4000_recalctimings(svga_t *svga)
svga->rowoffset <<= 1;
svga->render = svga_render_8bpp_highres;
}
if (dev->type == ET4000_TYPE_TC6058AF) {
if (svga->render == svga_render_8bpp_lowres)
svga->render = svga_render_8bpp_tseng_lowres;
else if (svga->render == svga_render_8bpp_highres)
svga->render = svga_render_8bpp_tseng_highres;
}
}
static void
@@ -960,6 +957,10 @@ static const device_config_t et4000_tc6058af_config[] = {
.description = "512 KB",
.value = 512
},
{
.description = "1 MB",
.value = 1024
},
{
.description = ""
}
@@ -1069,7 +1070,7 @@ const device_t et4000_tc6058af_isa_device = {
.name = "Tseng Labs ET4000AX (TC6058AF) (ISA)",
.internal_name = "et4000ax_tc6058af",
.flags = DEVICE_ISA,
.local = 0,
.local = ET4000_TYPE_TC6058AF,
.init = et4000_init,
.close = et4000_close,
.reset = NULL,