added dummy mcu

This commit is contained in:
Michaël Banaan Ananas 2014-01-28 10:59:24 +00:00
parent a83d62f900
commit 8999423a0a
3 changed files with 95 additions and 7 deletions

View File

@ -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,

View File

@ -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<zndip_device> m_zndip;
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_mn10200;
required_device<cpu_device> m_mcu;
required_device<address_map_bank_device> m_flashbank;
required_device<mb3773_device> m_mb3773;
required_device<taito_zoom_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")

View File

@ -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<zndip_device> m_zndip;
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
required_device<cpu_device> m_mcu;
required_device<ram_device> m_ram;
optional_device<fifo7200_device> m_cbaj_fifo1;
optional_device<fifo7200_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 )