mirror of
https://github.com/holub/mame
synced 2025-06-30 16:00:01 +03:00
pc/pc_sis.cpp: hookup Voodoo 1 to sis85c496 driver
This commit is contained in:
parent
b1d8f14fe6
commit
ebdba74605
@ -19,6 +19,7 @@
|
||||
#include "cpu/i386/i386.h"
|
||||
#include "machine/pci.h"
|
||||
#include "machine/sis85c496.h"
|
||||
#include "video/voodoo_pci.h"
|
||||
|
||||
class sis496_state : public driver_device
|
||||
{
|
||||
@ -30,13 +31,31 @@ public:
|
||||
|
||||
void sis496(machine_config &config);
|
||||
|
||||
private:
|
||||
protected:
|
||||
required_device<i486dx4_device> m_maincpu;
|
||||
|
||||
private:
|
||||
void main_io(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
};
|
||||
|
||||
#define PCI_ID_VIDEO "pci:08.0"
|
||||
|
||||
class sis496_voodoo1_state : public sis496_state
|
||||
{
|
||||
public:
|
||||
sis496_voodoo1_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: sis496_state(mconfig, type, tag)
|
||||
, m_voodoo(*this, PCI_ID_VIDEO)
|
||||
, m_screen(*this, "screen")
|
||||
{ }
|
||||
|
||||
void sis496_voodoo1(machine_config &config);
|
||||
|
||||
protected:
|
||||
required_device<voodoo_1_pci_device> m_voodoo;
|
||||
required_device<screen_device> m_screen;
|
||||
};
|
||||
|
||||
void sis496_state::main_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
@ -63,6 +82,23 @@ void sis496_state::sis496(machine_config &config)
|
||||
ISA16_SLOT(config, "isa3", 0, "pci:05.0:isabus", pc_isa16_cards, nullptr, false);
|
||||
}
|
||||
|
||||
void sis496_voodoo1_state::sis496_voodoo1(machine_config &config)
|
||||
{
|
||||
sis496_state::sis496(config);
|
||||
|
||||
VOODOO_1_PCI(config, m_voodoo, 0, m_maincpu, m_screen);
|
||||
m_voodoo->set_fbmem(2);
|
||||
m_voodoo->set_tmumem(4, 0);
|
||||
m_voodoo->set_status_cycles(1000);
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
// Screeen size and timing is re-calculated later in voodoo card
|
||||
m_screen->set_refresh_hz(57);
|
||||
m_screen->set_size(640, 480);
|
||||
m_screen->set_visarea(0, 640 - 1, 0, 480 - 1);
|
||||
m_screen->set_screen_update(PCI_ID_VIDEO, FUNC(voodoo_1_pci_device::screen_update));
|
||||
}
|
||||
|
||||
// generic placeholder for unknown BIOS types
|
||||
// Funworld BIOS is temporary until we rewrite funworld/photoply.cpp
|
||||
ROM_START( sis85c496 )
|
||||
@ -181,7 +217,7 @@ ROM_START( a486sp3 )
|
||||
ROMX_LOAD( "si4i0305.awd", 0x00000, 0x20000, CRC(2f90e63e) SHA1(a4f16753b5a57d65fba7702ca28e44f10bd5bb6c), ROM_BIOS(8))
|
||||
ROM_END
|
||||
|
||||
COMP( 199?, sis85c496, 0, 0, sis496, 0, sis496_state, empty_init, "Hack Inc.", "486 motherboards using the SiS 85C496/85C497 chipset", MACHINE_NOT_WORKING ) // 4sim002 crashes while enabling cache?
|
||||
COMP( 199?, sis85c496, 0, 0, sis496_voodoo1, 0, sis496_voodoo1_state, empty_init, "Hack Inc.", "486 motherboards using the SiS 85C496/85C497 chipset + 3dfx Voodoo 1", MACHINE_NOT_WORKING ) // 4sim002 crashes while enabling cache?
|
||||
|
||||
COMP( 1995, atc1425a, 0, 0, sis496, 0, sis496_state, empty_init, "A-Trend", "ATC-1425A (SiS 85C496/85C497)", MACHINE_NOT_WORKING ) // -bios 2 punts to Award BootBlock, -bios 0 and 1 crashes
|
||||
COMP( 1996, atc1425b, 0, 0, sis496, 0, sis496_state, empty_init, "A-Trend", "ATC-1425B (SiS 85C496/85C497)", MACHINE_NOT_WORKING ) // punts to Award BootBlock
|
||||
|
Loading…
Reference in New Issue
Block a user