More video fixes:
ATI Mach64 is temporarily unthreaded because of blitter desyncing. ATI Mach32 now returns to ATI mode from IBM mode and vice versa more correctly. Make the IBM 8514/A compatible poll not run if a 3D add-on card (Voodoo1/2) takes precedence (seen on a Mach32 PCI and Voodoo2 3D combo). Finally ended the mess ups of the TGUI9440/96x0 pitch, it actually was the CRTC offset reg (SVGA CRTC 0x13) that defined it with some shifting based on the BPP.
This commit is contained in:
@@ -117,6 +117,9 @@ svga_out(uint16_t addr, uint8_t val, void *priv)
|
||||
uint8_t o;
|
||||
uint8_t index;
|
||||
|
||||
if (!dev && (addr >= 0x2ea) && (addr <= 0x2ed))
|
||||
return;
|
||||
|
||||
switch (addr) {
|
||||
case 0x2ea:
|
||||
dev->dac_mask = val;
|
||||
@@ -363,6 +366,9 @@ svga_in(uint16_t addr, void *priv)
|
||||
uint8_t index;
|
||||
uint8_t ret = 0xff;
|
||||
|
||||
if (!dev && (addr >= 0x2ea) && (addr <= 0x2ed))
|
||||
return ret;
|
||||
|
||||
switch (addr) {
|
||||
case 0x2ea:
|
||||
ret = dev->dac_mask;
|
||||
@@ -827,15 +833,17 @@ svga_poll(void *priv)
|
||||
int ret;
|
||||
int old_ma;
|
||||
|
||||
if (ibm8514_active && dev->on) {
|
||||
ibm8514_poll(dev, svga);
|
||||
return;
|
||||
}
|
||||
if (xga_active && xga->on) {
|
||||
if ((xga->disp_cntl_2 & 7) >= 2) {
|
||||
xga_poll(xga, svga);
|
||||
if (!svga->override) {
|
||||
if (ibm8514_active && dev->on) {
|
||||
ibm8514_poll(dev, svga);
|
||||
return;
|
||||
}
|
||||
if (xga_active && xga->on) {
|
||||
if ((xga->disp_cntl_2 & 7) >= 2) {
|
||||
xga_poll(xga, svga);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!svga->linepos) {
|
||||
|
||||
Reference in New Issue
Block a user