wpc_dcs: Start to get DCS-based games running.

This commit is contained in:
mahlemiut 2013-10-21 07:43:49 +00:00
parent 7ec7aae5bd
commit 5ee6c251a0
4 changed files with 439 additions and 502 deletions

View File

@ -475,7 +475,24 @@ static ADDRESS_MAP_START( dcs_8k_data_map, AS_DATA, 16, driver_device )
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE_LEGACY(adsp_control_r, adsp_control_w)
ADDRESS_MAP_END
// to be removed once DCS is modernised
#define AM_READWRITE16_LEGACY(_rhandler, _whandler, _unitmask) \
curentry->set_handler(_rhandler, #_rhandler, _whandler, #_whandler, _unitmask);
/* Williams WPC DCS/Security Pinball */
static ADDRESS_MAP_START( dcs_wpc_program_map, AS_PROGRAM, 32, driver_device )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("dcsint")
AM_RANGE(0x0800, 0x2fff) AM_RAM AM_SHARE("dcsext")
AM_RANGE(0x3000, 0x3001) AM_READWRITE16_LEGACY(input_latch_r, output_latch_w,0xffff)
ADDRESS_MAP_END
static ADDRESS_MAP_START( dcs_wpc_data_map, AS_DATA, 16, driver_device )
AM_RANGE(0x0000, 0x1fff) AM_READWRITE_LEGACY(dcs_dataram_r, dcs_dataram_w)
AM_RANGE(0x2000, 0x2fff) AM_ROMBANK("databank")
AM_RANGE(0x3000, 0x33ff) AM_WRITE_LEGACY(dcs_data_bank_select_w)
AM_RANGE(0x3800, 0x39ff) AM_RAM
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE_LEGACY(adsp_control_r, adsp_control_w)
ADDRESS_MAP_END
/*************************************
*
@ -638,6 +655,11 @@ MACHINE_CONFIG_DERIVED( dcs_audio_8k, dcs_audio_2k )
MCFG_CPU_DATA_MAP(dcs_8k_data_map)
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( dcs_audio_wpc, dcs_audio_2k )
MCFG_CPU_MODIFY("dcs")
MCFG_CPU_PROGRAM_MAP(dcs_wpc_program_map)
MCFG_CPU_DATA_MAP(dcs_wpc_data_map)
MACHINE_CONFIG_END
/*************************************

View File

@ -12,6 +12,7 @@
MACHINE_CONFIG_EXTERN( dcs_audio_2k );
MACHINE_CONFIG_EXTERN( dcs_audio_2k_uart );
MACHINE_CONFIG_EXTERN( dcs_audio_8k );
MACHINE_CONFIG_EXTERN( dcs_audio_wpc );
MACHINE_CONFIG_EXTERN( dcs2_audio_2115 );
MACHINE_CONFIG_EXTERN( dcs2_audio_2104 );
MACHINE_CONFIG_EXTERN( dcs2_audio_dsio );

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,7 @@ protected:
// devices
required_device<cpu_device> m_maincpu;
required_device<wpcsnd_device> m_wpcsnd;
optional_device<wpcsnd_device> m_wpcsnd;
required_device<wpc_device> m_wpc;
required_memory_bank m_cpubank;
required_memory_bank m_fixedbank;
@ -100,4 +100,23 @@ public:
DECLARE_DRIVER_INIT(wpc_flip2);
};
class wpc_dcs_state : public wpc_flip2_state
{
public:
wpc_dcs_state(const machine_config &mconfig, device_type type, const char *tag)
: wpc_flip2_state(mconfig, type, tag)
{ }
public:
DECLARE_DRIVER_INIT(wpc_dcs);
DECLARE_READ8_MEMBER(wpc_dcs_sound_ctrl_r);
DECLARE_WRITE8_MEMBER(wpc_dcs_sound_ctrl_w);
DECLARE_READ8_MEMBER(wpc_dcs_sound_data_r);
DECLARE_WRITE8_MEMBER(wpc_dcs_sound_data_w);
private:
bool m_send;
UINT8 m_prev_data;
};
#endif /* WPC_PIN_H_ */