mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
wpc_dcs: Start to get DCS-based games running.
This commit is contained in:
parent
7ec7aae5bd
commit
5ee6c251a0
@ -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
|
||||
|
||||
|
||||
/*************************************
|
||||
|
@ -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
@ -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_ */
|
||||
|
Loading…
Reference in New Issue
Block a user