mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
Merge pull request #1899 from ajrhacker/asuka_ls157
asuka, mofflott: Add 74LS157 for MSM5205 interface (nw)
This commit is contained in:
commit
551a5d37b0
@ -271,16 +271,16 @@ WRITE8_MEMBER(asuka_state::sound_bankswitch_2151_w)
|
|||||||
|
|
||||||
WRITE_LINE_MEMBER(asuka_state::asuka_msm5205_vck)
|
WRITE_LINE_MEMBER(asuka_state::asuka_msm5205_vck)
|
||||||
{
|
{
|
||||||
if (m_adpcm_data != -1)
|
if (!state)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_adpcm_ff = !m_adpcm_ff;
|
||||||
|
m_adpcm_select->select_w(m_adpcm_ff);
|
||||||
|
|
||||||
|
if (m_adpcm_ff)
|
||||||
{
|
{
|
||||||
m_msm->data_w(m_adpcm_data & 0x0f);
|
m_adpcm_select->ba_w(m_sound_data[m_adpcm_pos]);
|
||||||
m_adpcm_data = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_adpcm_data = memregion("ymsnd")->base()[m_adpcm_pos];
|
|
||||||
m_adpcm_pos = (m_adpcm_pos + 1) & 0xffff;
|
m_adpcm_pos = (m_adpcm_pos + 1) & 0xffff;
|
||||||
m_msm->data_w(m_adpcm_data >> 4);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,6 +292,7 @@ WRITE8_MEMBER(asuka_state::asuka_msm5205_address_w)
|
|||||||
WRITE8_MEMBER(asuka_state::asuka_msm5205_start_w)
|
WRITE8_MEMBER(asuka_state::asuka_msm5205_start_w)
|
||||||
{
|
{
|
||||||
m_msm->reset_w(0);
|
m_msm->reset_w(0);
|
||||||
|
m_adpcm_ff = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER(asuka_state::asuka_msm5205_stop_w)
|
WRITE8_MEMBER(asuka_state::asuka_msm5205_stop_w)
|
||||||
@ -778,7 +779,7 @@ void asuka_state::machine_start()
|
|||||||
membank("audiobank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x04000);
|
membank("audiobank")->configure_entries(0, 4, memregion("audiocpu")->base(), 0x04000);
|
||||||
|
|
||||||
save_item(NAME(m_adpcm_pos));
|
save_item(NAME(m_adpcm_pos));
|
||||||
save_item(NAME(m_adpcm_data));
|
save_item(NAME(m_adpcm_ff));
|
||||||
|
|
||||||
save_item(NAME(m_current_round));
|
save_item(NAME(m_current_round));
|
||||||
save_item(NAME(m_current_bank));
|
save_item(NAME(m_current_bank));
|
||||||
@ -792,7 +793,7 @@ void asuka_state::machine_start()
|
|||||||
void asuka_state::machine_reset()
|
void asuka_state::machine_reset()
|
||||||
{
|
{
|
||||||
m_adpcm_pos = 0;
|
m_adpcm_pos = 0;
|
||||||
m_adpcm_data = -1;
|
m_adpcm_ff = false;
|
||||||
m_current_round = 0;
|
m_current_round = 0;
|
||||||
m_current_bank = 0;
|
m_current_bank = 0;
|
||||||
m_video_ctrl = 0;
|
m_video_ctrl = 0;
|
||||||
@ -930,6 +931,9 @@ static MACHINE_CONFIG_START( asuka, asuka_state )
|
|||||||
MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */
|
MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
|
|
||||||
|
MCFG_DEVICE_ADD("adpcm_select", LS157, 0)
|
||||||
|
MCFG_74157_OUT_CB(DEVWRITE8("msm", msm5205_device, data_w))
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
|
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
|
||||||
MCFG_TC0140SYT_MASTER_CPU("maincpu")
|
MCFG_TC0140SYT_MASTER_CPU("maincpu")
|
||||||
MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
|
MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
|
||||||
@ -1064,6 +1068,9 @@ static MACHINE_CONFIG_START( mofflott, asuka_state )
|
|||||||
MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */
|
MCFG_MSM5205_PRESCALER_SELECTOR(MSM5205_S48_4B) /* 8 kHz */
|
||||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||||
|
|
||||||
|
MCFG_DEVICE_ADD("adpcm_select", LS157, 0)
|
||||||
|
MCFG_74157_OUT_CB(DEVWRITE8("msm", msm5205_device, data_w))
|
||||||
|
|
||||||
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
|
MCFG_DEVICE_ADD("tc0140syt", TC0140SYT, 0)
|
||||||
MCFG_TC0140SYT_MASTER_CPU("maincpu")
|
MCFG_TC0140SYT_MASTER_CPU("maincpu")
|
||||||
MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
|
MCFG_TC0140SYT_SLAVE_CPU("audiocpu")
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include "machine/taitoio.h"
|
#include "machine/taitoio.h"
|
||||||
#include "sound/msm5205.h"
|
#include "sound/msm5205.h"
|
||||||
|
#include "machine/74157.h"
|
||||||
#include "video/pc090oj.h"
|
#include "video/pc090oj.h"
|
||||||
#include "video/tc0100scn.h"
|
#include "video/tc0100scn.h"
|
||||||
#include "video/tc0110pcr.h"
|
#include "video/tc0110pcr.h"
|
||||||
@ -26,26 +27,28 @@ public:
|
|||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
m_audiocpu(*this, "audiocpu"),
|
m_audiocpu(*this, "audiocpu"),
|
||||||
m_msm(*this, "msm"),
|
m_msm(*this, "msm"),
|
||||||
|
m_adpcm_select(*this, "adpcm_select"),
|
||||||
|
m_sound_data(*this, "ymsnd"),
|
||||||
m_pc090oj(*this, "pc090oj"),
|
m_pc090oj(*this, "pc090oj"),
|
||||||
m_tc0100scn(*this, "tc0100scn"),
|
m_tc0100scn(*this, "tc0100scn"),
|
||||||
m_tc0110pcr(*this, "tc0110pcr"),
|
m_tc0110pcr(*this, "tc0110pcr"),
|
||||||
m_tc0220ioc(*this, "tc0220ioc") { }
|
m_tc0220ioc(*this, "tc0220ioc") { }
|
||||||
|
|
||||||
/* video-related */
|
/* video-related */
|
||||||
uint16_t m_video_ctrl;
|
u16 m_video_ctrl;
|
||||||
uint16_t m_video_mask;
|
u16 m_video_mask;
|
||||||
|
|
||||||
/* c-chip */
|
/* c-chip */
|
||||||
int m_current_round;
|
int m_current_round;
|
||||||
int m_current_bank;
|
int m_current_bank;
|
||||||
|
|
||||||
uint8_t m_cval[26];
|
u8 m_cval[26];
|
||||||
uint8_t m_cc_port;
|
u8 m_cc_port;
|
||||||
uint8_t m_restart_status;
|
u8 m_restart_status;
|
||||||
|
|
||||||
/* misc */
|
/* misc */
|
||||||
int m_adpcm_pos;
|
u16 m_adpcm_pos;
|
||||||
int m_adpcm_data;
|
bool m_adpcm_ff;
|
||||||
|
|
||||||
optional_shared_ptr<uint8_t> m_cadash_shared_ram;
|
optional_shared_ptr<uint8_t> m_cadash_shared_ram;
|
||||||
|
|
||||||
@ -53,6 +56,8 @@ public:
|
|||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
required_device<cpu_device> m_audiocpu;
|
required_device<cpu_device> m_audiocpu;
|
||||||
optional_device<msm5205_device> m_msm;
|
optional_device<msm5205_device> m_msm;
|
||||||
|
optional_device<ls157_device> m_adpcm_select;
|
||||||
|
optional_region_ptr<u8> m_sound_data;
|
||||||
required_device<pc090oj_device> m_pc090oj;
|
required_device<pc090oj_device> m_pc090oj;
|
||||||
required_device<tc0100scn_device> m_tc0100scn;
|
required_device<tc0100scn_device> m_tc0100scn;
|
||||||
required_device<tc0110pcr_device> m_tc0110pcr;
|
required_device<tc0110pcr_device> m_tc0110pcr;
|
||||||
|
Loading…
Reference in New Issue
Block a user