mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
misc/odyssey: fix BIOS expansion ROM mapping
This commit is contained in:
parent
c38f675ae0
commit
d6f12f015c
@ -1,6 +1,6 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Roberto Fresca
|
||||
/*****************************************************************
|
||||
/******************************************************************************
|
||||
|
||||
Odyssey.
|
||||
Silicon Gaming.
|
||||
@ -8,7 +8,12 @@
|
||||
|
||||
Preliminary driver by Roberto Fresca.
|
||||
|
||||
******************************************************************
|
||||
TODO:
|
||||
- bp f7ae6,1,{eip+=0xf;g} fails ISA state $0f;
|
||||
- Accesses S3 video in Old MMIO mode, draws 32-bit color mode GFXs;
|
||||
- Hangs after playing with LPT1;
|
||||
|
||||
*******************************************************************************
|
||||
|
||||
Hardware Notes
|
||||
--------------
|
||||
@ -63,7 +68,7 @@
|
||||
chassis is manufactured by Neotec.
|
||||
|
||||
|
||||
******************************************************************/
|
||||
******************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
|
||||
@ -156,11 +161,11 @@ static void isa_com(device_slot_interface &device)
|
||||
#endif
|
||||
|
||||
// This emulates a Tucson / Triton-II chipset, earlier i430fx TBD
|
||||
// PCI config space is trusted by Intel TC430HX "Technical Product Specification"
|
||||
// PCI config space is trusted by Intel TC430HX "Technical Product Specification" page 39
|
||||
void odyssey_state::odyssey(machine_config &config)
|
||||
{
|
||||
// a Celeron at 1.70 GHz on the MB I checked. <- doesn't match being a Triton/Triton-II ... -AS
|
||||
// It also fails refresh check if it's 133 MHz
|
||||
// It also fails refresh check if it's barely above 66 MHz (ISA state $08)
|
||||
PENTIUM(config, m_maincpu, 66'000'000);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &odyssey_state::odyssey_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &odyssey_state::odyssey_io);
|
||||
@ -171,6 +176,7 @@ void odyssey_state::odyssey(machine_config &config)
|
||||
I82439HX(config, "pci:00.0", 0, m_maincpu, 64*1024*1024);
|
||||
|
||||
// TODO: 82371FB
|
||||
// accesses both mbirq regs, regular PIIX rather than PIIX3?
|
||||
i82371sb_isa_device &isa(I82371SB_ISA(config, "pci:07.0", 0, "maincpu"));
|
||||
isa.boot_state_hook().set([](u8 data) { /* printf("%02x\n", data); */ });
|
||||
isa.smi().set_inputline("maincpu", INPUT_LINE_SMI);
|
||||
@ -181,14 +187,21 @@ void odyssey_state::odyssey(machine_config &config)
|
||||
|
||||
// TODO: 82371FB USB at 07.2
|
||||
|
||||
// On-board Virge or Virge/DX
|
||||
// TODO: actually a S3 Vision 968
|
||||
PCI_SLOT(config, "pci:1", pci_cards, 8, 0, 1, 2, 3, "virge");
|
||||
// On-board S3 Vision 968
|
||||
// FIXME: replace once we have a core for it
|
||||
VIRGE_PCI(config, "pci:08.0", 0);
|
||||
|
||||
// pci:0d.0 (J4E1) PCI expansion slot 1
|
||||
//PCI_SLOT(config, "pci:1", pci_cards, 13, 0, 1, 2, 3, nullptr);
|
||||
|
||||
// pci:0e.0 (J4D2) PCI expansion slot 2
|
||||
//PCI_SLOT(config, "pci:2", pci_cards, 14, 0, 1, 2, 3, nullptr);
|
||||
|
||||
// pci:0f.0 (J4D1) PCI expansion slot 3
|
||||
// pci:10.0 (J4C1) PCI expansion slot 4
|
||||
//PCI_SLOT(config, "pci:3", pci_cards, 15, 0, 1, 2, 3, nullptr);
|
||||
|
||||
// pci:10.0 (J4C1) PCI expansion slot 4
|
||||
PCI_SLOT(config, "pci:4", pci_cards, 16, 0, 1, 2, 3, nullptr);
|
||||
|
||||
ISA16_SLOT(config, "board4", 0, "pci:07.0:isabus", isa_internal_devices, "pc87306", true).set_option_machine_config("pc87306", national_superio_config);
|
||||
ISA16_SLOT(config, "isa1", 0, "pci:07.0:isabus", pc_isa16_cards, nullptr, false);
|
||||
@ -242,11 +255,9 @@ ROM_START( odyssey )
|
||||
|
||||
ROM_REGION32_LE( 0x100000, "pmb", ROMREGION_ERASE00 ) // Peripheral Memory Board (II) ROMS
|
||||
ROM_LOAD( "sgi_u13_165_0017_0_rev_a_l97_1352.bin", 0x00000, 0x80000, CRC(31ca868c) SHA1(d1db4ef12add336e25374fcf5d3238b8fbca05dd) ) // U13 - 165-0017 BIOS (27C040/27C4001 EPROM)
|
||||
// boot image? Contains valid x86 code at $f50, login info to a network at $000
|
||||
ROM_LOAD( "sgi_u5_165_0030_0_at28c010.bin", 0x80000, 0x20000, CRC(75a80169) SHA1(a8ece0f82a49f721fb178dbe25fc859bd65ce44f) ) // U5 - 165-0030 CONFIG (Atmel 28C010-12PC EEPROM)
|
||||
|
||||
ROM_REGION32_LE( 0x80000, "pci:07.0", 0 )
|
||||
ROM_COPY( "pmb", 0x00000, 0x00000, 0x80000 )
|
||||
|
||||
ROM_REGION( 0x300000, "other", 0 ) // remaining BIOS
|
||||
// doesn't seem to have valid x86 boot vectors, may be reused later.
|
||||
ROM_LOAD( "sgi_bios_76.bin", 0x000000, 0x80000, CRC(00592222) SHA1(29281d25aaf2051e0794dece8be146bb63d5c488) )
|
||||
@ -256,6 +267,10 @@ ROM_START( odyssey )
|
||||
ROM_LOAD( "sgi_bios_31.bin", 0x200000, 0x80000, CRC(0954278b) SHA1(dc04a0604159ddd3d24bdd292b2947cc443054f8) )
|
||||
ROM_LOAD( "sgi_bios_00.bin", 0x280000, 0x80000, CRC(41480fb5) SHA1(073596d3ba40ae67e3be3f410d7b29c77988df47) )
|
||||
|
||||
ROM_REGION32_LE( 0x100000, "pci:07.0", 0 )
|
||||
ROM_COPY( "other", 0x00000, 0x00000, 0x80000 )
|
||||
ROM_COPY( "pmb", 0x00000, 0x80000, 0x80000 )
|
||||
|
||||
ROM_REGION( 0x10000, "vbios", 0 ) // video card BIOS
|
||||
ROM_LOAD( "videobios", 0x000000, 0x00d000, NO_DUMP )
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user