Hooked DAC writes, now Game.com greets you with a very low pitched "Game Com" speech
This commit is contained in:
parent
55d8157c14
commit
8788fa1d58
@ -117,13 +117,11 @@ static MACHINE_CONFIG_START( gamecom, gamecom_state )
|
|||||||
MCFG_PALETTE_LENGTH(5)
|
MCFG_PALETTE_LENGTH(5)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
#if 0
|
MCFG_SPEAKER_STANDARD_STEREO( "lspeaker", "rspeaker" )
|
||||||
MCFG_SPEAKER_STANDARD_STEREO( "left", "right" )
|
/* TODO: much more complex than this */
|
||||||
/* MCFG_SOUND_ADD( "custom", CUSTOM, 0 ) */
|
MCFG_SOUND_ADD("dac", DAC, 0)
|
||||||
/* MCFG_SOUND_CONFIG */
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.00)
|
||||||
MCFG_SOUND_ROUTE( 0, "left", 0.50 )
|
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.00)
|
||||||
MCFG_SOUND_ROUTE( 1, "right", 0.50 )
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* cartridge */
|
/* cartridge */
|
||||||
MCFG_CARTSLOT_ADD("cart1")
|
MCFG_CARTSLOT_ADD("cart1")
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "cpu/sm8500/sm8500.h"
|
#include "cpu/sm8500/sm8500.h"
|
||||||
#include "imagedev/cartslot.h"
|
#include "imagedev/cartslot.h"
|
||||||
#include "rendlay.h"
|
#include "rendlay.h"
|
||||||
|
#include "sound/dac.h"
|
||||||
|
|
||||||
/* SM8521 register addresses */
|
/* SM8521 register addresses */
|
||||||
enum
|
enum
|
||||||
@ -211,6 +212,7 @@ public:
|
|||||||
gamecom_state(const machine_config &mconfig, device_type type, const char *tag)
|
gamecom_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
: driver_device(mconfig, type, tag),
|
: driver_device(mconfig, type, tag),
|
||||||
m_maincpu(*this, "maincpu"),
|
m_maincpu(*this, "maincpu"),
|
||||||
|
m_dac(*this, "dac"),
|
||||||
m_p_nvram(*this,"p_nvram"),
|
m_p_nvram(*this,"p_nvram"),
|
||||||
m_p_videoram(*this,"p_videoram"),
|
m_p_videoram(*this,"p_videoram"),
|
||||||
m_bank1(*this, "bank1"),
|
m_bank1(*this, "bank1"),
|
||||||
@ -223,9 +225,11 @@ public:
|
|||||||
m_io_in1(*this, "IN1"),
|
m_io_in1(*this, "IN1"),
|
||||||
m_io_in2(*this, "IN2"),
|
m_io_in2(*this, "IN2"),
|
||||||
m_io_styx(*this, "STYX"),
|
m_io_styx(*this, "STYX"),
|
||||||
m_io_styy(*this, "STYY") { }
|
m_io_styy(*this, "STYY")
|
||||||
|
{ }
|
||||||
|
|
||||||
required_device<cpu_device> m_maincpu;
|
required_device<cpu_device> m_maincpu;
|
||||||
|
required_device<dac_device> m_dac;
|
||||||
DECLARE_READ8_MEMBER( gamecom_internal_r );
|
DECLARE_READ8_MEMBER( gamecom_internal_r );
|
||||||
DECLARE_READ8_MEMBER( gamecom_pio_r );
|
DECLARE_READ8_MEMBER( gamecom_pio_r );
|
||||||
DECLARE_WRITE8_MEMBER( gamecom_internal_w );
|
DECLARE_WRITE8_MEMBER( gamecom_internal_w );
|
||||||
|
@ -321,6 +321,13 @@ WRITE8_MEMBER( gamecom_state::gamecom_internal_w )
|
|||||||
|
|
||||||
/* Sound */
|
/* Sound */
|
||||||
case SM8521_SGC:
|
case SM8521_SGC:
|
||||||
|
/*
|
||||||
|
x--- ---- enable sound output
|
||||||
|
---- x--- enable DAC
|
||||||
|
---- -x-- enable SG2
|
||||||
|
---- --x- enable SG1
|
||||||
|
---- ---x enable SG0
|
||||||
|
*/
|
||||||
m_sound.sgc = data;
|
m_sound.sgc = data;
|
||||||
break;
|
break;
|
||||||
case SM8521_SG0L:
|
case SM8521_SG0L:
|
||||||
@ -352,6 +359,8 @@ WRITE8_MEMBER( gamecom_state::gamecom_internal_w )
|
|||||||
break;
|
break;
|
||||||
case SM8521_SGDA:
|
case SM8521_SGDA:
|
||||||
m_sound.sgda = data;
|
m_sound.sgda = data;
|
||||||
|
if((m_sound.sgc & 0x88) == 0x88)
|
||||||
|
m_dac->write_unsigned8(data);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SM8521_SG0W0:
|
case SM8521_SG0W0:
|
||||||
|
Loading…
Reference in New Issue
Block a user