From 3a5b765fa92591978532a979acc3903107afca71 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 18 Apr 2017 20:17:06 -0400 Subject: kokoroj2: Found the CXD1095 (nw) --- src/mame/drivers/segas32.cpp | 43 ++++++++++++++++++++++++++++++++++++++++++- src/mame/includes/segas32.h | 11 +++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/mame/drivers/segas32.cpp b/src/mame/drivers/segas32.cpp index 9d857d4146d..d819ec9b579 100644 --- a/src/mame/drivers/segas32.cpp +++ b/src/mame/drivers/segas32.cpp @@ -530,6 +530,7 @@ orunners: Interleaved with the dj and << >> buttons is the data the drives the #include "cpu/v60/v60.h" #include "cpu/nec/v25.h" #include "cpu/upd7725/upd7725.h" +#include "machine/cxd1095.h" #include "machine/eepromser.h" #include "machine/i8255.h" #include "machine/mb8421.h" @@ -623,6 +624,11 @@ void segas32_upd7725_state::device_start() common_start(0); } +void segas32_cd_state::device_start() +{ + common_start(0); +} + void sega_multi32_state::device_start() { common_start(1); @@ -2624,6 +2630,37 @@ machine_config_constructor segas32_upd7725_state::device_mconfig_additions() con + + +static ADDRESS_MAP_START( system32_cd_map, AS_PROGRAM, 16, segas32_state ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0xc00060, 0xc0006f) AM_DEVREADWRITE8("cxdio", cxd1095_device, read, write, 0x00ff) + AM_IMPORT_FROM(system32_map) +ADDRESS_MAP_END + +static MACHINE_CONFIG_FRAGMENT( system32_cd ) + MCFG_FRAGMENT_ADD( system32 ) + + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(system32_cd_map) + + MCFG_DEVICE_ADD("cxdio", CXD1095, 0) +MACHINE_CONFIG_END + +const device_type SEGA_S32_CD_DEVICE = device_creator; + +segas32_cd_state::segas32_cd_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : segas32_state(mconfig, SEGA_S32_CD_DEVICE, "Sega System 32 CD PCB", tag, owner, clock, "sega32_pcb_cd", __FILE__) +{ +} + +machine_config_constructor segas32_cd_state::device_mconfig_additions() const +{ + return MACHINE_CONFIG_NAME( system32_cd ); +} + + + static MACHINE_CONFIG_FRAGMENT( multi32 ) /* basic machine hardware */ @@ -2831,6 +2868,10 @@ static MACHINE_CONFIG_START( sega_system32_4p, segas32_new_state ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_4PLAYER_DEVICE, 0) MACHINE_CONFIG_END +static MACHINE_CONFIG_START( sega_system32_cd, segas32_new_state ) + MCFG_DEVICE_ADD("mainpcb", SEGA_S32_CD_DEVICE, 0) +MACHINE_CONFIG_END + // for f1en where there is a sub-board containing shared ram sitting underneath the ROM board bridging 2 PCBs (not a network link) static MACHINE_CONFIG_START( sega_system32_dual_direct, segas32_new_state ) MCFG_DEVICE_ADD("mainpcb", SEGA_S32_ANALOG_DEVICE, 0) @@ -5700,7 +5741,7 @@ GAME( 1993, jparkj, jpark, sega_system32_analog, jpark, segas32_new_state, GAME( 1993, jparkja, jpark, sega_system32_analog, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Deluxe)", MACHINE_IMPERFECT_GRAPHICS ) GAME( 1993, jparkjc, jpark, sega_system32_analog, jpark, segas32_new_state, jpark, ROT0, "Sega", "Jurassic Park (Japan, Rev A, Conversion)", MACHINE_IMPERFECT_GRAPHICS ) -GAME( 1994, kokoroj2, 0, sega_system32, kokoroj2, segas32_new_state, radr, ROT0, "Sega", "Kokoroji 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING) /* uses an Audio CD */ +GAME( 1994, kokoroj2, 0, sega_system32_cd, kokoroj2, segas32_new_state, radr, ROT0, "Sega", "Kokoroji 2", MACHINE_IMPERFECT_GRAPHICS | MACHINE_NOT_WORKING | MACHINE_NODEVICE_PRINTER) /* uses an Audio CD */ GAME( 1990, radm, 0, sega_system32_analog, radm, segas32_new_state, radm, ROT0, "Sega", "Rad Mobile (World)", MACHINE_IMPERFECT_GRAPHICS ) /* Released in 02.1991 */ GAME( 1990, radmu, radm, sega_system32_analog, radm, segas32_new_state, radm, ROT0, "Sega", "Rad Mobile (US)", MACHINE_IMPERFECT_GRAPHICS ) diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h index e1bbb4cf3de..078bb1f68ba 100644 --- a/src/mame/includes/segas32.h +++ b/src/mame/includes/segas32.h @@ -320,6 +320,17 @@ protected: // virtual void device_reset() override; }; +class segas32_cd_state : public segas32_state +{ +public: + segas32_cd_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +protected: + virtual machine_config_constructor device_mconfig_additions() const override; + virtual void device_start() override; +// virtual void device_reset() override; +}; + class sega_multi32_state : public segas32_state { public: -- cgit v1.2.3