ballbomb : added music [Robbbert]

This commit is contained in:
Robbbert 2012-11-13 08:48:09 +00:00
parent 735e2b6f90
commit 034c26325b
3 changed files with 56 additions and 1 deletions

View File

@ -181,6 +181,55 @@ WRITE8_MEMBER(_8080bw_state::cosmo_sh_port_2_w)
/* */
/*******************************************************/
/*************************************
*
* Discrete Sound
* (copied from indianbt)
*
*************************************/
static const discrete_dac_r1_ladder ballbomb_music_dac =
{3, {0, RES_K(47), RES_K(12)}, 0, 0, 0, CAP_U(0.1)};
#define BALLBOMB_MUSIC_CLK (3993.6*2*2*2)
/* Nodes - Inputs */
#define BALLBOMB_MUSIC_DATA NODE_01
/* Nodes - Sounds */
#define BALLBOMB_MUSIC NODE_11
DISCRETE_SOUND_START(ballbomb)
DISCRETE_INPUT_DATA (BALLBOMB_MUSIC_DATA)
/******************************************************************************
*
* Music Generator
*
******************************************************************************/
DISCRETE_NOTE(NODE_20, 1, BALLBOMB_MUSIC_CLK, BALLBOMB_MUSIC_DATA, 255, 5, DISC_CLK_IS_FREQ)
// Convert count to 7492 output
DISCRETE_TRANSFORM2(NODE_21, NODE_20, 2, "01>0+")
DISCRETE_DAC_R1(NODE_22, NODE_21, DEFAULT_TTL_V_LOGIC_1, &ballbomb_music_dac)
/******************************************************************************
*
* Final Mixing and Output
*
******************************************************************************/
DISCRETE_CRFILTER(NODE_90, NODE_22, RES_K(10), CAP_U(0.1))
DISCRETE_OUTPUT(NODE_90, 21000)
DISCRETE_SOUND_END
WRITE8_MEMBER( _8080bw_state::ballbomb_01_w )
{
discrete_sound_w(m_discrete, space, BALLBOMB_MUSIC_DATA, data|0x80);
}
WRITE8_MEMBER(_8080bw_state::ballbomb_sh_port_1_w)
{
UINT8 rising_bits = data & ~m_port_1_last_extra;

View File

@ -1593,7 +1593,7 @@ INPUT_PORTS_END
static ADDRESS_MAP_START( ballbomb_io_map, AS_IO, 8, _8080bw_state )
AM_RANGE(0x00, 0x00) AM_READ_PORT("IN0")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_WRITE(ballbomb_01_w)
AM_RANGE(0x02, 0x02) AM_READ_PORT("IN2") AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_count_w)
AM_RANGE(0x03, 0x03) AM_DEVREAD_LEGACY("mb14241", mb14241_shift_result_r) AM_WRITE(ballbomb_sh_port_1_w)
AM_RANGE(0x04, 0x04) AM_DEVWRITE_LEGACY("mb14241", mb14241_shift_data_w)
@ -1628,6 +1628,10 @@ static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state )
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
MCFG_SOUND_CONFIG_DISCRETE(ballbomb)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END

View File

@ -56,6 +56,7 @@ public:
DECLARE_WRITE8_MEMBER(lrescue_sh_port_1_w);
DECLARE_WRITE8_MEMBER(lrescue_sh_port_2_w);
DECLARE_WRITE8_MEMBER(cosmo_sh_port_2_w);
DECLARE_WRITE8_MEMBER(ballbomb_01_w);
DECLARE_WRITE8_MEMBER(ballbomb_sh_port_1_w);
DECLARE_WRITE8_MEMBER(ballbomb_sh_port_2_w);
DECLARE_WRITE8_MEMBER(indianbt_sh_port_1_w);
@ -120,6 +121,7 @@ public:
/*----------- defined in audio/8080bw.c -----------*/
extern const samples_interface lrescue_samples_interface;
DISCRETE_SOUND_EXTERN( ballbomb );
DISCRETE_SOUND_EXTERN( indianbt );
DISCRETE_SOUND_EXTERN( polaris );