Ported the 128K mapping fixes to 86Box.
This commit is contained in:
@@ -245,6 +245,15 @@ et4000_out(uint16_t addr, uint8_t val, void *priv)
|
|||||||
svga->read_bank = ((dev->banking >> 4) & 0x0f) * 0x10000;
|
svga->read_bank = ((dev->banking >> 4) & 0x0f) * 0x10000;
|
||||||
} else
|
} else
|
||||||
svga->write_bank = svga->read_bank = 0;
|
svga->write_bank = svga->read_bank = 0;
|
||||||
|
|
||||||
|
old = svga->gdcreg[6];
|
||||||
|
svga_out(addr, val, svga);
|
||||||
|
if ((old & 0xc) != 0 && (val & 0xc) == 0)
|
||||||
|
{
|
||||||
|
/*override mask - ET4000 supports linear 128k at A0000*/
|
||||||
|
svga->banked_mask = 0x1ffff;
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@@ -454,7 +454,7 @@ void et4000w32p_recalcmapping(et4000w32p_t *et4000)
|
|||||||
case 0x0: case 0x4: case 0x8: case 0xC: /*128k at A0000*/
|
case 0x0: case 0x4: case 0x8: case 0xC: /*128k at A0000*/
|
||||||
mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x20000);
|
mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x20000);
|
||||||
mem_mapping_disable(&et4000->mmu_mapping);
|
mem_mapping_disable(&et4000->mmu_mapping);
|
||||||
svga->banked_mask = 0xffff;
|
svga->banked_mask = 0x1ffff;
|
||||||
break;
|
break;
|
||||||
case 0x1: /*64k at A0000*/
|
case 0x1: /*64k at A0000*/
|
||||||
mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x10000);
|
mem_mapping_set_addr(&svga->mapping, 0xa0000, 0x10000);
|
||||||
|
@@ -127,6 +127,15 @@ void tvga_out(uint16_t addr, uint8_t val, void *p)
|
|||||||
case 0x3CF:
|
case 0x3CF:
|
||||||
switch (svga->gdcaddr & 15)
|
switch (svga->gdcaddr & 15)
|
||||||
{
|
{
|
||||||
|
case 0x6:
|
||||||
|
old = svga->gdcreg[6];
|
||||||
|
svga_out(addr, val, svga);
|
||||||
|
if ((old & 0xc) != 0 && (val & 0xc) == 0)
|
||||||
|
{
|
||||||
|
/*override mask - TVGA supports linear 128k at A0000*/
|
||||||
|
svga->banked_mask = 0x1ffff;
|
||||||
|
}
|
||||||
|
return;
|
||||||
case 0xE:
|
case 0xE:
|
||||||
svga->gdcreg[0xe] = val ^ 2;
|
svga->gdcreg[0xe] = val ^ 2;
|
||||||
tvga->tvga_3d9 = svga->gdcreg[0xe] & 0xf;
|
tvga->tvga_3d9 = svga->gdcreg[0xe] & 0xf;
|
||||||
|
Reference in New Issue
Block a user