mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
fruitpc.cpp: split gogostrk into own driver (paokaipc.cpp), remove legacy PCI header defined. (#9562)
This commit is contained in:
parent
eeec90b527
commit
444a6c6144
@ -2107,13 +2107,14 @@ createMAMEProjects(_target, _subtarget, "ibmpc")
|
||||
files {
|
||||
MAME_DIR .. "src/mame/drivers/calchase.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/fruitpc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/igspc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pangofun.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/paokaipc.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pcat_dyn.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pcat_nit.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/pcxt.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/quakeat.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/queen.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/igspc.cpp",
|
||||
}
|
||||
|
||||
createMAMEProjects(_target, _subtarget, "igs")
|
||||
|
@ -954,6 +954,7 @@ pacman.cpp
|
||||
pandoras.cpp
|
||||
pangofun.cpp
|
||||
panicr.cpp
|
||||
paokaipc.cpp
|
||||
paradise.cpp
|
||||
paranoia.cpp
|
||||
parodius.cpp
|
||||
|
@ -7,6 +7,12 @@
|
||||
|
||||
preliminary driver by R. Belmont and Carl
|
||||
|
||||
TODO:
|
||||
- Can't find CF card, throws "No boot device available", culprit may be lack of
|
||||
PCI shadow RAM handling (which causes BIOS to boot in legacy mode);
|
||||
- Handle STPCD0166BTC3 SoC properly, including PCI devices connected and SVGA
|
||||
mods (wrongly draws only top screen with 640x200 with at486 -isa1 svga_s3);
|
||||
|
||||
Hardware:
|
||||
- ST STPCD0166BTC3 486/66 + PC + VGA all on one chip
|
||||
- 4x AS4LC1M16E5-60TC 1M x 16 EDO DRAM
|
||||
@ -15,7 +21,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/i386/i386.h"
|
||||
#include "machine/lpci.h"
|
||||
#include "bus/lpci/pci.h"
|
||||
#include "machine/pckeybrd.h"
|
||||
#include "machine/idectrl.h"
|
||||
#include "video/pc_vga.h"
|
||||
@ -28,6 +34,7 @@ class fruitpc_state : public pcat_base_state
|
||||
public:
|
||||
fruitpc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: pcat_base_state(mconfig, type, tag)
|
||||
, m_pcibus(*this, "pcibus")
|
||||
, m_isabus(*this, "isa")
|
||||
, m_inp(*this, "INP%u", 1U)
|
||||
{ }
|
||||
@ -35,6 +42,7 @@ public:
|
||||
void fruitpc(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<pci_bus_device> m_pcibus;
|
||||
required_device<isa8_device> m_isabus;
|
||||
required_ioport_array<4> m_inp;
|
||||
|
||||
@ -70,6 +78,7 @@ void fruitpc_state::fruitpc_io(address_map &map)
|
||||
map(0x03c0, 0x03cf).rw("vga", FUNC(vga_device::port_03c0_r), FUNC(vga_device::port_03c0_w));
|
||||
map(0x03d0, 0x03df).rw("vga", FUNC(vga_device::port_03d0_r), FUNC(vga_device::port_03d0_w));
|
||||
map(0x03f0, 0x03f7).rw("ide", FUNC(ide_controller_device::cs1_r), FUNC(ide_controller_device::cs1_w));
|
||||
map(0x0cf8, 0x0cff).rw(m_pcibus, FUNC(pci_bus_device::read), FUNC(pci_bus_device::write));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( fruitpc )
|
||||
@ -131,6 +140,8 @@ void fruitpc_state::fruitpc(machine_config &config)
|
||||
|
||||
m_dma8237_1->out_iow_callback<1>().set(FUNC(fruitpc_state::dma8237_1_dack_w));
|
||||
|
||||
PCI_BUS(config, m_pcibus, 0).set_busnum(0);
|
||||
|
||||
ISA8(config, m_isabus, 0);
|
||||
m_isabus->set_memspace("maincpu", AS_PROGRAM);
|
||||
m_isabus->set_iospace("maincpu", AS_IO);
|
||||
@ -159,15 +170,3 @@ ROM_START( fruitpc )
|
||||
ROM_END
|
||||
|
||||
GAME( 2006, fruitpc, 0, fruitpc, fruitpc, fruitpc_state, empty_init, ROT0, "<unknown>", "Fruit Land", MACHINE_IMPERFECT_GRAPHICS )
|
||||
|
||||
// this doesn't really belong here, but is some kind of x86 pc-like hardware, exact CPU type etc. unknown
|
||||
// hardware ia by Paokai, motherboard has logos, large chip with logo too, http://www.paokai.com.tw/
|
||||
ROM_START( gogostrk )
|
||||
ROM_REGION32_LE( 0x40000, "bios", 0 )
|
||||
ROM_LOAD( "39sf020a.rom1", 0x000000, 0x040000, CRC(236d4d95) SHA1(50579acddc93c05d5f8e17ad3669a29d2dc49965) )
|
||||
|
||||
DISK_REGION( "ide:0:hdd:image" ) // 128 MB CF Card
|
||||
DISK_IMAGE( "ggs-5-2-07", 0,SHA1(f214fd39ec8ac02f008823f4b179ea6c6835e1b8) )
|
||||
ROM_END
|
||||
|
||||
GAME( 2007, gogostrk, 0, fruitpc, fruitpc, fruitpc_state, empty_init, ROT0, "American Alpha / Paokai", "Go Go Strike", MACHINE_NOT_WORKING ) // motherboard is dated 2006, if the CF card string is a date it's 2007
|
||||
|
123
src/mame/drivers/paokaipc.cpp
Normal file
123
src/mame/drivers/paokaipc.cpp
Normal file
@ -0,0 +1,123 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:
|
||||
/**************************************************************************************************
|
||||
|
||||
Go Go Strike (c) 2007? Paokai
|
||||
|
||||
Originally in fruitpc.cpp, split because definitely doesn't belong
|
||||
|
||||
Some kind of x86 pc-like hardware, exact CPU type etc. unknown hardware is by Paokai,
|
||||
motherboard has logos, large chip with logo too, http://www.paokai.com.tw/
|
||||
|
||||
CF card has a Linux partition, partially bootable with m55hipl driver.
|
||||
- starts with a "LILO boot", fails with a recoverable "undefined video mode"
|
||||
(press RETURN or SPACE);
|
||||
- Shows being a "gcc 3.2.2 (Red Hat Linux 3.2.2-5)" distro.
|
||||
Notice that latter seems mislabeled, and RedHat is actually version 9
|
||||
http://rpm.pbone.net/info_idpl_19558085_distro_redhat9_com_gcc-3.2.2-5.i386.rpm.html
|
||||
- Has pretty verbose terminal log, checks PnP, USB, Pentium f0 0f bug,
|
||||
assumes "33 MHz system bus" for IDE PIO mode, returns PIIX only during PCI scan
|
||||
(that's what m55hipl has as default);
|
||||
- Eventually hangs at a "Setting the clock:" prompt;
|
||||
|
||||
**************************************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/i386/i386.h"
|
||||
#include "bus/lpci/pci.h"
|
||||
#include "machine/pckeybrd.h"
|
||||
#include "machine/idectrl.h"
|
||||
#include "video/pc_vga.h"
|
||||
#include "machine/pcshare.h"
|
||||
#include "bus/isa/isa.h"
|
||||
#include "bus/isa/sblaster.h"
|
||||
|
||||
class paokaipc_state : public pcat_base_state
|
||||
{
|
||||
public:
|
||||
paokaipc_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: pcat_base_state(mconfig, type, tag)
|
||||
, m_pcibus(*this, "pcibus")
|
||||
, m_isabus(*this, "isa")
|
||||
{ }
|
||||
|
||||
void paokaipc(machine_config &config);
|
||||
|
||||
private:
|
||||
required_device<pci_bus_device> m_pcibus;
|
||||
required_device<isa8_device> m_isabus;
|
||||
|
||||
void main_io(address_map &map);
|
||||
void main_map(address_map &map);
|
||||
};
|
||||
|
||||
void paokaipc_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x0009ffff).ram();
|
||||
map(0x000a0000, 0x000bffff).rw("vga", FUNC(vga_device::mem_r), FUNC(vga_device::mem_w)); // VGA VRAM
|
||||
map(0x000e0000, 0x000fffff).rom().region("bios", 0x20000);
|
||||
map(0x00100000, 0x008fffff).ram();
|
||||
map(0x02000000, 0x28ffffff).noprw();
|
||||
map(0xfffc0000, 0xffffffff).rom().region("bios", 0x00000); /* System BIOS */
|
||||
}
|
||||
|
||||
void paokaipc_state::main_io(address_map &map)
|
||||
{
|
||||
pcat32_io_common(map);
|
||||
map(0x01f0, 0x01f7).rw("ide", FUNC(ide_controller_device::cs0_r), FUNC(ide_controller_device::cs0_w));
|
||||
map(0x03b0, 0x03bf).rw("vga", FUNC(vga_device::port_03b0_r), FUNC(vga_device::port_03b0_w));
|
||||
map(0x03c0, 0x03cf).rw("vga", FUNC(vga_device::port_03c0_r), FUNC(vga_device::port_03c0_w));
|
||||
map(0x03d0, 0x03df).rw("vga", FUNC(vga_device::port_03d0_r), FUNC(vga_device::port_03d0_w));
|
||||
map(0x03f0, 0x03f7).rw("ide", FUNC(ide_controller_device::cs1_r), FUNC(ide_controller_device::cs1_w));
|
||||
// map(0x0880, 0x0880) extensively accessed at POST, hangs if returns wrong values
|
||||
map(0x0cf8, 0x0cff).rw(m_pcibus, FUNC(pci_bus_device::read), FUNC(pci_bus_device::write));
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( gogostrk )
|
||||
INPUT_PORTS_END
|
||||
|
||||
void paokaipc_state::paokaipc(machine_config &config)
|
||||
{
|
||||
// TODO: everything inherited from fruitpc.cpp, needs proper identification of motherboard.
|
||||
PENTIUM(config, m_maincpu, 66000000); // unknown CPU, at least Pentium according to logs
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &paokaipc_state::main_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &paokaipc_state::main_io);
|
||||
m_maincpu->set_irq_acknowledge_callback("pic8259_1", FUNC(pic8259_device::inta_cb));
|
||||
|
||||
pcat_common(config);
|
||||
|
||||
ide_controller_device &ide(IDE_CONTROLLER(config, "ide").options(ata_devices, "hdd", nullptr, true));
|
||||
ide.irq_handler().set("pic8259_2", FUNC(pic8259_device::ir6_w));
|
||||
|
||||
pcvideo_vga(config);
|
||||
|
||||
PCI_BUS(config, m_pcibus, 0).set_busnum(0);
|
||||
|
||||
ISA8(config, m_isabus, 0);
|
||||
m_isabus->set_memspace("maincpu", AS_PROGRAM);
|
||||
m_isabus->set_iospace("maincpu", AS_IO);
|
||||
m_isabus->irq2_callback().set("pic8259_2", FUNC(pic8259_device::ir2_w));
|
||||
m_isabus->irq3_callback().set("pic8259_1", FUNC(pic8259_device::ir3_w));
|
||||
m_isabus->irq4_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w));
|
||||
m_isabus->irq5_callback().set("pic8259_1", FUNC(pic8259_device::ir5_w));
|
||||
m_isabus->irq6_callback().set("pic8259_1", FUNC(pic8259_device::ir6_w));
|
||||
m_isabus->irq7_callback().set("pic8259_1", FUNC(pic8259_device::ir7_w));
|
||||
m_isabus->drq1_callback().set("dma8237_1", FUNC(am9517a_device::dreq1_w));
|
||||
m_isabus->drq2_callback().set("dma8237_1", FUNC(am9517a_device::dreq2_w));
|
||||
m_isabus->drq3_callback().set("dma8237_1", FUNC(am9517a_device::dreq3_w));
|
||||
|
||||
// FIXME: determine ISA bus clock
|
||||
// isa8_slot_device &isa1(ISA8_SLOT(config, "isa1", 0, "isa", fruitpc_isa8_cards, "sb15", true));
|
||||
// isa1.set_option_device_input_defaults("sb15", DEVICE_INPUT_DEFAULTS_NAME(fruitpc_sb_def));
|
||||
// isa1.set_option_machine_config("sb15", fruitpc_sb_conf);
|
||||
}
|
||||
|
||||
ROM_START( gogostrk )
|
||||
ROM_REGION32_LE( 0x40000, "bios", 0 )
|
||||
ROM_LOAD( "39sf020a.rom1", 0x000000, 0x040000, CRC(236d4d95) SHA1(50579acddc93c05d5f8e17ad3669a29d2dc49965) )
|
||||
|
||||
DISK_REGION( "ide:0:hdd:image" ) // 128 MB CF Card
|
||||
DISK_IMAGE( "ggs-5-2-07", 0,SHA1(f214fd39ec8ac02f008823f4b179ea6c6835e1b8) )
|
||||
ROM_END
|
||||
|
||||
GAME( 2007?, gogostrk, 0, paokaipc, gogostrk, paokaipc_state, empty_init, ROT0, "American Alpha / Paokai", "Go Go Strike", MACHINE_IS_SKELETON ) // motherboard is dated 2006, if the CF card string is a date it's 2007
|
@ -14259,7 +14259,6 @@ nmsengen // (c) 1991 Video System (Japan)
|
||||
|
||||
@source:fruitpc.cpp
|
||||
fruitpc // ???
|
||||
gogostrk //
|
||||
|
||||
@source:fs3216.cpp
|
||||
fs3216 //
|
||||
@ -34107,6 +34106,9 @@ pangofun // (c) 1995 InfoCube
|
||||
panicr // Seibu / Taito
|
||||
panicrg // Seibu / TV-Tuning (Germany)
|
||||
|
||||
@source:paokaipc.cpp
|
||||
gogostrk //
|
||||
|
||||
@source:paradise.cpp
|
||||
madball // (c) 1998 Yun Sung
|
||||
madballn // (c) 1998 Yun Sung
|
||||
|
Loading…
Reference in New Issue
Block a user