mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
naomi: add a new device for the Sega 837-14438 "SH I/O BD" hopper board
This commit is contained in:
parent
07a1542a7c
commit
ba3e5baffc
@ -3556,6 +3556,8 @@ files {
|
||||
MAME_DIR .. "src/mame/machine/dc-ctrl.h",
|
||||
MAME_DIR .. "src/mame/machine/jvs13551.cpp",
|
||||
MAME_DIR .. "src/mame/machine/jvs13551.h",
|
||||
MAME_DIR .. "src/mame/machine/segashiobd.cpp",
|
||||
MAME_DIR .. "src/mame/machine/segashiobd.h",
|
||||
MAME_DIR .. "src/mame/drivers/triforce.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/puckpkmn.cpp",
|
||||
MAME_DIR .. "src/mame/drivers/segac2.cpp",
|
||||
|
@ -1570,6 +1570,8 @@ files {
|
||||
MAME_DIR .. "src/mame/machine/315-5881_crypt.h",
|
||||
MAME_DIR .. "src/mame/machine/315-6154.cpp",
|
||||
MAME_DIR .. "src/mame/machine/315-6154.h",
|
||||
MAME_DIR .. "src/mame/machine/segashiobd.cpp",
|
||||
MAME_DIR .. "src/mame/machine/segashiobd.h",
|
||||
MAME_DIR .. "src/mame/video/powervr2.cpp",
|
||||
MAME_DIR .. "src/mame/video/powervr2.h",
|
||||
MAME_DIR .. "src/mame/drivers/neogeo.cpp",
|
||||
|
@ -3113,6 +3113,16 @@ void naomi_state::naomim4(machine_config &config)
|
||||
rom_board.irq_callback().set(FUNC(dc_state::g1_irq));
|
||||
}
|
||||
|
||||
/*
|
||||
* Naomi M1 with 837-14438 "SH I/O BD" hopper board
|
||||
*/
|
||||
|
||||
void naomi_state::naomim1_hop(machine_config &config)
|
||||
{
|
||||
naomim1(config);
|
||||
SEGA837_14438(config, "hopperbd", 0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Naomi M2 with Keyboard controllers
|
||||
*/
|
||||
@ -7754,26 +7764,6 @@ ROM_START( kick4csh )
|
||||
ROM_REGION(0x200, "some_eeprom", 0)
|
||||
ROM_LOAD( "25lc040.ic13s", 0, 0x200, CRC(1576366a) SHA1(3e8bf3dbc8a248a6863242b78d5c6e53a869e951) )
|
||||
|
||||
// 837-14438 SH I/O BD
|
||||
// IC1 - Hitachi/Renesas SH4 SoC
|
||||
// IC2 - Xilinx Spartan XC2S50 PQ208AMS0341 FPGA
|
||||
// IC3 - Xilinx 17S50APC Spartan-II Family OTP Configuration PROM, stamped 6372A
|
||||
// IC4,5 - Toshiba TC59S6432CFT-10 512K x4 banks x32bit SDRAM
|
||||
// IC6 - Macronix MX29LV160ATTC-90 16Mbit Flash ROM
|
||||
// IC7 - ST M68AF127BL55MC6 1Mbit (128K x8) SRAM
|
||||
// IC9 - NS USBN9604-28M USB Node Controller
|
||||
// OSC1 - 33.3333 MHz
|
||||
// OSC2 - 32.0000 MHz
|
||||
// OCS3 - 24.0000 MHz
|
||||
// SW1,2 - pushbuttons
|
||||
// DIPSW1 - 4x DIP switch
|
||||
// LED1-5 - LEDs
|
||||
// LED6,7 - 7seg LEDs
|
||||
// BT1 - Panasonic CR2032 battery
|
||||
ROM_REGION(0x220000, "hopper_board", 0)
|
||||
ROM_LOAD( "fpr-24150.ic6", 0x0000000, 0x200000, CRC(3845c34c) SHA1(027b17bac64482ee152773d5fab30fcbc6e2bcb7) ) // SH4 code
|
||||
ROM_LOAD( "6372a.ic3", 0x0200000, 0x020000, CRC(f30839ad) SHA1(ea1a32c4da1ed9745300bcdd7964a7c0964e3221) ) // FPGA config
|
||||
|
||||
// 840-0140 2004 317-0397-COM Naomi
|
||||
ROM_PARAMETER( ":rom_board:key", "820857c9" )
|
||||
ROM_END
|
||||
@ -11743,9 +11733,9 @@ ROM_END
|
||||
/* 0128 */ GAME( 2003, shootpl, naomi, naomim1, naomi, naomi_state, init_naomi, ROT0, "Sega", "Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan, Rev A)", GAME_FLAGS )
|
||||
/* 0130 */ GAME( 2002, hopper, naomi, naomi, naomi, naomi_state, init_naomi, ROT0, "Sega", "SWP Hopper Board", GAME_FLAGS )
|
||||
// 0132 Mushiking 2K3 2ND (Japan)
|
||||
/* 0136 */ GAME( 2004, shootplm, naomi, naomim1, naomi, naomi_state, init_naomi, ROT0, "Sega", "Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B", GAME_FLAGS ) // Build: 23 Jan 2004
|
||||
/* 0136 */ GAME( 2004, shootplm, naomi, naomim1_hop, naomi, naomi_state, init_naomi, ROT0, "Sega", "Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B", GAME_FLAGS ) // Build: 23 Jan 2004
|
||||
/* 0136 */ GAME( 2004, shootplmp, shootplm, naomim2, naomi, naomi_state, init_naomi, ROT0, "Sega", "Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B (prototype)", GAME_FLAGS ) // Build: 15 Dec 2003
|
||||
/* 0140 */ GAME( 2004, kick4csh, naomi, naomim1, naomi, naomi_state, init_naomi, ROT0, "Sega", "Kick '4' Cash (Export)", GAME_FLAGS )
|
||||
/* 0140 */ GAME( 2004, kick4csh, naomi, naomim1_hop, naomi, naomi_state, init_naomi, ROT0, "Sega", "Kick '4' Cash (Export)", GAME_FLAGS )
|
||||
/* 0150 */ GAME( 2004, mushike, naomi, naomim1, naomi, naomi_state, init_naomi, ROT0, "Sega", "Mushiking The King Of Beetle (2K3 2ND Ver. 1.003-, World)", GAME_FLAGS ) // not for Japan
|
||||
/* 0150 */ GAME( 2004, mushikeo, mushike, naomim1, naomi, naomi_state, init_naomi, ROT0, "Sega", "Mushiking The King Of Beetle (2K3 2ND Ver. 1.002-, World)", GAME_FLAGS ) // not for Japan
|
||||
/* 0150-FLS*/ GAME( 2004, mushikep, mushike, naomim2, naomi, naomi_state, init_naomi, ROT0, "Sega", "Mushiking The King Of Beetle (MUSHIUSA '04 1ST, Prototype)", GAME_FLAGS )
|
||||
|
@ -28,6 +28,7 @@ naomi.h -> NAOMI includes
|
||||
#include "machine/jvs13551.h"
|
||||
#include "machine/m3comm.h"
|
||||
#include "machine/gunsense.h"
|
||||
#include "machine/segashiobd.h"
|
||||
#include "dc.h"
|
||||
|
||||
enum {
|
||||
@ -54,6 +55,7 @@ class naomi_state : public dc_state
|
||||
void naomim2_gun(machine_config &config);
|
||||
void naomi(machine_config &config);
|
||||
void naomim1(machine_config &config);
|
||||
void naomim1_hop(machine_config &config);
|
||||
void naomigd(machine_config &config);
|
||||
void naomigd_kb(machine_config &config);
|
||||
void naomim4(machine_config &config);
|
||||
|
121
src/mame/machine/segashiobd.cpp
Normal file
121
src/mame/machine/segashiobd.cpp
Normal file
@ -0,0 +1,121 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Samuele Zannoli
|
||||
|
||||
#include "emu.h"
|
||||
#include "machine/segashiobd.h"
|
||||
|
||||
/*
|
||||
837-14438 SH I/O BD
|
||||
|
||||
|-------------------------------------------------------------------------------------|
|
||||
| CN3 CN6 CN2 CN1 CN11 |
|
||||
| |
|
||||
| LED1-5 |
|
||||
| |
|
||||
| DIPSW1 BT1 OSC1 |
|
||||
| |
|
||||
| IC3 LED6,7 SW2 |
|
||||
| |
|
||||
| OSC2 IC8 IC1 IC4 IC5 |
|
||||
| |
|
||||
|CN5 IC7 |
|
||||
| |
|
||||
| IC2 |
|
||||
| |
|
||||
| IC6 |
|
||||
| |
|
||||
| SW1 |
|
||||
| |
|
||||
| IC9 |
|
||||
| OSC3 |
|
||||
| CN4 CN7 CN8 |
|
||||
|-------------------------------------------------------------------------------------|
|
||||
|
||||
IC1 - Hitachi/Renesas SH4 SoC
|
||||
IC2 - Xilinx Spartan XC2S50 PQ208AMS0341 FPGA
|
||||
IC3 - Xilinx 17S50APC Spartan-II Family OTP Configuration PROM, stamped 6372A
|
||||
IC4,5 - Toshiba TC59S6432CFT-10 512K x4 banks x32bit SDRAM
|
||||
IC6 - Macronix MX29LV160ATTC-90 16Mbit Flash ROM
|
||||
IC7 - ST M68AF127BL55MC6 1Mbit (128K x8) SRAM
|
||||
IC8 - 42-pin DIP socket, unpopulated
|
||||
IC9 - NS USBN9604-28M USB Node Controller
|
||||
OSC1 - 33.3333 MHz
|
||||
OSC2 - 32.0000 MHz
|
||||
OCS3 - 24.0000 MHz
|
||||
SW1,2 - pushbuttons
|
||||
DIPSW1 - 4x DIP switch
|
||||
LED1-5 - LEDs
|
||||
LED6,7 - 7seg LEDs
|
||||
BT1 - Panasonic CR2032 battery
|
||||
|
||||
CN1 - 8 pin JST VH series connector
|
||||
1 12V
|
||||
2 5V
|
||||
3 5V
|
||||
4 3.3V
|
||||
5 3.3V
|
||||
6 gnd
|
||||
7 gnd
|
||||
8 gnd
|
||||
|
||||
CN2 - 4 pin JST VH series connector
|
||||
1 12V
|
||||
2 12V
|
||||
3 gnd
|
||||
4 gnd
|
||||
*/
|
||||
|
||||
DEFINE_DEVICE_TYPE(SEGA837_14438, sega_837_14438_device, "sega837_14438", "Sega 837-14438 SH I/O BD")
|
||||
|
||||
void sega_837_14438_device::sh4_map(address_map &map)
|
||||
{
|
||||
// mirrors only for the debugger
|
||||
map(0x00000000, 0x001fffff).mirror(0xa0000000).rom();
|
||||
map(0x04000000, 0x0401ffff).mirror(0xa0000000).ram();
|
||||
map(0x0c000000, 0x0cffffff).mirror(0x80000000).ram();
|
||||
}
|
||||
|
||||
#define CPU_CLOCK 200000000 // need to set the correct value here
|
||||
|
||||
void sega_837_14438_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
SH4LE(config, m_maincpu, CPU_CLOCK);
|
||||
m_maincpu->set_md(0, 1);
|
||||
m_maincpu->set_md(1, 0);
|
||||
m_maincpu->set_md(2, 1);
|
||||
m_maincpu->set_md(3, 0);
|
||||
m_maincpu->set_md(4, 0);
|
||||
m_maincpu->set_md(5, 1);
|
||||
m_maincpu->set_md(6, 0);
|
||||
m_maincpu->set_md(7, 1);
|
||||
m_maincpu->set_md(8, 0);
|
||||
m_maincpu->set_sh4_clock(CPU_CLOCK);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &sega_837_14438_device::sh4_map);
|
||||
}
|
||||
|
||||
sega_837_14438_device::sega_837_14438_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, SEGA837_14438, tag, owner, clock),
|
||||
m_maincpu(*this, "shiobdcpu")
|
||||
{
|
||||
}
|
||||
|
||||
void sega_837_14438_device::device_start()
|
||||
{
|
||||
}
|
||||
|
||||
void sega_837_14438_device::device_reset()
|
||||
{
|
||||
device_t::device_reset();
|
||||
}
|
||||
|
||||
ROM_START(segashiobd)
|
||||
ROM_REGION(0x200000, "shiobdcpu", 0)
|
||||
ROM_LOAD("fpr-24150.ic6", 0x0000000, 0x200000, CRC(3845c34c) SHA1(027b17bac64482ee152773d5fab30fcbc6e2bcb7)) // SH4 code
|
||||
ROM_REGION(0x020000, "config_prom", 0)
|
||||
ROM_LOAD("6372a.ic3", 0x0000000, 0x020000, CRC(f30839ad) SHA1(ea1a32c4da1ed9745300bcdd7964a7c0964e3221)) // FPGA configuration prom
|
||||
ROM_END
|
||||
|
||||
const tiny_rom_entry* sega_837_14438_device::device_rom_region() const
|
||||
{
|
||||
return ROM_NAME(segashiobd);
|
||||
}
|
29
src/mame/machine/segashiobd.h
Normal file
29
src/mame/machine/segashiobd.h
Normal file
@ -0,0 +1,29 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Samuele Zannoli
|
||||
#ifndef MAME_MACHINE_SEGASHIOBD_H
|
||||
#define MAME_MACHINE_SEGASHIOBD_H
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpu/sh/sh4.h"
|
||||
|
||||
DECLARE_DEVICE_TYPE(SEGA837_14438, sega_837_14438_device)
|
||||
|
||||
class sega_837_14438_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
sega_837_14438_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual const tiny_rom_entry *device_rom_region() const override;
|
||||
|
||||
protected:
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
virtual void device_add_mconfig(machine_config &config) override;
|
||||
void sh4_map(address_map &map);
|
||||
|
||||
private:
|
||||
required_device<sh4_device> m_maincpu;
|
||||
};
|
||||
|
||||
#endif // MAME_MACHINE_SEGASHIOBD_H
|
Loading…
Reference in New Issue
Block a user