mirror of
https://github.com/holub/mame
synced 2025-04-19 23:12:11 +03:00
Fixed narc37b16yel.
Added talkback to narc sound boards and wired it up to the Z-unit board. Connected Y-unit reset for various sound boards. Added sound IRQ state detect to ADPCM board and wired it up to the Y-unit board. Verified and documented XTALs on the Williams sound boards and Y/Z-unit PCBs.
This commit is contained in:
parent
05725d1c7b
commit
c828f95996
@ -774,6 +774,9 @@ static void dcs_boot(void)
|
||||
|
||||
static TIMER_CALLBACK( dcs_reset )
|
||||
{
|
||||
if (LOG_DCS_IO)
|
||||
logerror("dcs_reset\n");
|
||||
|
||||
/* reset the memory banking */
|
||||
switch (dcs.rev)
|
||||
{
|
||||
|
@ -32,6 +32,17 @@
|
||||
#include "sound/dac.h"
|
||||
|
||||
|
||||
#define NARC_MASTER_CLOCK XTAL_8MHz
|
||||
#define NARC_FM_CLOCK XTAL_3_579545MHz
|
||||
|
||||
#define CVSD_MASTER_CLOCK XTAL_8MHz
|
||||
#define CVSD_FM_CLOCK XTAL_3_579545MHz
|
||||
|
||||
#define ADPCM_MASTER_CLOCK XTAL_8MHz
|
||||
#define ADPCM_FM_CLOCK XTAL_3_579545MHz
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
STATIC GLOBALS
|
||||
****************************************************************************/
|
||||
@ -39,6 +50,7 @@
|
||||
static UINT8 williams_sound_int_state;
|
||||
|
||||
static UINT8 audio_talkback;
|
||||
static UINT8 audio_sync;
|
||||
|
||||
static INT8 sound_cpunum;
|
||||
static INT8 soundalt_cpunum;
|
||||
@ -177,12 +189,12 @@ static const struct YM2151interface adpcm_ym2151_interface =
|
||||
****************************************************************************/
|
||||
|
||||
MACHINE_DRIVER_START( williams_cvsd_sound )
|
||||
MDRV_CPU_ADD_TAG("cvsd", M6809, 8000000/4)
|
||||
MDRV_CPU_ADD_TAG("cvsd", M6809E, CVSD_MASTER_CLOCK/4)
|
||||
MDRV_CPU_PROGRAM_MAP(williams_cvsd_map,0)
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579580)
|
||||
MDRV_SOUND_ADD(YM2151, CVSD_FM_CLOCK)
|
||||
MDRV_SOUND_CONFIG(cvsd_ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
|
||||
|
||||
@ -195,15 +207,15 @@ MACHINE_DRIVER_END
|
||||
|
||||
|
||||
MACHINE_DRIVER_START( williams_narc_sound )
|
||||
MDRV_CPU_ADD_TAG("narc1", M6809, 8000000/4)
|
||||
MDRV_CPU_ADD_TAG("narc1", M6809E, NARC_MASTER_CLOCK/4)
|
||||
MDRV_CPU_PROGRAM_MAP(williams_narc_master_map,0)
|
||||
|
||||
MDRV_CPU_ADD_TAG("narc2", M6809, 8000000/4)
|
||||
MDRV_CPU_ADD_TAG("narc2", M6809E, NARC_MASTER_CLOCK/4)
|
||||
MDRV_CPU_PROGRAM_MAP(williams_narc_slave_map,0)
|
||||
|
||||
MDRV_SPEAKER_STANDARD_STEREO("left", "right")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579580)
|
||||
MDRV_SOUND_ADD(YM2151, NARC_FM_CLOCK)
|
||||
MDRV_SOUND_CONFIG(adpcm_ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.10)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.10)
|
||||
@ -223,19 +235,19 @@ MACHINE_DRIVER_END
|
||||
|
||||
|
||||
MACHINE_DRIVER_START( williams_adpcm_sound )
|
||||
MDRV_CPU_ADD_TAG("adpcm", M6809, 8000000/4)
|
||||
MDRV_CPU_ADD_TAG("adpcm", M6809E, ADPCM_MASTER_CLOCK/4)
|
||||
MDRV_CPU_PROGRAM_MAP(williams_adpcm_map,0)
|
||||
|
||||
MDRV_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MDRV_SOUND_ADD(YM2151, 3579580)
|
||||
MDRV_SOUND_ADD(YM2151, ADPCM_FM_CLOCK)
|
||||
MDRV_SOUND_CONFIG(adpcm_ym2151_interface)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
|
||||
|
||||
MDRV_SOUND_ADD(DAC, 0)
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
|
||||
MDRV_SOUND_ADD(OKIM6295, 8000000/8)
|
||||
MDRV_SOUND_ADD(OKIM6295, ADPCM_MASTER_CLOCK/8)
|
||||
MDRV_SOUND_CONFIG(okim6295_interface_region_1_pin7high) // clock frequency & pin 7 not verified
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MACHINE_DRIVER_END
|
||||
@ -322,6 +334,7 @@ void williams_narc_init(void)
|
||||
/* register for save states */
|
||||
state_save_register_global(williams_sound_int_state);
|
||||
state_save_register_global(audio_talkback);
|
||||
state_save_register_global(audio_sync);
|
||||
}
|
||||
|
||||
|
||||
@ -529,8 +542,15 @@ static WRITE8_HANDLER( narc_master_talkback_w )
|
||||
}
|
||||
|
||||
|
||||
static TIMER_CALLBACK( narc_sync_clear )
|
||||
{
|
||||
audio_sync &= ~param;
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( narc_master_sync_w )
|
||||
{
|
||||
timer_set(double_to_attotime(TIME_OF_74LS123(180000, 0.000001)), NULL, 0x01, narc_sync_clear);
|
||||
audio_sync |= 0x01;
|
||||
logerror("Master sync = %02X\n", data);
|
||||
}
|
||||
|
||||
@ -543,6 +563,8 @@ static WRITE8_HANDLER( narc_slave_talkback_w )
|
||||
|
||||
static WRITE8_HANDLER( narc_slave_sync_w )
|
||||
{
|
||||
timer_set(double_to_attotime(TIME_OF_74LS123(180000, 0.000001)), NULL, 0x02, narc_sync_clear);
|
||||
audio_sync |= 0x02;
|
||||
logerror("Slave sync = %02X\n", data);
|
||||
}
|
||||
|
||||
@ -584,6 +606,12 @@ void williams_narc_reset_w(int state)
|
||||
}
|
||||
|
||||
|
||||
int williams_narc_talkback_r(void)
|
||||
{
|
||||
return audio_talkback | (audio_sync << 8);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
ADPCM READ/WRITE HANDLERS
|
||||
@ -601,10 +629,19 @@ static WRITE8_HANDLER( adpcm_6295_bank_select_w )
|
||||
}
|
||||
|
||||
|
||||
static TIMER_CALLBACK( clear_irq_state )
|
||||
{
|
||||
williams_sound_int_state = 0;
|
||||
}
|
||||
|
||||
|
||||
static READ8_HANDLER( adpcm_command_r )
|
||||
{
|
||||
cpunum_set_input_line(sound_cpunum, M6809_IRQ_LINE, CLEAR_LINE);
|
||||
williams_sound_int_state = 0;
|
||||
|
||||
/* don't clear the external IRQ state for a short while; this allows the
|
||||
self-tests to pass */
|
||||
timer_set(ATTOTIME_IN_USEC(10), NULL, 0, clear_irq_state);
|
||||
return soundlatch_r(0);
|
||||
}
|
||||
|
||||
@ -628,6 +665,7 @@ void williams_adpcm_data_w(int data)
|
||||
{
|
||||
cpunum_set_input_line(sound_cpunum, M6809_IRQ_LINE, ASSERT_LINE);
|
||||
williams_sound_int_state = 1;
|
||||
cpu_boost_interleave(attotime_zero, ATTOTIME_IN_USEC(100));
|
||||
}
|
||||
}
|
||||
|
||||
@ -645,3 +683,9 @@ void williams_adpcm_reset_w(int state)
|
||||
else
|
||||
cpunum_set_input_line(sound_cpunum, INPUT_LINE_RESET, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
int williams_adpcm_sound_irq_r(void)
|
||||
{
|
||||
return williams_sound_int_state;
|
||||
}
|
||||
|
@ -15,8 +15,9 @@ void williams_cvsd_reset_w(int state);
|
||||
void williams_adpcm_init(void);
|
||||
void williams_adpcm_data_w(int data);
|
||||
void williams_adpcm_reset_w(int state);
|
||||
int williams_adpcm_sound_irq_r(void);
|
||||
|
||||
void williams_narc_init(void);
|
||||
void williams_narc_data_w(int data);
|
||||
void williams_narc_reset_w(int state);
|
||||
|
||||
int williams_narc_talkback_r(void);
|
||||
|
@ -118,11 +118,14 @@ Notes:
|
||||
#include "midyunit.h"
|
||||
|
||||
|
||||
#define SLOW_CPU_CLOCK (40000000) /* smashtv, trog */
|
||||
#define FAST_CPU_CLOCK (48000000) /* narc, strkforc, mk, totcarn */
|
||||
/* master clocks vary based on game */
|
||||
#define SLOW_MASTER_CLOCK XTAL_40MHz /* "slow" == smashtv, trog, hiimpact */
|
||||
#define FAST_MASTER_CLOCK XTAL_48MHz /* "fast" == narc, mk, totcarn, strkforc */
|
||||
#define FASTER_MASTER_CLOCK XTAL_50MHz /* "faster" == term2 */
|
||||
|
||||
#define STDRES_PIXEL_CLOCK (24000000/6)
|
||||
#define MEDRES_PIXEL_CLOCK (48000000/6)
|
||||
/* pixel clocks are 48MHz (narc) or 24MHz (all others) regardless */
|
||||
#define MEDRES_PIXEL_CLOCK (XTAL_48MHz / 6)
|
||||
#define STDRES_PIXEL_CLOCK (XTAL_24MHz / 6)
|
||||
|
||||
|
||||
|
||||
@ -140,6 +143,31 @@ static WRITE8_HANDLER( yawdim_oki_bank_w )
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Sound board comms
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static UINT32 narc_talkback_strobe_r(void *param)
|
||||
{
|
||||
return (williams_narc_talkback_r() >> 8) & 1;
|
||||
}
|
||||
|
||||
|
||||
static UINT32 narc_talkback_data_r(void *param)
|
||||
{
|
||||
return williams_narc_talkback_r() & 0xff;
|
||||
}
|
||||
|
||||
|
||||
static UINT32 adpcm_irq_state_r(void *param)
|
||||
{
|
||||
return williams_adpcm_sound_irq_r() & 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* CMOS read/write
|
||||
@ -226,7 +254,7 @@ static INPUT_PORTS_START( narc )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_COIN4 )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED ) /* T/B strobe */
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(narc_talkback_strobe_r, NULL)
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED ) /* memory protect interlock */
|
||||
PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_DIPNAME( 0xc000, 0xc000, DEF_STR( Language ) ) /* Is this a REAL dip or toggle? or software enable? */
|
||||
@ -236,7 +264,9 @@ static INPUT_PORTS_START( narc )
|
||||
// PORT_DIPSETTING( 0x0000, DEF_STR( Unknown ) )
|
||||
|
||||
PORT_START
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(narc_talkback_data_r, NULL)
|
||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
|
||||
PORT_START
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
PORT_START
|
||||
@ -567,7 +597,7 @@ static INPUT_PORTS_START( mkla2 )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
|
||||
//There should be an additional block button for player 2, but I coudn't find it.
|
||||
|
||||
@ -659,7 +689,7 @@ static INPUT_PORTS_START( mkla4 )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(2)
|
||||
PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_PLAYER(1)
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_BUTTON6 ) PORT_PLAYER(1)
|
||||
//There should be an additional block button for player 2, but I coudn't find it.
|
||||
|
||||
@ -744,7 +774,9 @@ static INPUT_PORTS_START( term2 )
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN4 )
|
||||
PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x3000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START
|
||||
PORT_BIT( 0x00ff, 0x0080, IPT_AD_STICK_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(20) PORT_KEYDELTA(10) PORT_CENTERDELTA(0) PORT_REVERSE PORT_PLAYER(1)
|
||||
@ -846,7 +878,9 @@ static INPUT_PORTS_START( totcarn )
|
||||
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_BILL1 )
|
||||
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_UNUSED ) /* video freeze */
|
||||
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_COIN3 )
|
||||
PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x3c00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_CUSTOM(adpcm_irq_state_r, NULL)
|
||||
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_START
|
||||
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNKNOWN )
|
||||
@ -969,7 +1003,7 @@ static const tms34010_config yunit_tms_config =
|
||||
static MACHINE_DRIVER_START( zunit )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD(TMS34010, FAST_CPU_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_CPU_ADD(TMS34010, FAST_MASTER_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_CPU_CONFIG(zunit_tms_config)
|
||||
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
||||
|
||||
@ -1002,7 +1036,7 @@ MACHINE_DRIVER_END
|
||||
static MACHINE_DRIVER_START( yunit_core )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_CPU_ADD_TAG("main", TMS34010, FAST_CPU_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_CPU_ADD_TAG("main", TMS34010, SLOW_MASTER_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_CPU_CONFIG(yunit_tms_config)
|
||||
MDRV_CPU_PROGRAM_MAP(main_map,0)
|
||||
|
||||
@ -1025,7 +1059,6 @@ static MACHINE_DRIVER_START( yunit_cvsd_4bit_slow )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(yunit_core)
|
||||
MDRV_CPU_REPLACE("main", TMS34010, SLOW_CPU_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_IMPORT_FROM(williams_cvsd_sound)
|
||||
|
||||
/* video hardware */
|
||||
@ -1038,6 +1071,7 @@ static MACHINE_DRIVER_START( yunit_cvsd_4bit_fast )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(yunit_core)
|
||||
MDRV_CPU_REPLACE("main", TMS34010, FAST_MASTER_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_IMPORT_FROM(williams_cvsd_sound)
|
||||
|
||||
/* video hardware */
|
||||
@ -1048,19 +1082,6 @@ MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( yunit_cvsd_6bit_slow )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(yunit_core)
|
||||
MDRV_CPU_REPLACE("main", TMS34010, SLOW_CPU_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_IMPORT_FROM(williams_cvsd_sound)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_PALETTE_LENGTH(4096)
|
||||
MDRV_VIDEO_START(midyunit_6bit)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( yunit_cvsd_6bit_fast )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(yunit_core)
|
||||
MDRV_IMPORT_FROM(williams_cvsd_sound)
|
||||
@ -1075,6 +1096,20 @@ static MACHINE_DRIVER_START( yunit_adpcm_6bit_fast )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(yunit_core)
|
||||
MDRV_CPU_REPLACE("main", TMS34010, FAST_MASTER_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_IMPORT_FROM(williams_adpcm_sound)
|
||||
|
||||
/* video hardware */
|
||||
MDRV_PALETTE_LENGTH(4096)
|
||||
MDRV_VIDEO_START(midyunit_6bit)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
static MACHINE_DRIVER_START( yunit_adpcm_6bit_faster )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(yunit_core)
|
||||
MDRV_CPU_REPLACE("main", TMS34010, FASTER_MASTER_CLOCK/TMS34010_CLOCK_DIVIDER)
|
||||
MDRV_IMPORT_FROM(williams_adpcm_sound)
|
||||
|
||||
/* video hardware */
|
||||
@ -2168,21 +2203,21 @@ GAME( 1990, smashtv, 0, yunit_cvsd_6bit_slow, smashtv, smashtv, ROT0,
|
||||
GAME( 1990, smashtv6, smashtv, yunit_cvsd_6bit_slow, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 6.00)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, smashtv5, smashtv, yunit_cvsd_6bit_slow, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 5.00)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, smashtv4, smashtv, yunit_cvsd_6bit_slow, smashtv, smashtv, ROT0, "Williams", "Smash T.V. (rev 4.00)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, hiimpact, 0, yunit_cvsd_6bit_fast, trog, hiimpact, ROT0, "Williams", "High Impact Football (rev LA4 02/04/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, hiimpac3, hiimpact, yunit_cvsd_6bit_fast, trog, hiimpact, ROT0, "Williams", "High Impact Football (rev LA3 12/27/90)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, hiimpacp, hiimpact, yunit_cvsd_6bit_fast, trog, hiimpact, ROT0, "Williams", "High Impact Football (prototype, rev 8.6 12/09/90)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, shimpact, 0, yunit_cvsd_6bit_fast, trog, shimpact, ROT0, "Midway", "Super High Impact (rev LA1 09/30/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, shimpacp, shimpact, yunit_cvsd_6bit_fast, trog, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 5.0 09/15/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, shimpap4, shimpact, yunit_cvsd_6bit_fast, trog, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 4.0 09/10/91)", GAME_SUPPORTS_SAVE ) /* See notes about factory restore above */
|
||||
GAME( 1990, hiimpact, 0, yunit_cvsd_6bit_slow, trog, hiimpact, ROT0, "Williams", "High Impact Football (rev LA4 02/04/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, hiimpac3, hiimpact, yunit_cvsd_6bit_slow, trog, hiimpact, ROT0, "Williams", "High Impact Football (rev LA3 12/27/90)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1990, hiimpacp, hiimpact, yunit_cvsd_6bit_slow, trog, hiimpact, ROT0, "Williams", "High Impact Football (prototype, rev 8.6 12/09/90)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, shimpact, 0, yunit_cvsd_6bit_slow, trog, shimpact, ROT0, "Midway", "Super High Impact (rev LA1 09/30/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, shimpacp, shimpact, yunit_cvsd_6bit_slow, trog, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 5.0 09/15/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, shimpap4, shimpact, yunit_cvsd_6bit_slow, trog, shimpact, ROT0, "Midway", "Super High Impact (prototype, rev 4.0 09/10/91)", GAME_SUPPORTS_SAVE ) /* See notes about factory restore above */
|
||||
|
||||
GAME( 1991, term2, 0, yunit_adpcm_6bit_fast, term2, term2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA3 03/27/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, term2la2, term2, yunit_adpcm_6bit_fast, term2, term2la2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA2 12/09/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, term2la1, term2, yunit_adpcm_6bit_fast, term2, term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA1 11/01/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkprot9, mk, yunit_adpcm_6bit_fast, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla1, mk, yunit_adpcm_6bit_fast, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla2, mk, yunit_adpcm_6bit_fast, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla3, mk, yunit_adpcm_6bit_fast, mkla4, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla4, mk, yunit_adpcm_6bit_fast, mkla4, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkyawdim, mk, mkyawdim, mkla4, mkyawdim, ROT0, "Midway", "Mortal Kombat (Yawdim bootleg)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, totcarn, 0, yunit_adpcm_6bit_fast, totcarn, totcarn, ROT0, "Midway", "Total Carnage (rev LA1 03/10/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, totcarnp, totcarn, yunit_adpcm_6bit_fast, totcarn, totcarn, ROT0, "Midway", "Total Carnage (prototype, rev 1.0 01/25/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, term2, 0, yunit_adpcm_6bit_faster, term2, term2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA3 03/27/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, term2la2, term2, yunit_adpcm_6bit_faster, term2, term2la2, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA2 12/09/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1991, term2la1, term2, yunit_adpcm_6bit_faster, term2, term2la1, ORIENTATION_FLIP_X, "Midway", "Terminator 2 - Judgment Day (rev LA1 11/01/91)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkprot9, mk, yunit_adpcm_6bit_faster, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (prototype, rev 9.0 07/28/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla1, mk, yunit_adpcm_6bit_fast, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 1.0 08/09/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla2, mk, yunit_adpcm_6bit_fast, mkla2, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 2.0 08/18/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla3, mk, yunit_adpcm_6bit_fast, mkla4, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 3.0 08/31/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkla4, mk, yunit_adpcm_6bit_fast, mkla4, mkyunit, ROT0, "Midway", "Mortal Kombat (rev 4.0 09/28/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, mkyawdim, mk, mkyawdim, mkla4, mkyawdim, ROT0, "Midway", "Mortal Kombat (Yawdim bootleg)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, totcarn, 0, yunit_adpcm_6bit_fast, totcarn, totcarn, ROT0, "Midway", "Total Carnage (rev LA1 03/10/92)", GAME_SUPPORTS_SAVE )
|
||||
GAME( 1992, totcarnp, totcarn, yunit_adpcm_6bit_fast, totcarn, totcarn, ROT0, "Midway", "Total Carnage (prototype, rev 1.0 01/25/92)", GAME_SUPPORTS_SAVE )
|
||||
|
@ -170,8 +170,9 @@ static READ16_HANDLER( term2_input_r )
|
||||
static WRITE16_HANDLER( term2_sound_w )
|
||||
{
|
||||
if (offset == 0)
|
||||
term2_analog_select = (data >> 0x0c) & 0x03;
|
||||
term2_analog_select = (data >> 12) & 3;
|
||||
|
||||
williams_adpcm_reset_w((~data & 0x100) >> 1);
|
||||
williams_adpcm_data_w(data);
|
||||
}
|
||||
|
||||
@ -330,6 +331,7 @@ DRIVER_INIT( narc )
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Y-unit init (CVSD)
|
||||
@ -563,10 +565,12 @@ WRITE16_HANDLER( midyunit_sound_w )
|
||||
|
||||
case SOUND_CVSD_SMALL:
|
||||
case SOUND_CVSD:
|
||||
williams_cvsd_reset_w((~data & 0x100) >> 1);
|
||||
williams_cvsd_data_w((data & 0xff) | ((data & 0x200) >> 1));
|
||||
break;
|
||||
|
||||
case SOUND_ADPCM:
|
||||
williams_adpcm_reset_w((~data & 0x100) >> 1);
|
||||
williams_adpcm_data_w(data);
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user