From 8999423a0a3ed293ff314e98f42cb854057f7b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Banaan=20Ananas?= Date: Tue, 28 Jan 2014 10:59:24 +0000 Subject: [PATCH] added dummy mcu --- src/emu/cpu/upd7810/upd7810.h | 6 ++-- src/mame/drivers/taitogn.c | 35 +++++++++++++++++--- src/mame/drivers/zn.c | 61 +++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 7 deletions(-) diff --git a/src/emu/cpu/upd7810/upd7810.h b/src/emu/cpu/upd7810/upd7810.h index ca6bd76242e..65dee48cf3d 100644 --- a/src/emu/cpu/upd7810/upd7810.h +++ b/src/emu/cpu/upd7810/upd7810.h @@ -16,8 +16,10 @@ enum UPD7810_TYPE TYPE_7801, TYPE_78C05, TYPE_78C06, - TYPE_7810, - TYPE_7807 + TYPE_7807, +// TYPE_78081, +// TYPE_78082, + TYPE_7810 // TYPE_78C10, // stop instruction added // TYPE_78IV, // TYPE_78K0, diff --git a/src/mame/drivers/taitogn.c b/src/mame/drivers/taitogn.c index d8607ace47e..6063c2f78da 100644 --- a/src/mame/drivers/taitogn.c +++ b/src/mame/drivers/taitogn.c @@ -77,6 +77,7 @@ Notes: EPM7064 - Altera EPM7064QC100 CPLD (QFP100) CAT702 - Protection chip labelled 'TT10' (DIP20) * - Unpopulated position for additional KM416V1204BT-L5 RAMs + NEC_78081G503 - NEC uPD78081 MCU, 5MHz FC PCB K91X0721B M43X0337B @@ -320,6 +321,7 @@ Type 3 (PCMCIA Compact Flash Adaptor + Compact Flash card, sealed together with #include "emu.h" #include "audio/taito_zm.h" #include "cpu/psx/psx.h" +#include "cpu/upd7810/upd7810.h" #include "machine/at28c16.h" #include "machine/ataflash.h" #include "machine/bankdev.h" @@ -341,6 +343,7 @@ public: m_zndip(*this,"maincpu:sio0:zndip"), m_maincpu(*this, "maincpu"), m_mn10200(*this, "mn10200"), + m_mcu(*this, "mcu"), m_flashbank(*this, "flashbank"), m_mb3773(*this, "mb3773"), m_zoom(*this, "taito_zoom") @@ -361,10 +364,10 @@ public: DECLARE_WRITE8_MEMBER(coin_w); DECLARE_READ8_MEMBER(coin_r); DECLARE_READ8_MEMBER(gnet_mahjong_panel_r); - DECLARE_MACHINE_RESET(coh3002t); protected: virtual void driver_start(); + virtual void machine_reset(); private: UINT8 m_control; @@ -381,6 +384,7 @@ private: required_device m_zndip; required_device m_maincpu; required_device m_mn10200; + required_device m_mcu; required_device m_flashbank; required_device m_mb3773; required_device m_zoom; @@ -553,12 +557,15 @@ void taitogn_state::driver_start() m_znsec1->init(tt16); } -MACHINE_RESET_MEMBER(taitogn_state,coh3002t) +void taitogn_state::machine_reset() { m_control = 0; + // don't bother emulating the mcu until we have the rom dump + m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); + // halt sound CPU since it has no valid program at start - m_mn10200->set_input_line(INPUT_LINE_RESET,ASSERT_LINE); + m_mn10200->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } static ADDRESS_MAP_START( taitogn_map, AS_PROGRAM, 32, taitogn_state ) @@ -600,11 +607,26 @@ static ADDRESS_MAP_START( taitogn_mp_map, AS_PROGRAM, 32, taitogn_state ) AM_IMPORT_FROM(taitogn_map) ADDRESS_MAP_END +static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, taitogn_state ) + AM_RANGE(0x0000, 0x1fff) AM_ROM // internal ROM + AM_RANGE(0xfe00, 0xffff) AM_RAM // internal RAM, registers +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, taitogn_state ) +ADDRESS_MAP_END + +static const UPD7810_CONFIG upd_config = +{ + TYPE_7810, /* should be TYPE_78081 */ + NULL /* io_callback */ +}; + SLOT_INTERFACE_START(slot_ataflash) SLOT_INTERFACE("ataflash", ATA_FLASH_PCCARD) SLOT_INTERFACE_END static MACHINE_CONFIG_START( coh3002t, taitogn_state ) + /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_100MHz ) MCFG_CPU_PROGRAM_MAP(taitogn_map) @@ -617,6 +639,11 @@ static MACHINE_CONFIG_START( coh3002t, taitogn_state ) MCFG_DEVICE_ADD("maincpu:sio0:zndip", ZNDIP, 0) MCFG_ZNDIP_DATA_HANDLER(IOPORT(":DSW")) + MCFG_CPU_ADD("mcu", UPD7807, XTAL_5MHz) // should be UPD78081 + MCFG_CPU_CONFIG(upd_config) + MCFG_CPU_PROGRAM_MAP(mcu_map) + MCFG_CPU_IO_MAP(mcu_io_map) + /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL_53_693175MHz ) @@ -627,8 +654,6 @@ static MACHINE_CONFIG_START( coh3002t, taitogn_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.35) MCFG_SOUND_ROUTE(1, "rspeaker", 0.35) - MCFG_MACHINE_RESET_OVERRIDE(taitogn_state, coh3002t ) - MCFG_AT28C16_ADD( "at28c16", 0 ) MCFG_DEVICE_ADD("rf5c296", RF5C296, 0) MCFG_RF5C296_SLOT(":pccard") diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 7039de95a71..309842de23e 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -12,6 +12,7 @@ #include "cpu/m68000/m68000.h" #include "cpu/psx/psx.h" #include "cpu/z80/z80.h" +#include "cpu/upd7810/upd7810.h" #include "video/psx.h" #include "machine/at28c16.h" #include "machine/nvram.h" @@ -43,6 +44,7 @@ public: m_zndip(*this,"maincpu:sio0:zndip"), m_maincpu(*this, "maincpu"), m_audiocpu(*this, "audiocpu"), + m_mcu(*this, "mcu"), m_ram(*this, "maincpu:ram"), m_cbaj_fifo1(*this, "cbaj_fifo1"), m_cbaj_fifo2(*this, "cbaj_fifo2"), @@ -109,6 +111,7 @@ public: protected: virtual void driver_start(); + virtual void machine_reset(); private: inline void ATTR_PRINTF(3,4) verboselog( int n_level, const char *s_fmt, ... ); @@ -131,6 +134,7 @@ private: required_device m_zndip; required_device m_maincpu; optional_device m_audiocpu; + required_device m_mcu; required_device m_ram; optional_device m_cbaj_fifo1; optional_device m_cbaj_fifo2; @@ -428,6 +432,20 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( link_map, AS_PROGRAM, 8, zn_state ) ADDRESS_MAP_END +static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, zn_state ) + AM_RANGE(0x0000, 0x1fff) AM_ROM // internal ROM + AM_RANGE(0xfe00, 0xffff) AM_RAM // internal RAM, registers +ADDRESS_MAP_END + +static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, zn_state ) +ADDRESS_MAP_END + +static const UPD7810_CONFIG upd_config = +{ + TYPE_7810, /* should be TYPE_78081 */ + NULL /* io_callback */ +}; + void zn_state::driver_start() { int n_game; @@ -445,7 +463,14 @@ void zn_state::driver_start() } } +void zn_state::machine_reset() +{ + // don't bother emulating the mcu until we have the rom dump + m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); +} + static MACHINE_CONFIG_START( zn1_1mb_vram, zn_state ) + /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8530CQ, XTAL_67_7376MHz ) MCFG_CPU_PROGRAM_MAP( zn_map) @@ -458,6 +483,11 @@ static MACHINE_CONFIG_START( zn1_1mb_vram, zn_state ) MCFG_DEVICE_ADD("maincpu:sio0:zndip", ZNDIP, 0) MCFG_ZNDIP_DATA_HANDLER(IOPORT(":DSW")) + MCFG_CPU_ADD("mcu", UPD7807, XTAL_5MHz) // should be UPD78081 + MCFG_CPU_CONFIG(upd_config) + MCFG_CPU_PROGRAM_MAP(mcu_map) + MCFG_CPU_IO_MAP(mcu_io_map) + /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x100000, XTAL_53_693175MHz ) @@ -476,6 +506,7 @@ static MACHINE_CONFIG_DERIVED( zn1_2mb_vram, zn1_1mb_vram ) MACHINE_CONFIG_END static MACHINE_CONFIG_START( zn2, zn_state ) + /* basic machine hardware */ MCFG_CPU_ADD( "maincpu", CXD8661R, XTAL_100MHz ) MCFG_CPU_PROGRAM_MAP( zn_map) @@ -488,6 +519,11 @@ static MACHINE_CONFIG_START( zn2, zn_state ) MCFG_DEVICE_ADD("maincpu:sio0:zndip", ZNDIP, 0) MCFG_ZNDIP_DATA_HANDLER(IOPORT(":DSW")) + MCFG_CPU_ADD("mcu", UPD7807, XTAL_5MHz) // should be UPD78081 + MCFG_CPU_CONFIG(upd_config) + MCFG_CPU_PROGRAM_MAP(mcu_map) + MCFG_CPU_IO_MAP(mcu_io_map) + /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8654Q, 0x200000, XTAL_53_693175MHz ) @@ -557,6 +593,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'CP01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board (Gallop Racer) @@ -669,6 +706,8 @@ DRIVER_INIT_MEMBER(zn_state,coh1000c) MACHINE_RESET_MEMBER(zn_state,coh1000c) { membank("bankedroms")->set_base(memregion("maskroms")->base()+ 0x400000 ); /* banked game rom */ + + machine_reset(); } static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8, zn_state ) @@ -776,6 +815,7 @@ Notes: EPM7064 - Altera EPM7064QC100 CPLD (QFP100) CAT702 - Protection chip labelled 'CP10' (DIP20) * - Unpopulated position for additional KM416V1204BT-L5 RAMs + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board @@ -927,6 +967,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'TT01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board @@ -1033,6 +1074,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'TT01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board @@ -1117,6 +1159,8 @@ ADDRESS_MAP_END MACHINE_RESET_MEMBER(zn_state,coh1000ta) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); + + machine_reset(); } static ADDRESS_MAP_START( fx1a_sound_map, AS_PROGRAM, 8, zn_state ) @@ -1211,6 +1255,8 @@ DRIVER_INIT_MEMBER(zn_state,coh1000tb) MACHINE_RESET_MEMBER(zn_state,coh1000tb) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); /* banked game rom */ + + machine_reset(); } static MACHINE_CONFIG_DERIVED(coh1000tb, zn1_2mb_vram) @@ -1289,6 +1335,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'TW01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board @@ -1513,6 +1560,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'ET01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Beastorizer Game board @@ -1630,6 +1678,8 @@ ADDRESS_MAP_END MACHINE_RESET_MEMBER(zn_state,coh1002e) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); + + machine_reset(); } static ADDRESS_MAP_START( psarc_snd_map, AS_PROGRAM, 16, zn_state ) @@ -1765,6 +1815,8 @@ ADDRESS_MAP_END MACHINE_RESET_MEMBER(zn_state,bam2) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() + 0x400000 ); + + machine_reset(); } static MACHINE_CONFIG_DERIVED( bam2, zn1_2mb_vram ) @@ -1850,6 +1902,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'AC01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board @@ -2108,6 +2161,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'AT01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board @@ -2203,6 +2257,8 @@ ADDRESS_MAP_END MACHINE_RESET_MEMBER(zn_state,coh1001l) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); /* banked rom */ + + machine_reset(); } static ADDRESS_MAP_START( atlus_snd_map, AS_PROGRAM, 16, zn_state ) @@ -2257,6 +2313,8 @@ ADDRESS_MAP_END MACHINE_RESET_MEMBER(zn_state,coh1002v) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); /* banked rom */ + + machine_reset(); } static MACHINE_CONFIG_DERIVED( coh1002v, zn1_2mb_vram ) @@ -2320,6 +2378,7 @@ Notes: EPM7032 - Altera EPM7032QC44-15 CPLD labelled 'ZN1A' (QFP44) CAT702 - Protection chip labelled 'MG01' (DIP20) PALCE16V8 - PAL, labelled 'ZN1A' (PLCC20) + NEC_78081G503 - NEC uPD78081 MCU, 5MHz Game board with sound @@ -2439,6 +2498,8 @@ ADDRESS_MAP_END MACHINE_RESET_MEMBER(zn_state,coh1002m) { membank( "bankedroms" )->set_base( memregion( "bankedroms" )->base() ); + + machine_reset(); } static MACHINE_CONFIG_DERIVED( coh1002m, zn1_2mb_vram )