From 3f45d441848c6d7c1fc604433b8607f298db483f Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Sun, 6 May 2018 06:13:57 +0000 Subject: [PATCH] Added subsystem ID for Voodoo3 AGP with an existing VGA ROM. Updated some comments. TODO: full AGP support, LGPL'd VGABIOS for Banshee / Voodoo3 --- bochs/iodev/display/banshee.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bochs/iodev/display/banshee.cc b/bochs/iodev/display/banshee.cc index 1fe0357c9..aeb4546a5 100644 --- a/bochs/iodev/display/banshee.cc +++ b/bochs/iodev/display/banshee.cc @@ -56,7 +56,7 @@ ***************************************************************************/ -// 3dfx Voodoo Banshee emulation (partly based on a patch for DOSBox) +// 3dfx Voodoo Banshee / Voodoo3 emulation (partly based on a patch for DOSBox) // TODO: // - 2D polygon fill @@ -64,6 +64,7 @@ // - 2D chromaKey support // - using upper 256 CLUT entries // - pixel format conversion not supported in all cases +// - full AGP support // FIXME: // - Minor issues in all Banshee modes (e.g. forward/back buttons in explorer) @@ -187,7 +188,7 @@ void bx_banshee_c::reset(unsigned type) { 0x1a, 0x00 }, { 0x1b, 0x00 }, // address space 0x2c - 0x2f { 0x2c, 0x1a }, { 0x2d, 0x12 }, // subsystem ID - { 0x2e, 0x04 }, { 0x2f, 0x00 }, // for Banshee PCI and Voodoo 3 AGP + { 0x2e, 0x04 }, { 0x2f, 0x00 }, // for Banshee PCI // capabilities pointer 0x34 - 0x37 { 0x34, 0x60 }, { 0x35, 0x00 }, { 0x36, 0x00 }, { 0x37, 0x00 }, @@ -217,8 +218,12 @@ void bx_banshee_c::reset(unsigned type) v->banshee.io[io_miscInit1] |= 0x0c000000; } // Special subsystem IDs - if ((s.model == VOODOO_3) && !is_agp) { - pci_conf[0x2e] = 0x36; // Voodoo 3 PCI model + if (s.model == VOODOO_3) { + if (!is_agp) { + pci_conf[0x2e] = 0x36; // Voodoo 3 PCI model + } else { + pci_conf[0x2e] = 0x52; // Voodoo 3 AGP model + } } else if ((s.model == VOODOO_BANSHEE) && is_agp) { pci_conf[0x2e] = 0x03; // Banshee AGP model }