summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ted Green <tedgreen99@protonmail.com>2018-09-02 14:10:09 -0600
committer Ted Green <tedgreen99@protonmail.com>2018-09-02 14:16:49 -0600
commit0136cba5b5caff86d4434806a05f295f94a951d4 (patch)
treea7afd71ad10a1e93d5b30e3e0f69c189764306ee
parent95dc6bbe186273d774639b796a6945f714953758 (diff)
voodoo_pci: Change readback value of PCI config 0x40 based on voodoo card type. Fixes MT06874.
-rw-r--r--src/devices/video/voodoo_pci.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/devices/video/voodoo_pci.cpp b/src/devices/video/voodoo_pci.cpp
index a481f10033b..82fc89aaa9a 100644
--- a/src/devices/video/voodoo_pci.cpp
+++ b/src/devices/video/voodoo_pci.cpp
@@ -203,9 +203,13 @@ READ32_MEMBER (voodoo_pci_device::pcictrl_r)
// The address map starts at 0x40
switch (offset + 0x40 / 4) {
case 0x40/4:
- // V2: Init Enable: 19:16=Fab ID, 15:12=Graphics Rev
- // Vegas driver needs this value at PCI 0x40
- result = 0x00044000;
+ // V1: initEnable: 11:0
+ // V2: initEnable: Fab ID=19:16, Graphics Rev=15:12
+ // Banshee/V3: fabID: ScratchPad=31:4 fabID=3:0
+ if (m_voodoo->vd_type== TYPE_VOODOO_2)
+ result = (result & ~0xff000) | 0x00044000; // Vegas driver needs this value
+ else if (m_voodoo->vd_type >= TYPE_VOODOO_BANSHEE)
+ result = (result & ~0xf) | 0x1;
break;
case 0x54/4:
// V2: SiProcess Register: Osc Force On, Osc Ring Sel, Osc Count Reset, 12 bit PCI Counter, 16 bit Oscillator Counter