Convert Atari JSA sound boards to their own devices, and replumb

them through the Atari games that used them.
This commit is contained in:
Aaron Giles 2013-07-14 22:49:13 +00:00
parent f8256fb223
commit 5d93590f30
38 changed files with 1603 additions and 1275 deletions

View File

@ -90,7 +90,7 @@
#define DEVCB2_DEVWRITE64(tag, _class, _func) write64_delegate(&_class::_func, #_class "::" #_func, tag, (_class *)0)
// machine config helpers to add shift, mask, or address space configuration
#define MCFG_DEVCB_SHIFT(_shift) devcb->set_shift(_shift);
#define MCFG_DEVCB_RSHIFT(_shift) devcb->set_rshift(_shift);
#define MCFG_DEVCB_MASK(_mask) devcb->set_mask(_mask);
#define MCFG_DEVCB_XOR(_xor) devcb->set_xor(_xor);
#define MCFG_DEVCB_INVERT devcb->set_xor(~U64(0));

View File

@ -423,7 +423,7 @@ public:
if (device != NULL && this->m_target == NULL)
{
void mame_printf_warning(const char *format, ...) ATTR_PRINTF(1,2);
mame_printf_warning("Device '%s' found but is of incorrect type\n", this->m_tag);
mame_printf_warning("Device '%s' found but is of incorrect type (actual type is %s)\n", this->m_tag, device->name());
}
return this->report_missing(this->m_target != NULL, "device", _Required);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,25 +1,282 @@
/***************************************************************************
Atari Audio Board II Interface
audio/atarijsa.h
Functions to emulate the Atari "JSA" audio boards
****************************************************************************/
****************************************************************************
Copyright Aaron Giles
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
* Neither the name 'MAME' nor the names of its contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
***************************************************************************/
#pragma once
#ifndef __ATARI_JSA__
#define __ATARI_JSA__
#include "cpu/m6502/m6502.h"
#include "sound/tms5220.h"
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "sound/pokey.h"
#include "machine/atarigen.h"
void atarijsa_init(running_machine &machine, const char *testport, int testmask);
void atarijsa_reset(running_machine &machine);
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
extern const device_type ATARI_JSA_I;
extern const device_type ATARI_JSA_II;
extern const device_type ATARI_JSA_III;
extern const device_type ATARI_JSA_IIIS;
MACHINE_CONFIG_EXTERN( jsa_i_stereo );
MACHINE_CONFIG_EXTERN( jsa_i_stereo_swapped );
MACHINE_CONFIG_EXTERN( jsa_i_stereo_pokey );
MACHINE_CONFIG_EXTERN( jsa_i_mono_speech );
MACHINE_CONFIG_EXTERN( jsa_ii_mono );
MACHINE_CONFIG_EXTERN( jsa_iii_mono );
MACHINE_CONFIG_EXTERN( jsa_iii_mono_noadpcm );
MACHINE_CONFIG_EXTERN( jsa_iiis_stereo );
//**************************************************************************
// DEVICE CONFIGURATION MACROS
//**************************************************************************
#define MCFG_ATARI_JSA_I_ADD(_tag, _intcb) \
MCFG_DEVICE_ADD(_tag, ATARI_JSA_I, 0) \
devcb = &atari_jsa_i_device::static_set_main_int_cb(*device, DEVCB2_##_intcb);
#define MCFG_ATARI_JSA_II_ADD(_tag, _intcb) \
MCFG_DEVICE_ADD(_tag, ATARI_JSA_II, 0) \
devcb = &atari_jsa_ii_device::static_set_main_int_cb(*device, DEVCB2_##_intcb);
#define MCFG_ATARI_JSA_III_ADD(_tag, _intcb) \
MCFG_DEVICE_ADD(_tag, ATARI_JSA_III, 0) \
devcb = &atari_jsa_iii_device::static_set_main_int_cb(*device, DEVCB2_##_intcb);
#define MCFG_ATARI_JSA_IIIS_ADD(_tag, _intcb) \
MCFG_DEVICE_ADD(_tag, ATARI_JSA_IIIS, 0) \
devcb = &atari_jsa_iiis_device::static_set_main_int_cb(*device, DEVCB2_##_intcb);
#define MCFG_ATARI_JSA_TEST_PORT(_port, _bitnum) \
devcb = &atari_jsa_base_device::static_set_test_read_cb(*device, DEVCB2_IOPORT(_port)); \
MCFG_DEVCB_RSHIFT(_bitnum); \
/* Board-specific port definitions */
INPUT_PORTS_EXTERN( atarijsa_i );
INPUT_PORTS_EXTERN( atarijsa_ii );
INPUT_PORTS_EXTERN( atarijsa_iii );
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
// ======================> atari_jsa_base_device
class atari_jsa_base_device : public device_t,
public device_mixer_interface
{
protected:
// construction/destruction
atari_jsa_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int channels);
public:
// static configuration
template<class _Object> static devcb2_base &static_set_test_read_cb(device_t &device, _Object object) { return downcast<atari_jsa_base_device &>(device).m_test_read_cb.set_callback(object); }
template<class _Object> static devcb2_base &static_set_main_int_cb(device_t &device, _Object object) { return downcast<atari_jsa_base_device &>(device).m_main_int_cb.set_callback(object); }
// getters
m6502_device &soundcpu() const { return *m_jsacpu; }
bool main_to_sound_ready() const { return m_soundcomm->main_to_sound_ready(); }
bool sound_to_main_ready() const { return m_soundcomm->sound_to_main_ready(); }
// main cpu accessors
DECLARE_WRITE8_MEMBER(main_command_w);
DECLARE_READ8_MEMBER(main_response_r);
DECLARE_WRITE16_MEMBER(sound_reset_w);
// read/write handlers
DECLARE_WRITE8_MEMBER( ym2151_port_w );
// I/O lines
DECLARE_WRITE_LINE_MEMBER( main_int_write_line );
protected:
// device-level overrides
virtual void device_start();
virtual void device_reset();
// internal helpers
virtual void update_all_volumes() = 0;
// devices
required_device<atari_sound_comm_device> m_soundcomm;
required_device<m6502_device> m_jsacpu;
required_device<ym2151_device> m_ym2151;
// memory banks
required_memory_bank m_cpu_bank;
// configuration state
devcb2_read_line m_test_read_cb;
devcb2_write_line m_main_int_cb;
// internal state
double m_ym2151_volume;
UINT8 m_ym2151_ct1;
UINT8 m_ym2151_ct2;
};
// ======================> atari_jsa_oki_base_device
class atari_jsa_oki_base_device : public atari_jsa_base_device
{
protected:
// derived construction/destruction
atari_jsa_oki_base_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int channels);
public:
// read/write handlers
DECLARE_READ8_MEMBER( oki_r );
DECLARE_WRITE8_MEMBER( oki_w );
DECLARE_WRITE8_MEMBER( wrio_w );
DECLARE_WRITE8_MEMBER( mix_w );
DECLARE_WRITE8_MEMBER( overall_volume_w );
protected:
// device level overrides
virtual void device_start();
virtual void device_reset();
// internal helpers
virtual void update_all_volumes();
// devices
optional_device<okim6295_device> m_oki1;
optional_device<okim6295_device> m_oki2; // JSA IIIs only
// memory banks
optional_memory_bank m_oki1_banklo; // JSA III(s) only
optional_memory_bank m_oki1_bankhi; // JSA III(s)
optional_memory_bank m_oki2_banklo; // JSA IIIs only
optional_memory_bank m_oki2_bankhi; // JSA IIIs only
// internal state
double m_oki6295_volume;
double m_overall_volume; // JSA III(s) only
};
// ======================> atari_jsa_i_device
class atari_jsa_i_device : public atari_jsa_base_device
{
public:
// construction/destruction
atari_jsa_i_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// read/write handlers
DECLARE_READ8_MEMBER( rdio_r );
DECLARE_WRITE8_MEMBER( wrio_w );
DECLARE_WRITE8_MEMBER( mix_w );
DECLARE_WRITE8_MEMBER( tms5220_voice );
DECLARE_READ8_MEMBER( pokey_r );
DECLARE_WRITE8_MEMBER( pokey_w );
protected:
// device level overrides
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
virtual void device_start();
virtual void device_reset();
// internal helpers
virtual void update_all_volumes();
// devices
optional_device<pokey_device> m_pokey;
optional_device<tms5220_device> m_tms5220;
// internal state
double m_pokey_volume;
double m_tms5220_volume;
};
// ======================> atari_jsa_ii_device
class atari_jsa_ii_device : public atari_jsa_oki_base_device
{
public:
// construction/destruction
atari_jsa_ii_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
// read/write handlers
DECLARE_READ8_MEMBER( rdio_r );
protected:
// device level overrides
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
};
// ======================> atari_jsa_iii_device
class atari_jsa_iii_device : public atari_jsa_oki_base_device
{
public:
// construction/destruction
atari_jsa_iii_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
protected:
// derived construction/destruction
atari_jsa_iii_device(const machine_config &mconfig, device_type devtype, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, int channels);
public:
// read/write handlers
DECLARE_READ8_MEMBER( rdio_r );
protected:
// device level overrides
virtual machine_config_constructor device_mconfig_additions() const;
virtual ioport_constructor device_input_ports() const;
};
// ======================> atari_jsa_iiis_device
class atari_jsa_iiis_device : public atari_jsa_iii_device
{
public:
// construction/destruction
atari_jsa_iiis_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
protected:
// device level overrides
virtual machine_config_constructor device_mconfig_additions() const;
};
#endif

View File

@ -30,7 +30,7 @@ void cyberbal_state::cyberbal_sound_reset()
READ8_MEMBER(cyberbal_state::special_port3_r)
{
int temp = ioport("JSAII")->read();
int temp = ioport("jsa:JSAII")->read();
if (!(ioport("IN0")->read() & 0x8000)) temp ^= 0x80;
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x40;
if (m_soundcomm->sound_to_main_ready()) temp ^= 0x20;

View File

@ -19,7 +19,6 @@
#include "emu.h"
#include "audio/atarijsa.h"
#include "video/atarirle.h"
#include "includes/atarig1.h"
@ -49,7 +48,6 @@ MACHINE_RESET_MEMBER(atarig1_state,atarig1)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -86,7 +84,7 @@ WRITE16_MEMBER(atarig1_state::mo_command_w)
READ16_MEMBER(atarig1_state::special_port0_r)
{
int temp = ioport("IN0")->read();
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x1000;
if (m_jsa->main_to_sound_ready()) temp ^= 0x1000;
temp ^= 0x2000; /* A2DOK always high for now */
return temp;
}
@ -204,13 +202,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig1_state )
AM_RANGE(0x078000, 0x07ffff) AM_ROM /* hydra slapstic goes here */
AM_RANGE(0xf80000, 0xf80001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xf88000, 0xf8ffff) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xf90000, 0xf90001) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0xff00)
AM_RANGE(0xf98000, 0xf98001) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xf90000, 0xf90001) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0xff00)
AM_RANGE(0xf98000, 0xf98001) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0xfa0000, 0xfa0001) AM_WRITE(mo_control_w)
AM_RANGE(0xfb0000, 0xfb0001) AM_WRITE(video_int_ack_w)
AM_RANGE(0xfc0000, 0xfc0001) AM_READ(special_port0_r)
AM_RANGE(0xfc8000, 0xfc8007) AM_READWRITE(a2d_data_r, a2d_select_w)
AM_RANGE(0xfd0000, 0xfd0001) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0xff00)
AM_RANGE(0xfd0000, 0xfd0001) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0xff00)
AM_RANGE(0xfd8000, 0xfdffff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
/* AM_RANGE(0xfe0000, 0xfe7fff) AM_READ(from_r)*/
AM_RANGE(0xfe8000, 0xfe89ff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
@ -253,9 +251,9 @@ static INPUT_PORTS_START( hydra )
PORT_START("ADC2") /* ADC 2 @ fc8000 */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(16)
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
PORT_MODIFY( "JSAII" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
// todo:
// PORT_MODIFY( "jsa:JSAII" )
// PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -298,9 +296,9 @@ static INPUT_PORTS_START( pitfight )
PORT_START("ADC2") /* not used */
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
PORT_MODIFY( "JSAII" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
// todo:
// PORT_MODIFY( "jsa:JSAII" )
// PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -336,9 +334,9 @@ static INPUT_PORTS_START( pitfightj )
PORT_START("ADC2") /* not used */
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
PORT_MODIFY( "JSAII" )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
// todo:
// PORT_MODIFY( "jsa:JSAII" )
// PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -464,7 +462,11 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state )
MCFG_VIDEO_START_OVERRIDE(atarig1_state,atarig1)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN0", 14)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hydra, atarig1 )
@ -493,7 +495,7 @@ ROM_START( hydra )
ROM_LOAD16_BYTE( "136079-1030.bin", 0x60000, 0x10000, CRC(b31fd41f) SHA1(1738d31b3262b32f89ce64fe262682b6bb544e79) )
ROM_LOAD16_BYTE( "136079-1031.bin", 0x60001, 0x10000, CRC(453d076f) SHA1(a7fd8e5efebf56c22e0a7e0b224597b4dba4692a) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "hydraa0.bin", 0x10000, 0x4000, CRC(619d7319) SHA1(3c58f18ca5c93ae049bfca91043718fff43e674c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -530,7 +532,7 @@ ROM_START( hydra )
ROM_LOAD16_BYTE( "136079-1015.bin", 0xe0001, 0x10000, CRC(cf7f69fd) SHA1(93866f66ae7f4071abc66bd310bd15847e2a950a) )
ROM_LOAD16_BYTE( "136079-1016.bin", 0xe0000, 0x10000, CRC(61aaf14f) SHA1(946caff64902ebdda991372b54c29bd0a0fa13c3) )
ROM_REGION( 0x40000, "adpcm", 0 )
ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136079-1037.bin", 0x00000, 0x10000, CRC(b974d3d0) SHA1(67ecb17386f4be00c03661de14deff77b8ca85d0) )
ROM_LOAD( "136079-1038.bin", 0x10000, 0x10000, CRC(a2eda15b) SHA1(358888ffdeb3d0e98f59e239de6d7e1f7e15aca2) )
ROM_LOAD( "136079-1039.bin", 0x20000, 0x10000, CRC(eb9eaeb7) SHA1(cd8e076b07588879f1a0e6c0fb9de9889480bebb) )
@ -553,7 +555,7 @@ ROM_START( hydrap )
ROM_LOAD16_BYTE( "hydhi3.bin", 0x60000, 0x10000, CRC(29e9e03e) SHA1(0b03482834c1c8fcdd902d513c23c0cc04900f5f) )
ROM_LOAD16_BYTE( "hydlo3.bin", 0x60001, 0x10000, CRC(7b5047f0) SHA1(99b59dfebc0df0b876e69a885a3e3b07ef958fd4) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "hydraa0.bin", 0x10000, 0x4000, BAD_DUMP CRC(619d7319) SHA1(3c58f18ca5c93ae049bfca91043718fff43e674c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -590,7 +592,7 @@ ROM_START( hydrap )
ROM_LOAD16_BYTE( "hydmhi7.bin", 0xe0001, 0x10000, CRC(71fc3e43) SHA1(ce6bdd68ed40c2b48d679ece740f0376b2442e2b) )
ROM_LOAD16_BYTE( "hydmlo7.bin", 0xe0000, 0x10000, CRC(7960b0c2) SHA1(56e7d0b48d6afce6a3c1a940fc578a5775abd940) )
ROM_REGION( 0x40000, "adpcm", 0 )
ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136079-1037.bin", 0x00000, 0x10000, BAD_DUMP CRC(b974d3d0) SHA1(67ecb17386f4be00c03661de14deff77b8ca85d0) )
ROM_LOAD( "136079-1038.bin", 0x10000, 0x10000, BAD_DUMP CRC(a2eda15b) SHA1(358888ffdeb3d0e98f59e239de6d7e1f7e15aca2) )
ROM_LOAD( "136079-1039.bin", 0x20000, 0x10000, BAD_DUMP CRC(eb9eaeb7) SHA1(cd8e076b07588879f1a0e6c0fb9de9889480bebb) )
@ -613,7 +615,7 @@ ROM_START( hydrap2 )
ROM_LOAD16_BYTE( "30c", 0x60001, 0x10000, CRC(89604306) SHA1(ccac6eabb174903f4ee144fce53a169daa734e07) )
ROM_LOAD16_BYTE( "30e", 0x60000, 0x10000, CRC(25221b17) SHA1(bb14117f256c3db6881bb91cace297d4c636e684) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "aud.1b", 0x10000, 0x4000, CRC(e1b5188a) SHA1(e9f2a78df49fa085a9363ca194e2ceb5fa5409c4) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -650,7 +652,7 @@ ROM_START( hydrap2 )
ROM_LOAD16_BYTE( "136079-1015.bin", 0xe0001, 0x10000, BAD_DUMP CRC(cf7f69fd) SHA1(93866f66ae7f4071abc66bd310bd15847e2a950a) ) // "
ROM_LOAD16_BYTE( "136079-1016.bin", 0xe0000, 0x10000, BAD_DUMP CRC(61aaf14f) SHA1(946caff64902ebdda991372b54c29bd0a0fa13c3) ) // "
ROM_REGION( 0x40000, "adpcm", 0 )
ROM_REGION( 0x40000, "jsa:oki1", 0 )
ROM_LOAD( "136079-1037.bin", 0x00000, 0x10000, BAD_DUMP CRC(b974d3d0) SHA1(67ecb17386f4be00c03661de14deff77b8ca85d0) ) // not dumped from this pcb, rom taken from another set instead
ROM_LOAD( "136079-1038.bin", 0x10000, 0x10000, BAD_DUMP CRC(a2eda15b) SHA1(358888ffdeb3d0e98f59e239de6d7e1f7e15aca2) ) // "
ROM_LOAD( "136079-1039.bin", 0x20000, 0x10000, BAD_DUMP CRC(eb9eaeb7) SHA1(cd8e076b07588879f1a0e6c0fb9de9889480bebb) ) // "
@ -702,7 +704,7 @@ ROM_START( pitfight )
ROM_LOAD16_BYTE( "136081-9030.15d", 0x20000, 0x10000, CRC(3bace9ef) SHA1(29072871b268f343fa1e7fcc9682674df2b2e34f) )
ROM_LOAD16_BYTE( "136081-9031.15b", 0x20001, 0x10000, CRC(c717f011) SHA1(3c5d6c12b85285422345a1aba3f8c497f74c6889) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -734,7 +736,7 @@ ROM_START( pitfight )
ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -798,7 +800,7 @@ ROM_START( pitfight7 )
ROM_LOAD16_BYTE( "136081-7030.15d", 0x20000, 0x10000, CRC(5fd5a0b1) SHA1(5d4711e8d10176b6989c4db012dbb4e29860590c) )
ROM_LOAD16_BYTE( "136081-7031.15b", 0x20001, 0x10000, CRC(e14a1d0c) SHA1(734fa1cd5ad835fa77c686006993ea9358e3b072) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -830,7 +832,7 @@ ROM_START( pitfight7 )
ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -861,7 +863,7 @@ ROM_START( pitfight6 )
ROM_LOAD16_BYTE( "136081-6030.15d", 0x20000, 0x10000, CRC(72b4b249) SHA1(295c707783ca40d6b68eb36b4511774e889bf447) )
ROM_LOAD16_BYTE( "136081-6031.15b", 0x20001, 0x10000, CRC(f0c5d03b) SHA1(53aed44930ebaad98d833bc86837c57ac623937d) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -881,7 +883,7 @@ ROM_START( pitfight6 )
ROM_LOAD16_BYTE( "136081-1067.70r", 0x100001, 0x80000, CRC(ca4f75a8) SHA1(f8b8b03df4ad043a48970a0f8a4c3b85c7140493) )
ROM_LOAD16_BYTE( "136081-1068.70n", 0x100000, 0x80000, CRC(85240517) SHA1(f3d5c0803a7958569d2f3b9c25c73d33defcabe7) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -912,7 +914,7 @@ ROM_START( pitfight5 )
ROM_LOAD16_BYTE( "136081-5030.15d", 0x20000, 0x10000, CRC(6a094723) SHA1(a77046a8c5fab81cf0207122e494c32aab3b220d) )
ROM_LOAD16_BYTE( "136081-5031.15b", 0x20001, 0x10000, CRC(47400d94) SHA1(07ba297a9b3ae574bc501a24fb6e46db7a5b3de5) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -932,7 +934,7 @@ ROM_START( pitfight5 )
ROM_LOAD16_BYTE( "136081-1067.70r", 0x100001, 0x80000, CRC(ca4f75a8) SHA1(f8b8b03df4ad043a48970a0f8a4c3b85c7140493) )
ROM_LOAD16_BYTE( "136081-1068.70n", 0x100000, 0x80000, CRC(85240517) SHA1(f3d5c0803a7958569d2f3b9c25c73d33defcabe7) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -963,7 +965,7 @@ ROM_START( pitfight4 )
ROM_LOAD16_BYTE( "136081-3030.15d", 0x20000, 0x10000, CRC(b053e779) SHA1(f143f0e16850ad98366db208e956f7402d1ca848) )
ROM_LOAD16_BYTE( "136081-3031.15b", 0x20001, 0x10000, CRC(2b8c4d13) SHA1(6f1679ef5974bf44848bfa6db0b9b05f71f6e7d6) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -995,7 +997,7 @@ ROM_START( pitfight4 )
ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -1026,7 +1028,7 @@ ROM_START( pitfight3 )
ROM_LOAD16_BYTE( "136081-3030.15d", 0x20000, 0x10000, CRC(b053e779) SHA1(f143f0e16850ad98366db208e956f7402d1ca848) )
ROM_LOAD16_BYTE( "136081-3031.15b", 0x20001, 0x10000, CRC(2b8c4d13) SHA1(6f1679ef5974bf44848bfa6db0b9b05f71f6e7d6) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1058,7 +1060,7 @@ ROM_START( pitfight3 )
ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -1089,7 +1091,7 @@ ROM_START( pitfightj )
ROM_LOAD16_BYTE( "136081-3430.15d", 0x20000, 0x10000, CRC(80707ac0) SHA1(39ddd228bb630bbdf32c76c7906e54f6a62c06ad) )
ROM_LOAD16_BYTE( "136081-3431.15b", 0x20001, 0x10000, CRC(9bf43aa6) SHA1(b41c30118a0c0032303d1b1de471aac292a4968a) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-2060.1b", 0x10000, 0x4000, CRC(4317a9f3) SHA1(310154be47fd16b417699338e04e08f3ed973198) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1121,7 +1123,7 @@ ROM_START( pitfightj )
ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -1152,7 +1154,7 @@ ROM_START( pitfightb )
ROM_LOAD16_BYTE( "pit8.bin", 0x20000, 0x10000, CRC(b74a8258) SHA1(779990ed95c25dd0a8e9f30c4d9a8d69162d14fc) )
ROM_LOAD16_BYTE( "pit6.bin", 0x20001, 0x10000, CRC(40204ecd) SHA1(73d827e119cc1408356e28c1e67f6c8e287eeb15) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136081-1060.1b", 0x10000, 0x4000, CRC(231d71d7) SHA1(24622eee5fe873ef81e1df2691bd7a1d3ea7ef6b) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1184,7 +1186,7 @@ ROM_START( pitfightb )
ROM_LOAD16_BYTE( "136081-1015.130r", 0x1c0001, 0x20000, CRC(9378ad0b) SHA1(909f9879f5b8fc3ed0622fd27d903ccb1f7a90c6) )
ROM_LOAD16_BYTE( "136081-1016.130n", 0x1c0000, 0x20000, CRC(19c3fbe0) SHA1(ba28f71edb04387f009afe39bfe0ffeff8fbf5e9) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136081-1061.7k", 0x00000, 0x10000, CRC(5b0468c6) SHA1(c910344622386e6be336fe04bc0be758ac6c59db) )
ROM_LOAD( "136081-1062.7j", 0x10000, 0x10000, CRC(f73fe3cb) SHA1(547b5c4add617237c4c851751a27cda091fb7933) )
ROM_LOAD( "136081-1063.7e", 0x20000, 0x10000, CRC(aa93421d) SHA1(f319057dadcb77a489d0bcffb24e0afe88adc769) )
@ -1215,7 +1217,6 @@ void atarig1_state::init_common(offs_t slapstic_base, int slapstic, bool is_pitf
}
else if (slapstic != 0)
slapstic_configure(*m_maincpu, slapstic_base, 0, slapstic);
atarijsa_init(machine(), "IN0", 0x4000);
m_is_pitfight = is_pitfight;
}

View File

@ -19,7 +19,6 @@
#include "emu.h"
#include "machine/asic65.h"
#include "audio/atarijsa.h"
#include "video/atarirle.h"
#include "includes/atarig42.h"
@ -53,7 +52,6 @@ MACHINE_RESET_MEMBER(atarig42_state,atarig42)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -67,8 +65,8 @@ MACHINE_RESET_MEMBER(atarig42_state,atarig42)
READ16_MEMBER(atarig42_state::special_port2_r)
{
int temp = ioport("IN2")->read();
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x0020;
if (m_soundcomm->sound_to_main_ready()) temp ^= 0x0010;
if (m_jsa->main_to_sound_ready()) temp ^= 0x0020;
if (m_jsa->sound_to_main_ready()) temp ^= 0x0010;
temp ^= 0x0008; /* A2D.EOC always high for now */
return temp;
}
@ -104,8 +102,9 @@ WRITE16_MEMBER(atarig42_state::io_latch_w)
if (ACCESSING_BITS_0_7)
{
/* bit 4 resets the sound CPU */
m_jsacpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
if (!(data & 0x10)) atarijsa_reset(machine());
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
if (!(data & 0x10))
m_jsa->reset();
/* bit 5 is /XRESET, probably related to the ASIC */
@ -336,10 +335,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig42_state )
AM_RANGE(0xe00000, 0xe00001) AM_READ_PORT("IN0")
AM_RANGE(0xe00002, 0xe00003) AM_READ_PORT("IN1")
AM_RANGE(0xe00010, 0xe00011) AM_READ(special_port2_r)
AM_RANGE(0xe00012, 0xe00013) AM_READ_PORT("JSAIII")
AM_RANGE(0xe00012, 0xe00013) AM_READ_PORT("jsa:JSAIII")
AM_RANGE(0xe00020, 0xe00027) AM_READWRITE(a2d_data_r, a2d_select_w)
AM_RANGE(0xe00030, 0xe00031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0xe00040, 0xe00041) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0xe00030, 0xe00031) AM_DEVREAD8("jsa", atari_jsa_iii_device, main_response_r, 0x00ff)
AM_RANGE(0xe00040, 0xe00041) AM_DEVWRITE8("jsa", atari_jsa_iii_device, main_command_w, 0x00ff)
AM_RANGE(0xe00050, 0xe00051) AM_WRITE(io_latch_w)
AM_RANGE(0xe00060, 0xe00061) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xe03000, 0xe03001) AM_WRITE(video_int_ack_w)
@ -382,8 +381,6 @@ static INPUT_PORTS_START( roadriot )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
PORT_START("A2D0") /* analog 0 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10)
@ -433,8 +430,6 @@ static INPUT_PORTS_START( guardian )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
PORT_START("A2D0") /* analog 0 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
@ -570,7 +565,11 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state )
MCFG_VIDEO_START_OVERRIDE(atarig42_state,atarig42)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN2", 6)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( atarig42_0x200, atarig42 )
@ -601,7 +600,7 @@ ROM_START( roadriot )
ROM_REGION( 0x2000, "asic65", 0 ) /* ASIC65 TMS32015 code */
ROM_LOAD( "136089-1012.3f", 0x00000, 0x0a80, CRC(7c5498e7) SHA1(9d8b235baf7b75bef8ef9b168647c5b2b80b2cb3) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 6502 code */
ROM_LOAD( "136089-1047.12c", 0x10000, 0x4000, CRC(849dd26c) SHA1(05a0b2a5f7ee4437448b5f076d3066d96dec2320) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -634,7 +633,7 @@ ROM_START( roadriot )
ROM_LOAD16_BYTE( "136089-1032.9s", 0x1c0000, 0x20000, CRC(eca3c595) SHA1(5d067b7c02675b1e6dd3c4046697a16f873f80af) )
ROM_LOAD16_BYTE( "136089-1031.9p", 0x1c0001, 0x20000, CRC(88acdb53) SHA1(5bf2424ee75a25248a8ce38c8605b6780da4e323) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136089-1048.19e", 0x00000, 0x20000, CRC(2db638a7) SHA1(45da8088f7439beacc3056952a4d631d9633efa7) )
ROM_LOAD( "136089-1049.17e", 0x20000, 0x20000, CRC(e1dd7f9e) SHA1(6b9a240aa84d210d3052daab6ea26f9cd0e62dc1) )
ROM_LOAD( "136089-1050.15e", 0x40000, 0x20000, CRC(64d410bb) SHA1(877bccca7ff37a9dd8294bc1453487a2f516ca7d) )
@ -659,7 +658,7 @@ ROM_START( roadrioto )
ROM_REGION( 0x2000, "asic65", 0 ) /* ASIC65 TMS32015 code */
ROM_LOAD( "136089-1012.3f", 0x00000, 0x0a80, CRC(7c5498e7) SHA1(9d8b235baf7b75bef8ef9b168647c5b2b80b2cb3) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 6502 code */
ROM_LOAD( "136089-1047.12c", 0x10000, 0x4000, CRC(849dd26c) SHA1(05a0b2a5f7ee4437448b5f076d3066d96dec2320) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -692,7 +691,7 @@ ROM_START( roadrioto )
ROM_LOAD16_BYTE( "136089-1032.9s", 0x1c0000, 0x20000, CRC(eca3c595) SHA1(5d067b7c02675b1e6dd3c4046697a16f873f80af) )
ROM_LOAD16_BYTE( "136089-1031.9p", 0x1c0001, 0x20000, CRC(88acdb53) SHA1(5bf2424ee75a25248a8ce38c8605b6780da4e323) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136089-1048.19e", 0x00000, 0x20000, CRC(2db638a7) SHA1(45da8088f7439beacc3056952a4d631d9633efa7) )
ROM_LOAD( "136089-1049.17e", 0x20000, 0x20000, CRC(e1dd7f9e) SHA1(6b9a240aa84d210d3052daab6ea26f9cd0e62dc1) )
ROM_LOAD( "136089-1050.15e", 0x40000, 0x20000, CRC(64d410bb) SHA1(877bccca7ff37a9dd8294bc1453487a2f516ca7d) )
@ -718,7 +717,7 @@ ROM_START( guardian )
ROM_REGION( 0x2000, "asic65", 0 ) /* ASIC65 TMS32015 code */
ROM_LOAD( "136089-1012.3f", 0x00000, 0x0a80, NO_DUMP )
ROM_REGION( 0x14000, "jsa", 0 ) /* 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 6502 code */
ROM_LOAD( "136092-0080-snd.12c", 0x10000, 0x4000, CRC(0388f805) SHA1(49c11313bc4192dbe294cf68b652cb19047889fd) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -744,7 +743,7 @@ ROM_START( guardian )
ROM_LOAD16_BYTE( "136092-0067a.9s", 0x500000, 0x80000, CRC(15845fba) SHA1(f7b670a8d48a5e9c261150914a06ef9a938a84e7) )
ROM_LOAD16_BYTE( "136092-0066a.9p", 0x500001, 0x80000, CRC(7130c575) SHA1(b3ea109981a1e5c631705b23dfad4a3a3daf7734) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136092-0010-snd", 0x00000, 0x80000, CRC(bca27f40) SHA1(91a41eac116eb7d9a790abc590eb06328726d1c2) )
ROM_REGION( 0x1000, "eeprom", 0 )
@ -777,8 +776,6 @@ ROM_END
DRIVER_INIT_MEMBER(atarig42_state,roadriot)
{
atarijsa_init(machine(), "IN2", 0x0040);
m_playfield_base = 0x400;
address_space &main = m_maincpu->space(AS_PROGRAM);
@ -811,8 +808,6 @@ DRIVER_INIT_MEMBER(atarig42_state,roadriot)
DRIVER_INIT_MEMBER(atarig42_state,guardian)
{
atarijsa_init(machine(), "IN2", 0x0040);
m_playfield_base = 0x000;
/* it looks like they jsr to $80000 as some kind of protection */

View File

@ -21,7 +21,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarirle.h"
#include "includes/atarigx2.h"
@ -44,7 +43,6 @@ MACHINE_RESET_MEMBER(atarigx2_state,atarigx2)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -58,8 +56,8 @@ MACHINE_RESET_MEMBER(atarigx2_state,atarigx2)
READ32_MEMBER(atarigx2_state::special_port2_r)
{
int temp = ioport("SERVICE")->read();
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x0020;
if (m_soundcomm->sound_to_main_ready()) temp ^= 0x0010;
if (m_jsa->main_to_sound_ready()) temp ^= 0x0020;
if (m_jsa->sound_to_main_ready()) temp ^= 0x0010;
temp ^= 0x0008; /* A2D.EOC always high for now */
return (temp << 16) | temp;
}
@ -112,7 +110,7 @@ WRITE32_MEMBER(atarigx2_state::latch_w)
/* lower byte */
if (ACCESSING_BITS_16_23)
m_jsacpu->set_input_line(INPUT_LINE_RESET, (data & 0x100000) ? CLEAR_LINE : ASSERT_LINE);
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, (data & 0x100000) ? CLEAR_LINE : ASSERT_LINE);
}
@ -1147,14 +1145,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigx2_state )
AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
AM_RANGE(0xd80000, 0xd9ffff) AM_WRITE16(eeprom_enable_w, 0xffffffff)
AM_RANGE(0xe06000, 0xe06003) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0xff000000)
AM_RANGE(0xe06000, 0xe06003) AM_DEVWRITE8("jsa", atari_jsa_iiis_device, main_command_w, 0xff000000)
AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE16(video_int_ack_w, 0xffffffff)
AM_RANGE(0xe0e000, 0xe0e003) AM_WRITENOP//watchdog_reset_w },
AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2")
AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r)
AM_RANGE(0xe82004, 0xe82007) AM_READ(special_port3_r)
AM_RANGE(0xe86000, 0xe86003) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0xff000000)
AM_RANGE(0xe86000, 0xe86003) AM_DEVREAD8("jsa", atari_jsa_iiis_device, main_response_r, 0xff000000)
AM_RANGE(0xff8000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@ -1206,8 +1204,6 @@ static INPUT_PORTS_START( spclords )
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_SPECIAL ) /* +5V */
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
PORT_START("A2D0") /* A2D @ 0xD00000 */
PORT_BIT ( 0x00ff, 0x0080, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(1)
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
@ -1254,8 +1250,6 @@ static INPUT_PORTS_START( motofren )
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_SPECIAL ) /* +5V */
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
PORT_START("A2D0") /* A2D @ 0xD00000 */
PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(16)
@ -1302,8 +1296,6 @@ static INPUT_PORTS_START( rrreveng )
PORT_BIT( 0x00c0, IP_ACTIVE_LOW, IPT_SPECIAL ) /* +5V */
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
PORT_START("A2D0") /* A2D @ 0xD00000 */
PORT_BIT ( 0x00ff, 0x0010, IPT_PEDAL ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10)
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
@ -1441,7 +1433,12 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state )
MCFG_VIDEO_START_OVERRIDE(atarigx2_state,atarigx2)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iiis_stereo)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ATARI_JSA_IIIS_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("SERVICE", 6)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MACHINE_CONFIG_END
@ -1453,6 +1450,8 @@ static MACHINE_CONFIG_DERIVED( atarigx2_0x400, atarigx2 )
MCFG_ATARIRLE_ADD( "rle", modesc_0x400 )
MACHINE_CONFIG_END
/*************************************
*
* ROM definition(s)
@ -1466,7 +1465,7 @@ ROM_START( spclords )
ROM_LOAD32_BYTE( "main2rc.095", 0x000002, 0x020000, CRC(49d30630) SHA1(2d0f2abe5d17b4cf575f80687502fac33c7f3206) )
ROM_LOAD32_BYTE( "main3rc.095", 0x000003, 0x020000, CRC(3872424c) SHA1(db08ad9386dfe8fa4e2a83a2505118a636247279) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136095.80a", 0x10000, 0x4000, CRC(33bc0ede) SHA1(2ee30d9125057cdfbdb83e4dbf28306c35a9c233) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1492,10 +1491,10 @@ ROM_START( spclords )
ROM_LOAD16_BYTE( "136095.51b", 0x500000, 0x80000, CRC(97541074) SHA1(f9f75bfc4af9587f4a9630ad93d9cd0efd89e4f4) )
ROM_LOAD16_BYTE( "136095.50b", 0x500001, 0x80000, CRC(a1c11ae8) SHA1(53fb2f376aae0aa346f9f911d6d8a73753c67d6e) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1512,7 +1511,7 @@ ROM_START( spclordsb )
ROM_LOAD32_BYTE( "136095.23b", 0x00002, 0x20000, CRC(bc64ab63) SHA1(999851a39123f6a01cb83d97ea744e12590b6e7e) )
ROM_LOAD32_BYTE( "136095.24b", 0x00003, 0x20000, CRC(7284a01a) SHA1(afa866c97b4c3df7fda3c196072231096beaa0db) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136095.80a", 0x10000, 0x4000, CRC(33bc0ede) SHA1(2ee30d9125057cdfbdb83e4dbf28306c35a9c233) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1538,10 +1537,10 @@ ROM_START( spclordsb )
ROM_LOAD16_BYTE( "136095.51b", 0x500000, 0x80000, CRC(97541074) SHA1(f9f75bfc4af9587f4a9630ad93d9cd0efd89e4f4) )
ROM_LOAD16_BYTE( "136095.50b", 0x500001, 0x80000, CRC(a1c11ae8) SHA1(53fb2f376aae0aa346f9f911d6d8a73753c67d6e) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1558,7 +1557,7 @@ ROM_START( spclordsg )
ROM_LOAD32_BYTE( "german2.095", 0x000002, 0x020000, CRC(9527df10) SHA1(c18434c1f40fa23a6cc78df7104c7e2e6888d189) )
ROM_LOAD32_BYTE( "german3.095", 0x000003, 0x020000, CRC(0aaaad66) SHA1(382b859be652d7d83319907d354d294643cef2b4) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136095.80a", 0x10000, 0x4000, CRC(33bc0ede) SHA1(2ee30d9125057cdfbdb83e4dbf28306c35a9c233) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1584,10 +1583,10 @@ ROM_START( spclordsg )
ROM_LOAD16_BYTE( "136095.51a", 0x500000, 0x80000, CRC(4635c534) SHA1(7261508052e3b17a552b43bc3d4ad7cd2d1f6af9) )
ROM_LOAD16_BYTE( "136095.50a", 0x500001, 0x80000, CRC(94bde47d) SHA1(dde8f0184a2d7e9f7eb961af2d9d016399ec18fc) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1604,7 +1603,7 @@ ROM_START( spclordsa )
ROM_LOAD32_BYTE( "136095.23a", 0x00002, 0x20000, CRC(20a0e443) SHA1(54597342901d6b38dddbe754f41ceeddcc4e5289) )
ROM_LOAD32_BYTE( "136095.24a", 0x00003, 0x20000, CRC(d3f0439c) SHA1(f9245f448b77187b4cd5d9436b5caebd2800be5d))
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136095.80a", 0x10000, 0x4000, CRC(33bc0ede) SHA1(2ee30d9125057cdfbdb83e4dbf28306c35a9c233) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1630,10 +1629,10 @@ ROM_START( spclordsa )
ROM_LOAD16_BYTE( "136095.51a", 0x500000, 0x80000, CRC(4635c534) SHA1(7261508052e3b17a552b43bc3d4ad7cd2d1f6af9) )
ROM_LOAD16_BYTE( "136095.50a", 0x500001, 0x80000, CRC(94bde47d) SHA1(dde8f0184a2d7e9f7eb961af2d9d016399ec18fc) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136095.81a", 0x00000, 0x80000, CRC(212560dd) SHA1(9d90bca5b478050d640b2393c9d3d59a4bd493dd) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1650,7 +1649,7 @@ ROM_START( motofren )
ROM_LOAD32_BYTE( "136094-moto2.37e", 0x000002, 0x020000, CRC(6b1c7626) SHA1(b318a5856bcbd6a8fc7eb92e4b9a576b8c16cbf3) )
ROM_LOAD32_BYTE( "136094-moto3.37j", 0x000003, 0x020000, CRC(44c3cd2a) SHA1(a16046586cbaa000e056115c92b5f22bf49869ad) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080a.12c", 0x10000, 0x4000, CRC(0b1e565c) SHA1(03bdeafd8cf680f76bbd1f9aba6efac27f19a93c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1678,10 +1677,10 @@ ROM_START( motofren )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1698,7 +1697,7 @@ ROM_START( motofrenmd )
ROM_LOAD32_BYTE( "136094-0223a.37e", 0x00002, 0x20000, CRC(cdb04a4a) SHA1(ee342bdb5654e8b841b1f60e46d1bcae7c4e5cd2) )
ROM_LOAD32_BYTE( "136094-0224a.37j", 0x00003, 0x20000, CRC(f3a9949f) SHA1(d3fa68fc63c505dd4c9d0e0c7f0625cc24ac9571) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080b.12c", 0x10000, 0x4000, CRC(5e542608) SHA1(8a10b5fac6ac120c7aae2edaa12413c9b8345d87) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1726,10 +1725,10 @@ ROM_START( motofrenmd )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1750,7 +1749,7 @@ ROM_START( motofrei )
ROM_LOAD32_BYTE( "136094-motoi2.37e", 0x000002, 0x020000, CRC(7a26217f) SHA1(1271a000e2976480a3b959609a5597498886be4f) )
ROM_LOAD32_BYTE( "136094-motoi3.37j", 0x000003, 0x020000, CRC(ff5ca6ad) SHA1(1e26db56940ce1db819d2179f4ce3962e0b5b732) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080a.12c", 0x10000, 0x4000, CRC(0b1e565c) SHA1(03bdeafd8cf680f76bbd1f9aba6efac27f19a93c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1778,10 +1777,10 @@ ROM_START( motofrei )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1799,7 +1798,7 @@ ROM_START( motofreg )
ROM_LOAD32_BYTE( "136094-motog2.37e", 0x000002, 0x020000, CRC(01400d54) SHA1(cd539497465857a804b5bc228bb0c93afd1e684e) )
ROM_LOAD32_BYTE( "136094-motog3.37j", 0x000003, 0x020000, CRC(c467c136) SHA1(9407bdf65ee6261e30227e6b87e2a35da8ee124e) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080a.12c", 0x10000, 0x4000, CRC(0b1e565c) SHA1(03bdeafd8cf680f76bbd1f9aba6efac27f19a93c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1827,10 +1826,10 @@ ROM_START( motofreg )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1848,7 +1847,7 @@ ROM_START( motofmdg )
ROM_LOAD32_BYTE( "136094-mdg2.37e", 0x000002, 0x020000, CRC(0b8bfe6e) SHA1(7220032a07928fd8a887c63ffcab4ec526733cae) )
ROM_LOAD32_BYTE( "136094-mdg3.37j", 0x000003, 0x020000, CRC(1dcd0d09) SHA1(0f6801694498688ed94588ac4b828ac56f3a16ec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080a.12c", 0x10000, 0x4000, CRC(0b1e565c) SHA1(03bdeafd8cf680f76bbd1f9aba6efac27f19a93c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1876,10 +1875,10 @@ ROM_START( motofmdg )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1896,7 +1895,7 @@ ROM_START( motofrenft )
ROM_LOAD32_BYTE( "136094-ft2.37e", 0x000002, 0x020000, CRC(30eb94bb) SHA1(b7a2b41570d2110aaedea8a3b9d120af31671bbd) )
ROM_LOAD32_BYTE( "136094-ft3.37j", 0x000003, 0x020000, CRC(a92e05e3) SHA1(354b6bbb058d10c4da55cb58bf05eae83350ba08) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080a.12c", 0x10000, 0x4000, CRC(0b1e565c) SHA1(03bdeafd8cf680f76bbd1f9aba6efac27f19a93c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1924,10 +1923,10 @@ ROM_START( motofrenft )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -1944,7 +1943,7 @@ ROM_START( motofrenmf )
ROM_LOAD32_BYTE( "136094-ftmd2.37e", 0x000002, 0x020000, CRC(769223fc) SHA1(acfafae3d81a6a3a4ff82c6381590ac31ad80f23) )
ROM_LOAD32_BYTE( "136094-ftmd3.37j", 0x000003, 0x020000, CRC(96382cc0) SHA1(ba2b6b105c552077767d1185886761fce3ec2885) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136094-0080a.12c", 0x10000, 0x4000, CRC(0b1e565c) SHA1(03bdeafd8cf680f76bbd1f9aba6efac27f19a93c) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -1972,10 +1971,10 @@ ROM_START( motofrenmf )
ROM_LOAD16_BYTE( "136094-0053a.35t", 0x600000, 0x80000, CRC(74320763) SHA1(9cbf61c51dd96dc3e4a4227f3080766b9482a16a) )
ROM_LOAD16_BYTE( "136094-0052a.35r", 0x600001, 0x80000, CRC(a7f9df2e) SHA1(c3e0c67081cf8f7b24350abf5a9adbb544ab44a7) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "136094-0082a.19e", 0x00000, 0x80000, CRC(fde543c4) SHA1(7d36d7f2f30d0ac40da77a36a47488d75474caaf) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -2035,14 +2034,14 @@ ROM_START( rrreveng )
/* all roms above are from this PCB however the sound board was missing - assumed to be the same */
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "rr65snd.bin", 0x10000, 0x4000, CRC(d78429da) SHA1(a4d36d74986f08c793f15f2e67cb97a8c91c5e90) )
ROM_CONTINUE( 0x04000, 0xc000 )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "rralpc0.bin", 0x00000, 0x80000, CRC(1f7b6ecf) SHA1(1787a2e89618e1338d70a54684dbc7d44c5f5559) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "rralpc1.bin", 0x00000, 0x80000, CRC(7ccd26d7) SHA1(1a74bdc66482896f5b9795d27383aa993e5fbaa4) )
ROM_END
@ -2054,7 +2053,7 @@ ROM_START( rrrevenga ) /* Same program roms as the set below, but shares more ro
ROM_LOAD32_BYTE( "rrprglh.37e", 0x00002, 0x20000, CRC(2b03a6fc) SHA1(7c95a0307b854bd37fd327ff1af1b69aa60fb2fd) )
ROM_LOAD32_BYTE( "rrprgll.37j", 0x00003, 0x20000, CRC(acf078da) SHA1(3506e105d3b208864ce12ab20e6250cb3a0005d6) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "rr65snd.bin", 0x10000, 0x4000, CRC(d78429da) SHA1(a4d36d74986f08c793f15f2e67cb97a8c91c5e90) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -2078,10 +2077,10 @@ ROM_START( rrrevenga ) /* Same program roms as the set below, but shares more ro
ROM_LOAD16_BYTE( "mo4h.31t", 0x400000, 0x80000, CRC(af6a027e) SHA1(08038bddb6aa7e97f013f9d3e508f5501821e460) )
ROM_LOAD16_BYTE( "mo4l.31r", 0x400001, 0x80000, CRC(9ebc5369) SHA1(ffd8418b328d99aa44fb1aed1db1aa6ac715c644) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "rralpc0.bin", 0x00000, 0x80000, CRC(1f7b6ecf) SHA1(1787a2e89618e1338d70a54684dbc7d44c5f5559) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "rralpc1.bin", 0x00000, 0x80000, CRC(7ccd26d7) SHA1(1a74bdc66482896f5b9795d27383aa993e5fbaa4) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -2114,7 +2113,7 @@ ROM_START( rrrevengb )
ROM_LOAD32_BYTE( "rrprglh.37e", 0x00002, 0x20000, CRC(2b03a6fc) SHA1(7c95a0307b854bd37fd327ff1af1b69aa60fb2fd) )
ROM_LOAD32_BYTE( "rrprgll.37j", 0x00003, 0x20000, CRC(acf078da) SHA1(3506e105d3b208864ce12ab20e6250cb3a0005d6) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "rr65snd.bin", 0x10000, 0x4000, CRC(d78429da) SHA1(a4d36d74986f08c793f15f2e67cb97a8c91c5e90) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -2138,10 +2137,10 @@ ROM_START( rrrevengb )
ROM_LOAD16_BYTE( "rrmo4h.31t", 0x400000, 0x80000, CRC(12bf3e11) SHA1(37b1a7fe0b50202030f5c1938b95a449bbd51add) )
ROM_LOAD16_BYTE( "rrmo4l.31r", 0x400001, 0x80000, CRC(a80175f6) SHA1(db621902fdfa99ec532713f4314c6cbb8353a773) )
ROM_REGION( 0x80000, "adpcml", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "rralpc0.bin", 0x00000, 0x80000, CRC(1f7b6ecf) SHA1(1787a2e89618e1338d70a54684dbc7d44c5f5559) )
ROM_REGION( 0x80000, "adpcmr", 0 )
ROM_REGION( 0x80000, "jsa:oki2", 0 )
ROM_LOAD( "rralpc1.bin", 0x00000, 0x80000, CRC(7ccd26d7) SHA1(1a74bdc66482896f5b9795d27383aa993e5fbaa4) )
ROM_REGION( 0x0600, "proms", 0 ) /* microcode for growth renderer */
@ -2176,16 +2175,12 @@ ROM_END
DRIVER_INIT_MEMBER(atarigx2_state,spclords)
{
atarijsa_init(machine(), "SERVICE", 0x0040);
m_playfield_base = 0x000;
}
DRIVER_INIT_MEMBER(atarigx2_state,motofren)
{
atarijsa_init(machine(), "SERVICE", 0x0040);
m_playfield_base = 0x400;
/*
L/W=!68.A23*!E.A22*!E.A21 = 000x xxxx = 000000-1fffff
@ -2218,8 +2213,6 @@ READ32_MEMBER(atarigx2_state::rrreveng_prot_r)
DRIVER_INIT_MEMBER(atarigx2_state,rrreveng)
{
atarijsa_init(machine(), "SERVICE", 0x0040);
m_playfield_base = 0x000;
m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32_delegate(FUNC(atarigx2_state::rrreveng_prot_r),this));

View File

@ -19,7 +19,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/batman.h"
@ -52,7 +51,6 @@ MACHINE_RESET_MEMBER(batman_state,batman)
atarigen_state::machine_reset();
atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 2);
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -85,8 +83,8 @@ WRITE16_MEMBER(batman_state::batman_atarivc_w)
READ16_MEMBER(batman_state::special_port2_r)
{
int result = ioport("260010")->read();
if (m_soundcomm->sound_to_main_ready()) result ^= 0x0010;
if (m_soundcomm->main_to_sound_ready()) result ^= 0x0020;
if (m_jsa->sound_to_main_ready()) result ^= 0x0010;
if (m_jsa->main_to_sound_ready()) result ^= 0x0020;
return result;
}
@ -98,9 +96,9 @@ WRITE16_MEMBER(batman_state::latch_w)
/* bit 4 is connected to the /RESET pin on the 6502 */
if (m_latch_data & 0x0010)
m_jsacpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
else
m_jsacpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
/* alpha bank is selected by the upper 4 bits */
if ((oldword ^ m_latch_data) & 0x7000)
@ -131,8 +129,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, batman_state )
AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x11ff8c) AM_READ_PORT("260000")
AM_RANGE(0x260002, 0x260003) AM_MIRROR(0x11ff8c) AM_READ_PORT("260002")
AM_RANGE(0x260010, 0x260011) AM_MIRROR(0x11ff8e) AM_READ(special_port2_r)
AM_RANGE(0x260030, 0x260031) AM_MIRROR(0x11ff8e) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260040, 0x260041) AM_MIRROR(0x11ff8e) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_MIRROR(0x11ff8e) AM_DEVREAD8("jsa", atari_jsa_iii_device, main_response_r, 0x00ff)
AM_RANGE(0x260040, 0x260041) AM_MIRROR(0x11ff8e) AM_DEVWRITE8("jsa", atari_jsa_iii_device, main_command_w, 0x00ff)
AM_RANGE(0x260050, 0x260051) AM_MIRROR(0x11ff8e) AM_WRITE(latch_w)
AM_RANGE(0x260060, 0x260061) AM_MIRROR(0x11ff8e) AM_WRITE(eeprom_enable_w)
AM_RANGE(0x2a0000, 0x2a0001) AM_MIRROR(0x11fffe) AM_WRITE(watchdog_reset16_w)
@ -176,8 +174,6 @@ static INPUT_PORTS_START( batman )
PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_UNUSED ) /* Output buffer full (@260040) */
PORT_SERVICE( 0x0040, IP_ACTIVE_LOW )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
INPUT_PORTS_END
@ -250,7 +246,11 @@ static MACHINE_CONFIG_START( batman, batman_state )
MCFG_VIDEO_START_OVERRIDE(batman_state,batman)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260010", 6)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -270,7 +270,7 @@ ROM_START( batman )
ROM_LOAD16_BYTE( "136085-2034.9r", 0x80000, 0x20000, CRC(05388c62) SHA1(de037203d94e72e2922c89256da080ae023ca0e7) )
ROM_LOAD16_BYTE( "136085-2035.5r", 0x80001, 0x20000, CRC(e77c92dd) SHA1(6d475092f7628114960d26b8ec1c5eae5e61ce25) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136085-1040.12c", 0x10000, 0x4000, CRC(080db83c) SHA1(ec084b7c1dc5878acd6d081e2e8b8d1e8b3d8a45) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -297,7 +297,7 @@ ROM_START( batman )
ROM_LOAD( "136085-1021.15c", 0x0c0000, 0x20000, CRC(9c8ef9ba) SHA1(c2540adfc227a654a3f91e2cfdcd98b3a04ae4fb) )
ROM_LOAD( "136085-1025.16c", 0x0e0000, 0x20000, CRC(5d30bcd1) SHA1(817e225511ab98e7575ee512d659c51fcb7716dc) )
ROM_REGION( 0x80000, "adpcm", 0 ) /* 1MB for ADPCM */
ROM_REGION( 0x80000, "jsa:oki1", 0 ) /* 1MB for ADPCM */
ROM_LOAD( "136085-1041.19e", 0x00000, 0x20000, CRC(d97d5dbb) SHA1(7609841c773e3d1ae5a21da81e3387260fd8da41) )
ROM_LOAD( "136085-1042.17e", 0x20000, 0x20000, CRC(8c496986) SHA1(07c84c68885e2ab3e81ee92942d6a0f29e4dffa8) )
ROM_LOAD( "136085-1043.15e", 0x40000, 0x20000, CRC(51812d3b) SHA1(6748fecef753179a9257c0da5a7b7c9648437208) )
@ -319,23 +319,10 @@ ROM_END
/*************************************
*
* Driver initialization
*
*************************************/
DRIVER_INIT_MEMBER(batman_state,batman)
{
atarijsa_init(machine(), "260010", 0x0040);
}
/*************************************
*
* Game driver(s)
*
*************************************/
GAME( 1991, batman, 0, batman, batman, batman_state, batman, ROT0, "Atari Games", "Batman", GAME_SUPPORTS_SAVE )
GAME( 1991, batman, 0, batman, batman, driver_device, 0, ROT0, "Atari Games", "Batman", GAME_SUPPORTS_SAVE )

View File

@ -173,7 +173,6 @@ void beathead_state::machine_reset()
{
/* reset the common subsystems */
atarigen_state::machine_reset();
atarijsa_reset(machine());
/* the code is temporarily mapped at 0 at startup */
/* just copying the first 0x40 bytes is sufficient */
@ -279,8 +278,8 @@ WRITE32_MEMBER( beathead_state::eeprom_enable_w )
READ32_MEMBER( beathead_state::input_2_r )
{
int result = ioport("IN2")->read();
if (m_soundcomm->sound_to_main_ready()) result ^= 0x10;
if (m_soundcomm->main_to_sound_ready()) result ^= 0x20;
if (m_jsa->sound_to_main_ready()) result ^= 0x10;
if (m_jsa->main_to_sound_ready()) result ^= 0x20;
return result;
}
@ -295,7 +294,7 @@ READ32_MEMBER( beathead_state::input_2_r )
WRITE32_MEMBER( beathead_state::sound_reset_w )
{
logerror("Sound reset = %d\n", !offset);
m_jsacpu->set_input_line(INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE);
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE);
}
@ -323,7 +322,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, beathead_state)
AM_RANGE(0x00000000, 0x0001ffff) AM_RAM AM_SHARE("ram_base")
AM_RANGE(0x01800000, 0x01bfffff) AM_ROM AM_REGION("user1", 0) AM_SHARE("rom_base")
AM_RANGE(0x40000000, 0x400007ff) AM_RAM_WRITE(eeprom_data_w) AM_SHARE("nvram")
AM_RANGE(0x41000000, 0x41000003) AM_DEVREADWRITE8("soundcomm", atari_sound_comm_device, main_response_r, main_command_w, 0x000000ff)
AM_RANGE(0x41000000, 0x41000003) AM_DEVREADWRITE8("jsa", atari_jsa_iii_device, main_response_r, main_command_w, 0x000000ff)
AM_RANGE(0x41000100, 0x41000103) AM_READ(interrupt_control_r)
AM_RANGE(0x41000100, 0x4100011f) AM_WRITE(interrupt_control_w)
AM_RANGE(0x41000200, 0x41000203) AM_READ_PORT("IN1")
@ -391,11 +390,10 @@ static INPUT_PORTS_START( beathead )
PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_COIN2 )
PORT_BIT( 0xfff0, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
PORT_MODIFY("JSAIII")
// to do
// PORT_MODIFY("jsa:JSAIII")
// coin 1+2 import from JSAIII not used - set to unused
PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
// PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -427,7 +425,11 @@ static MACHINE_CONFIG_START( beathead, beathead_state )
MCFG_PALETTE_LENGTH(32768)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN2", 6)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -439,7 +441,7 @@ MACHINE_CONFIG_END
*************************************/
ROM_START( beathead )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "bhsnd.bin", 0x10000, 0x4000, CRC(dfd33f02) SHA1(479a4838c89691d5a4654a4cd84b6433a9e86109) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -453,7 +455,7 @@ ROM_START( beathead )
ROM_LOAD32_BYTE( "bhpics2.bin", 0x200002, 0x80000, CRC(00b96481) SHA1(39daa46321c1d4f8bce8c25d0450b97f1f19dedb) )
ROM_LOAD32_BYTE( "bhpics3.bin", 0x200003, 0x80000, CRC(99c4f1db) SHA1(aba4440c5cdf413f970a0c65457e2d1b37caf2d6) )
ROM_REGION( 0x80000, "adpcm", 0 ) /* 1MB for ADPCM */
ROM_REGION( 0x80000, "jsa:oki1", 0 ) /* 1MB for ADPCM */
ROM_LOAD( "bhpcm0.bin", 0x00000, 0x20000, CRC(609ca626) SHA1(9bfc913fc4c3453b132595f8553245376bce3a51) )
ROM_LOAD( "bhpcm1.bin", 0x20000, 0x20000, CRC(35511509) SHA1(41294b81e253db5d2f30f8589dd59729a31bb2bb) )
ROM_LOAD( "bhpcm2.bin", 0x40000, 0x20000, CRC(f71a840a) SHA1(09d045552704cd1434307f9a36ce03c5c06a8ff6) )
@ -505,9 +507,6 @@ READ32_MEMBER( beathead_state::movie_speedup_r )
DRIVER_INIT_MEMBER(beathead_state,beathead)
{
/* initialize the common systems */
atarijsa_init(machine(), "IN2", 0x0040);
/* prepare the speedups */
m_speedup_data = m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000ae8, 0x00000aeb, 0, 0, read32_delegate(FUNC(beathead_state::speedup_r), this));
m_movie_speedup_data = m_maincpu->space(AS_PROGRAM).install_read_handler(0x00000804, 0x00000807, 0, 0, read32_delegate(FUNC(beathead_state::movie_speedup_r), this));

View File

@ -20,7 +20,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/blstroid.h"
@ -50,7 +49,6 @@ MACHINE_RESET_MEMBER(blstroid_state,blstroid)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -66,7 +64,7 @@ READ16_MEMBER(blstroid_state::inputs_r)
static const char *const iptnames[] = { "IN0", "IN1" };
int temp = ioport(iptnames[offset & 1])->read();
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x0040;
if (m_jsa->main_to_sound_ready()) temp ^= 0x0040;
if (get_hblank(*machine().primary_screen)) temp ^= 0x0010;
return temp;
}
@ -88,10 +86,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state )
AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x7f81fe) AM_WRITE(video_int_ack_w)
AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x7f81fe) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xff8800, 0xff89ff) AM_MIRROR(0x7f8000) AM_WRITEONLY AM_SHARE("priorityram")
AM_RANGE(0xff8a00, 0xff8a01) AM_MIRROR(0x7f81fe) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0xff8c00, 0xff8c01) AM_MIRROR(0x7f81fe) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xff8a00, 0xff8a01) AM_MIRROR(0x7f81fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff)
AM_RANGE(0xff8c00, 0xff8c01) AM_MIRROR(0x7f81fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w)
AM_RANGE(0xff8e00, 0xff8e01) AM_MIRROR(0x7f81fe) AM_WRITE(blstroid_halt_until_hblank_0_w)
AM_RANGE(0xff9400, 0xff9401) AM_MIRROR(0x7f83fe) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0xff9400, 0xff9401) AM_MIRROR(0x7f83fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL0")
AM_RANGE(0xff9804, 0xff9805) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL1")
AM_RANGE(0xff9c00, 0xff9c03) AM_MIRROR(0x7f83fc) AM_READ(inputs_r)
@ -140,8 +138,6 @@ static INPUT_PORTS_START( blstroid )
PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_i ) /* audio port */
INPUT_PORTS_END
@ -214,7 +210,14 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state )
MCFG_VIDEO_START_OVERRIDE(blstroid_state,blstroid)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ATARI_JSA_I_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN0", 7)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_DEVICE_REMOVE("jsa:pokey")
MCFG_DEVICE_REMOVE("jsa:tms")
MACHINE_CONFIG_END
@ -232,7 +235,7 @@ ROM_START( blstroid )
ROM_LOAD16_BYTE( "136057-4124.4c", 0x020000, 0x010000, CRC(fd2365df) SHA1(63ed3f9a92fed985f9ddb93687f11a24c8309f56) )
ROM_LOAD16_BYTE( "136057-4122.4b", 0x020001, 0x010000, CRC(c364706e) SHA1(e03cd60d139000607d83240b0b48865eafb1188b) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136057-1135.2k", 0x010000, 0x004000, CRC(baa8b5fe) SHA1(4af1f9bec3ffa856016a89bc20041d572305ba3a) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -269,7 +272,7 @@ ROM_START( blstroid3 )
ROM_LOAD16_BYTE( "136057-3124.4c", 0x020000, 0x010000, CRC(a9140c31) SHA1(02518bf998c0c74dff66f3192dcb1f91b1812cf8) )
ROM_LOAD16_BYTE( "136057-3122.4b", 0x020001, 0x010000, CRC(137fbb17) SHA1(3dda03ecdb2dc9a9cd78aeaa502497662496a26d) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136057-1135.2k", 0x010000, 0x004000, CRC(baa8b5fe) SHA1(4af1f9bec3ffa856016a89bc20041d572305ba3a) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -306,7 +309,7 @@ ROM_START( blstroid2 )
ROM_LOAD16_BYTE( "136057-2124.4c", 0x020000, 0x010000, CRC(d0fa38fe) SHA1(8aeae50dff6bcd14ac5faf10f15724b7f7430f5c) )
ROM_LOAD16_BYTE( "136057-2122.4b", 0x020001, 0x010000, CRC(744bf921) SHA1(bb9118bfc04745df2eb78e1d1e70f7fc2e0509d4) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136057-1135.2k", 0x010000, 0x004000, CRC(baa8b5fe) SHA1(4af1f9bec3ffa856016a89bc20041d572305ba3a) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -343,7 +346,7 @@ ROM_START( blstroidg )
ROM_LOAD16_BYTE( "136057-2224.4c", 0x020000, 0x010000, CRC(849249d4) SHA1(61d6eaff7df54f0353639e192eb6074a80916e29) )
ROM_LOAD16_BYTE( "136057-2222.4b", 0x020001, 0x010000, CRC(bdeaba0d) SHA1(f479514b5d9543f9e12aa1ac48e20bf054cb18d0) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136057-1135.2k", 0x010000, 0x004000, CRC(baa8b5fe) SHA1(4af1f9bec3ffa856016a89bc20041d572305ba3a) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -380,7 +383,7 @@ ROM_START( blstroidh )
ROM_LOAD16_BYTE( "eheadh1.c5", 0x20000, 0x10000, CRC(0b7a3cb6) SHA1(7dc585ff536055e85b0849aa075f2fdab34a8e1c) )
ROM_LOAD16_BYTE( "eheadl1.b5", 0x20001, 0x10000, CRC(43971694) SHA1(a39a8da244645bb56081fd71609a33d8b7d78478) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136057-1135.2k", 0x010000, 0x004000, CRC(baa8b5fe) SHA1(4af1f9bec3ffa856016a89bc20041d572305ba3a) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -419,7 +422,6 @@ ROM_END
DRIVER_INIT_MEMBER(blstroid_state,blstroid)
{
atarijsa_init(machine(), "IN0", 0x80);
}

View File

@ -22,7 +22,6 @@
#include "emu.h"
#include "sound/2151intf.h"
#include "rendlay.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/cyberbal.h"
@ -77,7 +76,6 @@ MACHINE_RESET_MEMBER(cyberbal_state,cyberbal2p)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -99,7 +97,7 @@ READ16_MEMBER(cyberbal_state::special_port0_r)
READ16_MEMBER(cyberbal_state::special_port2_r)
{
int temp = ioport("IN2")->read();
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x2000;
if (m_jsa->main_to_sound_ready()) temp ^= 0x2000;
return temp;
}
@ -107,7 +105,7 @@ READ16_MEMBER(cyberbal_state::special_port2_r)
READ16_MEMBER(cyberbal_state::sound_state_r)
{
int temp = 0xffff;
if (m_soundcomm->main_to_sound_ready()) temp ^= 0xffff;
if (m_jsa->main_to_sound_ready()) temp ^= 0xffff;
return temp;
}
@ -237,14 +235,14 @@ static ADDRESS_MAP_START( cyberbal2p_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0xfc0000, 0xfc0003) AM_READ_PORT("IN0")
AM_RANGE(0xfc2000, 0xfc2003) AM_READ_PORT("IN1")
AM_RANGE(0xfc4000, 0xfc4003) AM_READ(special_port2_r)
AM_RANGE(0xfc6000, 0xfc6003) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0xff00)
AM_RANGE(0xfc6000, 0xfc6003) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0xff00)
AM_RANGE(0xfc8000, 0xfc8fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0xfca000, 0xfcafff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0xfd0000, 0xfd0003) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xfd2000, 0xfd2003) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xfd2000, 0xfd2003) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0xfd4000, 0xfd4003) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xfd6000, 0xfd6003) AM_WRITE(video_int_ack_w)
AM_RANGE(0xfd8000, 0xfd8003) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0xff00)
AM_RANGE(0xfd8000, 0xfd8003) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0xff00)
AM_RANGE(0xfe0000, 0xfe0003) AM_READ(sound_state_r)
AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
@ -299,7 +297,7 @@ static INPUT_PORTS_START( cyberbal )
PORT_BIT( 0xffff, IP_ACTIVE_LOW, IPT_UNUSED )
/* 2008-06 FP: I tag this as JSAII (even if it's not) to simplify cyberbal_special_port3_r */
PORT_START("JSAII") /* audio board port */
PORT_START("jsa:JSAII") /* audio board port */
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_COIN4 )
@ -335,8 +333,6 @@ static INPUT_PORTS_START( cyberbal2p )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_SERVICE( 0x8000, IP_ACTIVE_LOW )
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
INPUT_PORTS_END
@ -486,7 +482,11 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal2p)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN2", 15)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -677,7 +677,7 @@ ROM_START( cyberbal2p )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136071-1042.1b", 0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -705,7 +705,7 @@ ROM_START( cyberbal2p )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@ -727,7 +727,7 @@ ROM_START( cyberbal2p3 )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136071-1042.1b", 0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -755,7 +755,7 @@ ROM_START( cyberbal2p3 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@ -777,7 +777,7 @@ ROM_START( cyberbal2p2 )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136071-1042.1b", 0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -805,7 +805,7 @@ ROM_START( cyberbal2p2 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@ -827,7 +827,7 @@ ROM_START( cyberbal2p1 )
ROM_LOAD16_BYTE( "136071-1025.27c", 0x060000, 0x010000, CRC(95ff68c6) SHA1(43f716a4c44fe1a38fcc6e2600bac948bb603504) )
ROM_LOAD16_BYTE( "136071-1026.27d", 0x060001, 0x010000, CRC(f61c4898) SHA1(9e4a14eac6d197f63c3392af3d804e81c034cb09) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136071-1042.1b", 0x010000, 0x004000, CRC(e63cf125) SHA1(449880f561660ba67ac2d7f8ce6333768e0ae0be) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -855,7 +855,7 @@ ROM_START( cyberbal2p1 )
ROM_LOAD( "136071-1017.32n", 0x000000, 0x010000, CRC(a4c116f9) SHA1(fc7becef35306ef99ffbd0cd9202759352eb6cbe) )
ROM_LOAD( "136071-1018.32l", 0x010000, 0x010000, CRC(e25d7847) SHA1(3821c62f9bdc04eb774c2210a84e26b36f2e163d) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136071-1043.7k", 0x000000, 0x010000, CRC(94f24575) SHA1(b93b326e15cd328362ce409b7c0cc42b8a28c701) )
ROM_LOAD( "136071-1044.7j", 0x010000, 0x010000, CRC(87208e1e) SHA1(3647867ddc36df7633ed740c0b9365a979ef5621) )
ROM_LOAD( "136071-1045.7e", 0x020000, 0x010000, CRC(f82558b9) SHA1(afbecccc6203db9bdcf60638e0f4e95040d7aaf2) )
@ -991,7 +991,6 @@ DRIVER_INIT_MEMBER(cyberbal_state,cyberbalt)
DRIVER_INIT_MEMBER(cyberbal_state,cyberbal2p)
{
atarijsa_init(machine(), "IN2", 0x8000);
}

View File

@ -25,7 +25,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/eprom.h"
@ -52,7 +51,6 @@ MACHINE_RESET_MEMBER(eprom_state,eprom)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -67,8 +65,8 @@ READ16_MEMBER(eprom_state::special_port1_r)
{
int result = ioport("260010")->read();
if (m_soundcomm->sound_to_main_ready()) result ^= 0x0004;
if (m_soundcomm->main_to_sound_ready()) result ^= 0x0008;
if (m_jsa->sound_to_main_ready()) result ^= 0x0004;
if (m_jsa->main_to_sound_ready()) result ^= 0x0008;
result ^= 0x0010;
return result;
@ -152,12 +150,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_base_device, main_response_r, 0x00ff)
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_base_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_base_device, main_command_w, 0x00ff)
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
AM_RANGE(0x3f0000, 0x3f1fff) AM_WRITE(playfield_w) AM_SHARE("playfield")
AM_RANGE(0x3f2000, 0x3f3fff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
@ -177,12 +175,12 @@ static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0x00ff)
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
// AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0x00ff)
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
AM_RANGE(0xff0000, 0xff1fff) AM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
AM_RANGE(0xff8000, 0xff9fff) AM_WRITE(playfield_w) AM_SHARE("playfield")
@ -208,11 +206,11 @@ static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_base_device, main_response_r, 0x00ff)
AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_base_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_base_device, main_command_w, 0x00ff)
ADDRESS_MAP_END
@ -260,8 +258,6 @@ static INPUT_PORTS_START( eprom )
PORT_START("ADC3") /* ADC1 @ 0x260026 */
PORT_BIT( 0x00ff, 0x0080, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(2)
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_i ) /* audio port */
INPUT_PORTS_END
@ -292,8 +288,6 @@ static INPUT_PORTS_START( klaxp )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
INPUT_PORTS_END
@ -334,8 +328,6 @@ static INPUT_PORTS_START( guts )
PORT_START("ADC3") /* ADC1 @ 0x260026 */
PORT_BIT( 0x00ff, 0x0080, IPT_AD_STICK_X ) PORT_MINMAX(0x10,0xf0) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_PLAYER(2) PORT_REVERSE
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
INPUT_PORTS_END
@ -419,7 +411,12 @@ static MACHINE_CONFIG_START( eprom, eprom_state )
MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_mono_speech)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_I_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260010", 1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_DEVICE_REMOVE("jsa:pokey")
MACHINE_CONFIG_END
@ -449,7 +446,11 @@ static MACHINE_CONFIG_START( klaxp, eprom_state )
MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260010", 1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -479,7 +480,11 @@ static MACHINE_CONFIG_START( guts, eprom_state )
MCFG_VIDEO_START_OVERRIDE(eprom_state,guts)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260010", 1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -506,7 +511,7 @@ ROM_START( eprom )
ROM_LOAD16_BYTE( "136069-2034.10u", 0x00001, 0x10000, CRC(5d7afca2) SHA1(a37ecd2909049dd0b3ddbe602f0173c44b065f6f) )
ROM_COPY( "maincpu", 0x60000, 0x60000, 0x20000 )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136069-1040.7b", 0x10000, 0x4000, CRC(86e93695) SHA1(63ddab02df139dd41a8260c303798b2a550b9fe6) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -559,7 +564,7 @@ ROM_START( eprom2 )
ROM_LOAD16_BYTE( "136069-1034.10u", 0x00001, 0x10000, CRC(c68f58dd) SHA1(0ec300f32e67b710ac33efb60b8eccceb43faca6) )
ROM_COPY( "maincpu", 0x60000, 0x60000, 0x20000 )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136069-1040.7b", 0x10000, 0x4000, CRC(86e93695) SHA1(63ddab02df139dd41a8260c303798b2a550b9fe6) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -599,7 +604,7 @@ ROM_START( klaxp1 )
ROM_LOAD16_BYTE( "klax_ft1.50a", 0x00000, 0x10000, CRC(87ee72d1) SHA1(39ae6f8406f0768480bcc80d395a14d9c2c65dca) )
ROM_LOAD16_BYTE( "klax_ft1.40a", 0x00001, 0x10000, CRC(ba139fdb) SHA1(98a8ac5e0349b934f55d0d9de85abacd3fd0d77d) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "klaxsnd.10c", 0x10000, 0x4000, CRC(744734cb) SHA1(3630428d69ddd2a4d5dd76bb4ee9485c943129e9) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -612,7 +617,7 @@ ROM_START( klaxp1 )
ROM_REGION( 0x04000, "gfx2", 0 )
ROM_LOAD( "klax125d", 0x00000, 0x04000, CRC(409d818e) SHA1(63dcde3ce87c1a9d5afef8089432c499cc70f8f0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* ADPCM data */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* ADPCM data */
ROM_LOAD( "klaxadp0.1f", 0x00000, 0x10000, CRC(ba1e864f) SHA1(7c45e9040701b54c8be398c6e5cdf9201dc37c17) )
ROM_LOAD( "klaxadp1.1e", 0x10000, 0x10000, CRC(dec9a5ac) SHA1(8039d946ac3613fa6193b557cc8775c81871831d) )
ROM_END
@ -623,7 +628,7 @@ ROM_START( klaxp2 )
ROM_LOAD16_BYTE( "klax_ft2.50a", 0x00000, 0x10000, CRC(7d401937) SHA1(8db0560528a86b9cb01c4598a49694bd44b00dba) )
ROM_LOAD16_BYTE( "klax_ft2.40a", 0x00001, 0x10000, CRC(c5ca33a9) SHA1(c2e2948f987ba43f61c043baed06ffea8787be43) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "klaxsnd.10c", 0x10000, 0x4000, CRC(744734cb) SHA1(3630428d69ddd2a4d5dd76bb4ee9485c943129e9) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -636,7 +641,7 @@ ROM_START( klaxp2 )
ROM_REGION( 0x04000, "gfx2", 0 )
ROM_LOAD( "klax125d", 0x00000, 0x04000, CRC(409d818e) SHA1(63dcde3ce87c1a9d5afef8089432c499cc70f8f0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* ADPCM data */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* ADPCM data */
ROM_LOAD( "klaxadp0.1f", 0x00000, 0x10000, CRC(ba1e864f) SHA1(7c45e9040701b54c8be398c6e5cdf9201dc37c17) )
ROM_LOAD( "klaxadp1.1e", 0x10000, 0x10000, CRC(dec9a5ac) SHA1(8039d946ac3613fa6193b557cc8775c81871831d) )
ROM_END
@ -649,7 +654,7 @@ ROM_START( guts )
ROM_LOAD16_BYTE( "guts-hi1.50b", 0x20000, 0x10000, CRC(a231f65d) SHA1(9c8ccd265ed0e9f6d7181d216ed41a0c5cc0cd5f) )
ROM_LOAD16_BYTE( "guts-lo1.40b", 0x20001, 0x10000, CRC(dbdd4910) SHA1(9ca22321398b6397902aa99a3ef46f1a78ccc438) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "guts-snd.10c", 0x10000, 0x4000, CRC(9fe065d7) SHA1(0d202af3d6c62fdcfc3bb2ea95bbf4e37c0d43cf) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -688,7 +693,7 @@ ROM_START( guts )
ROM_LOAD( "guts-pfd.bin", 0xd0000, 0x10000, CRC(979af5b2) SHA1(574a41552eb641668841cf01aeed442ccd3bc8e5) )
ROM_LOAD( "guts-pfe.bin", 0xe0000, 0x10000, CRC(bf384e4d) SHA1(c4810b5a3ee754b169efa01f06941a02b50c53a0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* ADPCM data */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* ADPCM data */
ROM_LOAD( "guts-adpcm0.1f", 0x00000, 0x10000, CRC(92e9c35d) SHA1(dcc724f915e113bc34f499af9fd7c8ebb6d8ba98) )
ROM_LOAD( "guts-adpcm1.1e", 0x10000, 0x10000, CRC(0afddd3a) SHA1(e1a43825ad02325a64869ec8048c8176da01b286) )
ROM_END
@ -703,8 +708,6 @@ ROM_END
DRIVER_INIT_MEMBER(eprom_state,eprom)
{
atarijsa_init(machine(), "260010", 0x0002);
/* install CPU synchronization handlers */
m_sync_data = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x16cc00, 0x16cc01, read16_delegate(FUNC(eprom_state::sync_r),this), write16_delegate(FUNC(eprom_state::sync_w),this));
m_sync_data = m_extra->space(AS_PROGRAM).install_readwrite_handler(0x16cc00, 0x16cc01, read16_delegate(FUNC(eprom_state::sync_r),this), write16_delegate(FUNC(eprom_state::sync_w),this));
@ -713,13 +716,11 @@ DRIVER_INIT_MEMBER(eprom_state,eprom)
DRIVER_INIT_MEMBER(eprom_state,klaxp)
{
atarijsa_init(machine(), "260010", 0x0002);
}
DRIVER_INIT_MEMBER(eprom_state,guts)
{
atarijsa_init(machine(), "260010", 0x0002);
}

View File

@ -326,7 +326,6 @@ Notes:
#include "emu.h"
#include "machine/atarigen.h"
#include "machine/asic65.h"
#include "audio/atarijsa.h"
#include "sound/dac.h"
#include "includes/slapstic.h"
#include "includes/harddriv.h"
@ -475,7 +474,6 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x600000, 0x603fff) AM_DEVREADWRITE8("soundcomm", atari_sound_comm_device, main_response_r, main_command_w, 0xff00)
AM_RANGE(0x604000, 0x607fff) AM_READWRITE_LEGACY(hd68k_sound_reset_r, hd68k_nwr_w)
AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE_LEGACY(hd68k_port0_r, hd68k_irq_ack_w)
@ -1027,11 +1025,11 @@ static INPUT_PORTS_START( stunrun )
PORT_START("12BADC3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
/* stunrun has its own coins */
PORT_MODIFY("JSAII")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
// todo
// PORT_MODIFY("jsa:JSAII")/
// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
// PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -1117,11 +1115,11 @@ static INPUT_PORTS_START( steeltal )
PORT_START("12BADC3") /* b80000 - 12 bit ADC 3 */
PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_NAME("Rudder") PORT_PLAYER(2) /* rudder */
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
/* steeltal has its own coins */
PORT_MODIFY("JSAIII")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
// todo
// PORT_MODIFY("jsa:JSAIII")
// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
// PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
INPUT_PORTS_END
@ -1570,11 +1568,17 @@ static MACHINE_CONFIG_DERIVED( stunrun, multisync_nomsp )
MCFG_CPU_MODIFY("gsp")
MCFG_CPU_CONFIG(gsp_config_multisync_stunrun)
MCFG_FRAGMENT_ADD( adsp ) /* ADSP board */
MCFG_FRAGMENT_ADD( jsa_ii_mono ) /* JSA II sound board */
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_RAW_PARAMS(5000000*2, 317*2, 0, 256*2, 262, 0, 228)
/* sund hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN0", 5)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -1589,8 +1593,14 @@ static MACHINE_CONFIG_DERIVED( steeltal, multisync_msp )
MCFG_DEVICE_REMOVE("lspeaker")
MCFG_DEVICE_REMOVE("rspeaker")
MCFG_FRAGMENT_ADD( jsa_iii_mono ) /* JSA III sound board */
MCFG_FRAGMENT_ADD( asic65 ) /* ASIC65 on DSPCOM board */
/* sund hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("IN0", 5)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -2126,7 +2136,7 @@ ROM_START( stunrun )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2138,7 +2148,7 @@ ROM_START( stunrun )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2164,7 +2174,7 @@ ROM_START( stunrunj )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2176,7 +2186,7 @@ ROM_START( stunrunj )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2202,7 +2212,7 @@ ROM_START( stunrun5 )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2214,7 +2224,7 @@ ROM_START( stunrun5 )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2240,7 +2250,7 @@ ROM_START( stunrune )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2252,7 +2262,7 @@ ROM_START( stunrune )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2278,7 +2288,7 @@ ROM_START( stunrun4 )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2290,7 +2300,7 @@ ROM_START( stunrun4 )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2316,7 +2326,7 @@ ROM_START( stunrun3 )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2328,7 +2338,7 @@ ROM_START( stunrun3 )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2354,7 +2364,7 @@ ROM_START( stunrun3e )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2366,7 +2376,7 @@ ROM_START( stunrun3e )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2392,7 +2402,7 @@ ROM_START( stunrun2 )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2404,7 +2414,7 @@ ROM_START( stunrun2 )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2430,7 +2440,7 @@ ROM_START( stunrun2e )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2442,7 +2452,7 @@ ROM_START( stunrun2e )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2468,7 +2478,7 @@ ROM_START( stunrun0 )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2480,7 +2490,7 @@ ROM_START( stunrun0 )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -2506,7 +2516,7 @@ ROM_START( stunrunp )
ROM_LOAD16_BYTE( "136070-2112.200w", 0x0a0000, 0x010000, CRC(3f896aaf) SHA1(817136ddc37566108de15f6bfedc6e0da13a2df2) )
ROM_LOAD16_BYTE( "136070-2111.210w", 0x0a0001, 0x010000, CRC(47f010ad) SHA1(a2587ce1d01c78f1d757fb3e4512be9655d17f9c) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136070-2123.10c", 0x010000, 0x004000, CRC(121ab09a) SHA1(c26b8ddbcb011416e6ab695980d2cf37e672e973) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -2518,7 +2528,7 @@ ROM_START( stunrunp )
ROM_LOAD16_BYTE( "136070-2120.9h", 0x040000, 0x010000, CRC(55a30976) SHA1(045a04d3d24e783a6a643cab08e8974ee5dc2128) )
ROM_LOAD16_BYTE( "136070-2117.9k", 0x040001, 0x010000, CRC(d4a9696d) SHA1(574e5f3758ac2e18423ae350e8509aa135ca6da0) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136070-2124.1fh", 0x000000, 0x010000, CRC(4dc14fe8) SHA1(c7cc00715f6687ced9d69ec793d6e9d4bc1b5287) )
ROM_LOAD( "136070-2125.1ef", 0x010000, 0x010000, CRC(cbdabbcc) SHA1(4d102a5677d96e68d27c1960dc3a237ae6751c2f) )
ROM_LOAD( "136070-2126.1de", 0x020000, 0x010000, CRC(b973d9d1) SHA1(a74a3c981497a9c5557f793d49381a9b776cb025) )
@ -3609,7 +3619,7 @@ ROM_START( steeltal )
ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -3623,7 +3633,7 @@ ROM_START( steeltal )
ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
@ -3670,7 +3680,7 @@ ROM_START( steeltalg )
ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -3684,7 +3694,7 @@ ROM_START( steeltalg )
ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
@ -3731,7 +3741,7 @@ ROM_START( steeltal1 )
ROM_LOAD16_BYTE( "136087-1016.200y", 0x0e0000, 0x010000, CRC(db62362e) SHA1(e1d392aa00ac36296728257fa26c6aa68a4ebe5f) )
ROM_LOAD16_BYTE( "136087-1015.210y", 0x0e0001, 0x010000, CRC(ef517db7) SHA1(16e7e351326391480bf36c58d6b34ef4128b6627) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -3745,7 +3755,7 @@ ROM_START( steeltal1 )
ROM_LOAD16_BYTE( "136087-1018.2t", 0x000000, 0x020000, CRC(a5882384) SHA1(157707b5b114fa584893dec07dc456d4a5520f44) )
ROM_LOAD16_BYTE( "136087-1017.2lm", 0x000001, 0x020000, CRC(0a29db30) SHA1(f11ad7fe27989ffd66e9bef2c14ec040a4125d8a) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
@ -3792,7 +3802,7 @@ ROM_START( steeltalp )
ROM_LOAD16_BYTE( "rom-200y.bin", 0xe0000, 0x10000, CRC(b568e1be) SHA1(5d62037892e040515e4262db43057f33436fa12d) )
ROM_LOAD16_BYTE( "rom-210y.bin", 0xe0001, 0x10000, CRC(3f5cdd3e) SHA1(c33c155158a5c69a7f2e61cd88b297dc14ecd479) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136087-5001.1f", 0x010000, 0x004000, CRC(c52d8218) SHA1(3511c8c65583c7e44242f4cc48d7cc46fc748868) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -3806,7 +3816,7 @@ ROM_START( steeltalp )
ROM_LOAD16_BYTE( "rom.2t", 0x00000, 0x20000, CRC(05284504) SHA1(03b81c077f8ff073713f4bcc10b82087743b0d84) )
ROM_LOAD16_BYTE( "rom.2lm", 0x00001, 0x20000, CRC(d6e65b87) SHA1(ac4b2f292f6e28a15e3a12f09f6c2f9523e8b178) )
ROM_REGION( 0x80000, "adpcm", 0 )
ROM_REGION( 0x80000, "jsa:oki1", 0 )
ROM_LOAD( "136087-5002.1m", 0x000000, 0x020000, CRC(c904db9c) SHA1(d25fff3da87d2b716cd65fb7dd157c3f1f5e5909) )
ROM_LOAD( "136087-5003.1n", 0x020000, 0x020000, CRC(164580b3) SHA1(03118c8323d8a49a65addc61c1402d152d42d7f9) )
ROM_LOAD( "136087-5004.1p", 0x040000, 0x020000, CRC(296290a0) SHA1(8a3441a5618233f561531fe456e1f5ed22183421) )
@ -4033,6 +4043,10 @@ static void init_multisync(running_machine &machine, int compact_inputs)
/* note that we're multisync */
state->m_gsp_multisync = TRUE;
// if we have a JSA board, install the read/write handlers
if (state->m_jsa != NULL)
state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(FUNC(atari_jsa_base_device::main_response_r),state->m_jsa.target()), write8_delegate(FUNC(atari_jsa_base_device::main_command_w),state->m_jsa.target()), 0xff00);
/* install handlers for the compact driving games' inputs */
if (compact_inputs)
{
@ -4316,7 +4330,6 @@ DRIVER_INIT_MEMBER(harddriv_state,stunrun)
/* initialize the boards */
init_multisync(machine(), 0);
init_adsp(machine());
atarijsa_init(machine(), "IN0", 0x0020);
/* set up gsp speedup handler */
m_gsp_speedup_addr[0] = m_gsp->space(AS_PROGRAM).install_legacy_write_handler(0xfff9fc00, 0xfff9fc0f, FUNC(hdgsp_speedup1_w));
@ -4414,7 +4427,6 @@ static void steeltal_init_common(running_machine &machine, offs_t ds3_transfer_p
init_multisync(machine, 0);
init_ds3(machine);
init_dspcom(machine);
atarijsa_init(machine, "IN0", 0x0020);
state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(FUNC(harddriv_state::steeltal_dummy_r),state));

View File

@ -19,7 +19,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/offtwall.h"
@ -49,7 +48,6 @@ MACHINE_RESET_MEMBER(offtwall_state,offtwall)
{
atarigen_state::machine_reset();
atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 1);
atarijsa_reset(machine());
}
@ -82,7 +80,7 @@ WRITE16_MEMBER(offtwall_state::offtwall_atarivc_w)
READ16_MEMBER(offtwall_state::special_port3_r)
{
int result = ioport("260010")->read();
if (m_soundcomm->main_to_sound_ready()) result ^= 0x0020;
if (m_jsa->main_to_sound_ready()) result ^= 0x0020;
return result;
}
@ -93,8 +91,9 @@ WRITE16_MEMBER(offtwall_state::io_latch_w)
if (ACCESSING_BITS_0_7)
{
/* bit 4 resets the sound CPU */
m_jsacpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
if (!(data & 0x10)) atarijsa_reset(machine());
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
if (!(data & 0x10))
m_jsa->reset();
}
logerror("sound control = %04X\n", data);
@ -270,8 +269,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, offtwall_state )
AM_RANGE(0x260020, 0x260021) AM_READ_PORT("260020")
AM_RANGE(0x260022, 0x260023) AM_READ_PORT("260022")
AM_RANGE(0x260024, 0x260025) AM_READ_PORT("260024")
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260040, 0x260041) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_iii_device, main_response_r, 0x00ff)
AM_RANGE(0x260040, 0x260041) AM_DEVWRITE8("jsa", atari_jsa_iii_device, main_command_w, 0x00ff)
AM_RANGE(0x260050, 0x260051) AM_WRITE(io_latch_w)
AM_RANGE(0x260060, 0x260061) AM_WRITE(eeprom_enable_w)
AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(watchdog_reset16_w)
@ -351,8 +350,6 @@ static INPUT_PORTS_START( offtwall )
PORT_START("260024")
PORT_BIT( 0xff, 0, IPT_DIAL_V ) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_REVERSE PORT_PLAYER(3)
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_iii ) /* audio board port */
INPUT_PORTS_END
@ -410,7 +407,12 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state )
MCFG_VIDEO_START_OVERRIDE(offtwall_state,offtwall)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_iii_mono_noadpcm)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_III_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260010", 6)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_DEVICE_REMOVE("jsa:oki1")
MACHINE_CONFIG_END
@ -426,7 +428,7 @@ ROM_START( offtwall )
ROM_LOAD16_BYTE( "otw2012.bin", 0x00000, 0x20000, CRC(d08d81eb) SHA1(5a72aa2e4fc6455b94aa59a7719d0ddc8bcc80f2) )
ROM_LOAD16_BYTE( "otw2013.bin", 0x00001, 0x20000, CRC(61c2553d) SHA1(343d39f9b75fd236e9769ec21ab65310f85e31ca) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "otw1020.bin", 0x10000, 0x4000, CRC(488112a5) SHA1(55e84855daacfa303d1031de8c9adb992a846e21) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -448,7 +450,7 @@ ROM_START( offtwallc )
ROM_LOAD16_BYTE( "090-2612.rom", 0x00000, 0x20000, CRC(fc891a3f) SHA1(027815a20fbc6c0c9242768581b97362b39941c2) )
ROM_LOAD16_BYTE( "090-2613.rom", 0x00001, 0x20000, CRC(805d79d4) SHA1(943ec9f408ba875bdf1794ce7d24803043480401) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "otw1020.bin", 0x10000, 0x4000, CRC(488112a5) SHA1(55e84855daacfa303d1031de8c9adb992a846e21) )
ROM_CONTINUE( 0x04000, 0xc000 )
@ -474,8 +476,6 @@ ROM_END
DRIVER_INIT_MEMBER(offtwall_state,offtwall)
{
atarijsa_init(machine(), "260010", 0x0040);
/* install son-of-slapstic workarounds */
m_spritecache_count = m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(FUNC(offtwall_state::spritecache_count_r),this));
m_bankswitch_base = m_maincpu->space(AS_PROGRAM).install_read_handler(0x037ec2, 0x037f39, read16_delegate(FUNC(offtwall_state::bankswitch_r),this));
@ -485,8 +485,6 @@ DRIVER_INIT_MEMBER(offtwall_state,offtwall)
DRIVER_INIT_MEMBER(offtwall_state,offtwalc)
{
atarijsa_init(machine(), "260010", 0x0040);
/* install son-of-slapstic workarounds */
m_spritecache_count = m_maincpu->space(AS_PROGRAM).install_read_handler(0x3fde42, 0x3fde43, read16_delegate(FUNC(offtwall_state::spritecache_count_r),this));
m_bankswitch_base = m_maincpu->space(AS_PROGRAM).install_read_handler(0x037eca, 0x037f43, read16_delegate(FUNC(offtwall_state::bankswitch_r),this));

View File

@ -19,7 +19,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/skullxbo.h"
@ -73,7 +72,6 @@ MACHINE_RESET_MEMBER(skullxbo_state,skullxbo)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -87,7 +85,7 @@ MACHINE_RESET_MEMBER(skullxbo_state,skullxbo)
READ16_MEMBER(skullxbo_state::special_port1_r)
{
int temp = ioport("FF5802")->read();
if (m_soundcomm->main_to_sound_ready()) temp ^= 0x0040;
if (m_jsa->main_to_sound_ready()) temp ^= 0x0040;
if (get_hblank(*machine().primary_screen)) temp ^= 0x0010;
return temp;
}
@ -119,8 +117,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, skullxbo_state )
AM_RANGE(0xff0800, 0xff0bff) AM_WRITE(skullxbo_halt_until_hblank_0_w)
AM_RANGE(0xff0c00, 0xff0fff) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xff1000, 0xff13ff) AM_WRITE(video_int_ack_w)
AM_RANGE(0xff1400, 0xff17ff) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0xff1800, 0xff1bff) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xff1400, 0xff17ff) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0x00ff)
AM_RANGE(0xff1800, 0xff1bff) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0xff1c00, 0xff1c7f) AM_WRITE(skullxbo_playfieldlatch_w)
AM_RANGE(0xff1c80, 0xff1cff) AM_WRITE(skullxbo_xscroll_w) AM_SHARE("xscroll")
AM_RANGE(0xff1d00, 0xff1d7f) AM_WRITE(scanline_int_ack_w)
@ -133,7 +131,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, skullxbo_state )
AM_RANGE(0xff4000, 0xff47ff) AM_WRITE(skullxbo_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0xff4800, 0xff4fff) AM_WRITE(skullxbo_mobwr_w)
AM_RANGE(0xff6000, 0xff6fff) AM_WRITE(eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0xff5000, 0xff5001) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0xff5000, 0xff5001) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0x00ff)
AM_RANGE(0xff5800, 0xff5801) AM_READ_PORT("FF5800")
AM_RANGE(0xff5802, 0xff5803) AM_READ(special_port1_r)
AM_RANGE(0xff6000, 0xff6fff) AM_READ(eeprom_r)
@ -179,8 +177,6 @@ static INPUT_PORTS_START( skullxbo )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
INPUT_PORTS_END
@ -267,7 +263,11 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state )
MCFG_VIDEO_START_OVERRIDE(skullxbo_state,skullxbo)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("FF5802", 7)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -289,7 +289,7 @@ ROM_START( skullxbo )
ROM_LOAD16_BYTE( "136072-1156.185a", 0x070000, 0x008000, CRC(cde16b55) SHA1(bf5059f0f73a8819551fb3ded3cb6a3123841481) )
ROM_LOAD16_BYTE( "136072-1157.185c", 0x070001, 0x008000, CRC(31c77376) SHA1(19eb54d73edb25fda6803df896e182d05c5bad7e) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136072-1149.1b", 0x010000, 0x004000, CRC(8d730e7a) SHA1(b89fb9cadcf813ea5cba55f1efcdcdd2517944c7) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -334,7 +334,7 @@ ROM_START( skullxbo )
ROM_REGION( 0x008000, "gfx3", 0 )
ROM_LOAD( "136072-2141.250k", 0x000000, 0x008000, CRC(60d6d6df) SHA1(a8d56092f014a0a93742c701effaec86c75772e1) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136072-1145.7k", 0x000000, 0x010000, CRC(d9475d58) SHA1(5a4a0094c83f5d0e26f0c35feb0b1f15a5f5c3f9) )
ROM_LOAD( "136072-1146.7j", 0x010000, 0x010000, CRC(133e6aef) SHA1(e393d0b246889779029443a19e3859d45cb900db) )
ROM_LOAD( "136072-1147.7e", 0x020000, 0x010000, CRC(ba4d556e) SHA1(af4364f2c456abc20f1742c945a3acfeb5e192c4) )
@ -353,7 +353,7 @@ ROM_START( skullxbo4 )
ROM_LOAD16_BYTE( "136072-1156.185a", 0x070000, 0x008000, CRC(cde16b55) SHA1(bf5059f0f73a8819551fb3ded3cb6a3123841481) )
ROM_LOAD16_BYTE( "136072-1157.185c", 0x070001, 0x008000, CRC(31c77376) SHA1(19eb54d73edb25fda6803df896e182d05c5bad7e) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136072-1149.1b", 0x010000, 0x004000, CRC(8d730e7a) SHA1(b89fb9cadcf813ea5cba55f1efcdcdd2517944c7) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -398,7 +398,7 @@ ROM_START( skullxbo4 )
ROM_REGION( 0x008000, "gfx3", 0 )
ROM_LOAD( "136072-2141.250k", 0x000000, 0x008000, CRC(60d6d6df) SHA1(a8d56092f014a0a93742c701effaec86c75772e1) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136072-1145.7k", 0x000000, 0x010000, CRC(d9475d58) SHA1(5a4a0094c83f5d0e26f0c35feb0b1f15a5f5c3f9) )
ROM_LOAD( "136072-1146.7j", 0x010000, 0x010000, CRC(133e6aef) SHA1(e393d0b246889779029443a19e3859d45cb900db) )
ROM_LOAD( "136072-1147.7e", 0x020000, 0x010000, CRC(ba4d556e) SHA1(af4364f2c456abc20f1742c945a3acfeb5e192c4) )
@ -417,7 +417,7 @@ ROM_START( skullxbo3 )
ROM_LOAD16_BYTE( "136072-1156.185a", 0x070000, 0x008000, CRC(cde16b55) SHA1(bf5059f0f73a8819551fb3ded3cb6a3123841481) )
ROM_LOAD16_BYTE( "136072-1157.185c", 0x070001, 0x008000, CRC(31c77376) SHA1(19eb54d73edb25fda6803df896e182d05c5bad7e) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136072-1149.1b", 0x010000, 0x004000, CRC(8d730e7a) SHA1(b89fb9cadcf813ea5cba55f1efcdcdd2517944c7) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -462,7 +462,7 @@ ROM_START( skullxbo3 )
ROM_REGION( 0x008000, "gfx3", 0 )
ROM_LOAD( "136072-2141.250k", 0x000000, 0x008000, CRC(60d6d6df) SHA1(a8d56092f014a0a93742c701effaec86c75772e1) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136072-1145.7k", 0x000000, 0x010000, CRC(d9475d58) SHA1(5a4a0094c83f5d0e26f0c35feb0b1f15a5f5c3f9) )
ROM_LOAD( "136072-1146.7j", 0x010000, 0x010000, CRC(133e6aef) SHA1(e393d0b246889779029443a19e3859d45cb900db) )
ROM_LOAD( "136072-1147.7e", 0x020000, 0x010000, CRC(ba4d556e) SHA1(af4364f2c456abc20f1742c945a3acfeb5e192c4) )
@ -481,7 +481,7 @@ ROM_START( skullxbo2 )
ROM_LOAD16_BYTE( "136072-1156.185a", 0x070000, 0x008000, CRC(cde16b55) SHA1(bf5059f0f73a8819551fb3ded3cb6a3123841481) )
ROM_LOAD16_BYTE( "136072-1157.185c", 0x070001, 0x008000, CRC(31c77376) SHA1(19eb54d73edb25fda6803df896e182d05c5bad7e) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136072-1149.1b", 0x010000, 0x004000, CRC(8d730e7a) SHA1(b89fb9cadcf813ea5cba55f1efcdcdd2517944c7) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -526,7 +526,7 @@ ROM_START( skullxbo2 )
ROM_REGION( 0x008000, "gfx3", 0 )
ROM_LOAD( "136072-2141.250k", 0x000000, 0x008000, CRC(60d6d6df) SHA1(a8d56092f014a0a93742c701effaec86c75772e1) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136072-1145.7k", 0x000000, 0x010000, CRC(d9475d58) SHA1(5a4a0094c83f5d0e26f0c35feb0b1f15a5f5c3f9) )
ROM_LOAD( "136072-1146.7j", 0x010000, 0x010000, CRC(133e6aef) SHA1(e393d0b246889779029443a19e3859d45cb900db) )
ROM_LOAD( "136072-1147.7e", 0x020000, 0x010000, CRC(ba4d556e) SHA1(af4364f2c456abc20f1742c945a3acfeb5e192c4) )
@ -545,7 +545,7 @@ ROM_START( skullxbo1 )
ROM_LOAD16_BYTE( "136072-1156.185a", 0x070000, 0x008000, CRC(cde16b55) SHA1(bf5059f0f73a8819551fb3ded3cb6a3123841481) )
ROM_LOAD16_BYTE( "136072-1157.185c", 0x070001, 0x008000, CRC(31c77376) SHA1(19eb54d73edb25fda6803df896e182d05c5bad7e) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136072-1149.1b", 0x010000, 0x004000, CRC(8d730e7a) SHA1(b89fb9cadcf813ea5cba55f1efcdcdd2517944c7) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -590,7 +590,7 @@ ROM_START( skullxbo1 )
ROM_REGION( 0x008000, "gfx3", 0 )
ROM_LOAD( "136072-2141.250k", 0x000000, 0x008000, CRC(60d6d6df) SHA1(a8d56092f014a0a93742c701effaec86c75772e1) )
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM samples */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM samples */
ROM_LOAD( "136072-1145.7k", 0x000000, 0x010000, CRC(d9475d58) SHA1(5a4a0094c83f5d0e26f0c35feb0b1f15a5f5c3f9) )
ROM_LOAD( "136072-1146.7j", 0x010000, 0x010000, CRC(133e6aef) SHA1(e393d0b246889779029443a19e3859d45cb900db) )
ROM_LOAD( "136072-1147.7e", 0x020000, 0x010000, CRC(ba4d556e) SHA1(af4364f2c456abc20f1742c945a3acfeb5e192c4) )
@ -607,7 +607,6 @@ ROM_END
DRIVER_INIT_MEMBER(skullxbo_state,skullxbo)
{
atarijsa_init(machine(), "FF5802", 0x0080);
memset(memregion("gfx1")->base() + 0x170000, 0, 0x20000);
}

View File

@ -20,7 +20,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/thunderj.h"
@ -51,7 +50,6 @@ MACHINE_RESET_MEMBER(thunderj_state,thunderj)
{
atarigen_state::machine_reset();
atarivc_reset(*machine().primary_screen, m_atarivc_eof_data, 2);
atarijsa_reset(machine());
}
@ -66,8 +64,8 @@ READ16_MEMBER(thunderj_state::special_port2_r)
{
int result = ioport("260012")->read();
if (m_soundcomm->sound_to_main_ready()) result ^= 0x0004;
if (m_soundcomm->main_to_sound_ready()) result ^= 0x0008;
if (m_jsa->sound_to_main_ready()) result ^= 0x0004;
if (m_jsa->main_to_sound_ready()) result ^= 0x0008;
result ^= 0x0010;
return result;
@ -150,11 +148,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, thunderj_state )
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x260011) AM_READ_PORT("260010")
AM_RANGE(0x260012, 0x260013) AM_READ(special_port2_r)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0x00ff)
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x360010, 0x360011) AM_WRITE(latch_w)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0x00ff)
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
AM_RANGE(0x3effc0, 0x3effff) AM_READWRITE(thunderj_atarivc_r, thunderj_atarivc_w) AM_SHARE("atarivc_data")
AM_RANGE(0x3f0000, 0x3f1fff) AM_RAM_WRITE(playfield2_latched_msb_w) AM_SHARE("playfield2")
@ -182,11 +180,11 @@ static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, thunderj_state )
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x260011) AM_READ_PORT("260010")
AM_RANGE(0x260012, 0x260013) AM_READ(special_port2_r)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_ii_device, main_response_r, 0x00ff)
AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
AM_RANGE(0x360010, 0x360011) AM_WRITE(latch_w)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_ii_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_ii_device, main_command_w, 0x00ff)
ADDRESS_MAP_END
@ -225,8 +223,6 @@ static INPUT_PORTS_START( thunderj )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
PORT_INCLUDE( atarijsa_ii ) /* audio board port */
INPUT_PORTS_END
@ -305,7 +301,11 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state )
MCFG_VIDEO_START_OVERRIDE(thunderj_state,thunderj)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_ii_mono)
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_ATARI_JSA_II_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260012", 1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@ -334,7 +334,7 @@ ROM_START( thunderj )
ROM_LOAD16_BYTE( "136076-1012.17n", 0x00001, 0x10000, CRC(53e5e638) SHA1(75593e5d328ede105b8db64005dd5d1c5cae11ed) )
ROM_COPY( "maincpu", 0x60000, 0x60000, 0x20000 )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136076-2015.1b", 0x10000, 0x4000, CRC(d8feb7fb) SHA1(684ebf2f0c0df742c98e7f45f74de86a11c8d6e8) ) /* Rev 2 program rom */
ROM_CONTINUE( 0x04000, 0xc000 )
@ -377,7 +377,7 @@ ROM_START( thunderj )
ROM_REGION( 0x010000, "gfx3", 0 )
ROM_LOAD( "136076-1020.4m", 0x000000, 0x10000, CRC(65470354) SHA1(9895d26fa9e01c254a3d15e657152cac717c68a3) ) /* alphanumerics */
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM */
ROM_LOAD( "136076-1016.7k", 0x00000, 0x10000, CRC(c10bdf73) SHA1(a0371c6ddef2a95193c68879044b3338d481fc96) )
ROM_LOAD( "136076-1017.7j", 0x10000, 0x10000, CRC(4e5e25e8) SHA1(373c946abd24ce8dd5221f1a0409af4537610d3d) )
ROM_LOAD( "136076-1018.7e", 0x20000, 0x10000, CRC(ec81895d) SHA1(56acffb0700d3b70ca705fba9d240a82950fd320) )
@ -411,7 +411,7 @@ ROM_START( thunderja )
ROM_LOAD16_BYTE( "136076-1012.17n", 0x00001, 0x10000, CRC(53e5e638) SHA1(75593e5d328ede105b8db64005dd5d1c5cae11ed) )
ROM_COPY( "maincpu", 0x60000, 0x60000, 0x20000 )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136076-2015.1b", 0x10000, 0x4000, CRC(d8feb7fb) SHA1(684ebf2f0c0df742c98e7f45f74de86a11c8d6e8) ) /* Rev 2 program rom */
ROM_CONTINUE( 0x04000, 0xc000 )
@ -454,7 +454,7 @@ ROM_START( thunderja )
ROM_REGION( 0x010000, "gfx3", 0 )
ROM_LOAD( "136076-1020.4m", 0x000000, 0x10000, CRC(65470354) SHA1(9895d26fa9e01c254a3d15e657152cac717c68a3) ) /* alphanumerics */
ROM_REGION( 0x40000, "adpcm", 0 ) /* 256k for ADPCM */
ROM_REGION( 0x40000, "jsa:oki1", 0 ) /* 256k for ADPCM */
ROM_LOAD( "136076-1016.7k", 0x00000, 0x10000, CRC(c10bdf73) SHA1(a0371c6ddef2a95193c68879044b3338d481fc96) )
ROM_LOAD( "136076-1017.7j", 0x10000, 0x10000, CRC(4e5e25e8) SHA1(373c946abd24ce8dd5221f1a0409af4537610d3d) )
ROM_LOAD( "136076-1018.7e", 0x20000, 0x10000, CRC(ec81895d) SHA1(56acffb0700d3b70ca705fba9d240a82950fd320) )
@ -480,7 +480,6 @@ ROM_END
DRIVER_INIT_MEMBER(thunderj_state,thunderj)
{
atarijsa_init(machine(), "260012", 0x0002);
}

View File

@ -20,7 +20,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/toobin.h"
@ -45,7 +44,6 @@ void toobin_state::update_interrupts()
MACHINE_RESET_MEMBER(toobin_state,toobin)
{
atarigen_state::machine_reset();
atarijsa_reset(machine());
}
@ -82,7 +80,7 @@ READ16_MEMBER(toobin_state::special_port1_r)
{
int result = ioport("FF9000")->read();
if (get_hblank(*machine().primary_screen)) result ^= 0x8000;
if (m_soundcomm->main_to_sound_ready()) result ^= 0x2000;
if (m_jsa->main_to_sound_ready()) result ^= 0x2000;
return result;
}
@ -104,18 +102,18 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, toobin_state )
AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE(toobin_paletteram_w) AM_SHARE("paletteram")
AM_RANGE(0xff6000, 0xff6001) AM_READNOP /* who knows? read at controls time */
AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x4500fe) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xff8100, 0xff8101) AM_MIRROR(0x4500fe) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0xff8100, 0xff8101) AM_MIRROR(0x4500fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff)
AM_RANGE(0xff8300, 0xff8301) AM_MIRROR(0x45003e) AM_WRITE(toobin_intensity_w)
AM_RANGE(0xff8340, 0xff8341) AM_MIRROR(0x45003e) AM_WRITE(interrupt_scan_w) AM_SHARE("interrupt_scan")
AM_RANGE(0xff8380, 0xff8381) AM_MIRROR(0x45003e) AM_READ_LEGACY(atarimo_0_slipram_r) AM_WRITE(toobin_slip_w)
AM_RANGE(0xff83c0, 0xff83c1) AM_MIRROR(0x45003e) AM_WRITE(scanline_int_ack_w)
AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x4500fe) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x4500fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w)
AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x4500fe) AM_WRITE(toobin_xscroll_w) AM_SHARE("xscroll")
AM_RANGE(0xff8700, 0xff8701) AM_MIRROR(0x4500fe) AM_WRITE(toobin_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0xff8800, 0xff8801) AM_MIRROR(0x4507fe) AM_READ_PORT("FF8800")
AM_RANGE(0xff9000, 0xff9001) AM_MIRROR(0x4507fe) AM_READ(special_port1_r)
AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x4507fe) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x4507fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
AM_RANGE(0xffa000, 0xffafff) AM_MIRROR(0x451000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0xffc000, 0xffffff) AM_MIRROR(0x450000) AM_RAM
ADDRESS_MAP_END
@ -150,8 +148,6 @@ static INPUT_PORTS_START( toobin )
PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_i ) /* audio port */
INPUT_PORTS_END
@ -235,7 +231,13 @@ static MACHINE_CONFIG_START( toobin, toobin_state )
MCFG_VIDEO_START_OVERRIDE(toobin_state,toobin)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo_pokey)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ATARI_JSA_I_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("FF9000", 12)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_DEVICE_REMOVE("jsa:tms")
MACHINE_CONFIG_END
@ -257,7 +259,7 @@ ROM_START( toobin )
ROM_LOAD16_BYTE( "1136-5j.061", 0x060000, 0x010000, CRC(5ae3eeac) SHA1(583b6c3f61e8ad4d98449205fedecf3e21ee993c) )
ROM_LOAD16_BYTE( "1140-5f.061", 0x060001, 0x010000, CRC(dacbbd94) SHA1(0e3a93f439ff9f3dd57ee13604be02e9c74c8eec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "1141-2k.061", 0x010000, 0x004000, CRC(c0dcce1a) SHA1(285c13f08020cf5827eca2afcc2fa8a3a0a073e0) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -313,7 +315,7 @@ ROM_START( toobine )
ROM_LOAD16_BYTE( "1136-5j.061", 0x060000, 0x010000, CRC(5ae3eeac) SHA1(583b6c3f61e8ad4d98449205fedecf3e21ee993c) )
ROM_LOAD16_BYTE( "1140-5f.061", 0x060001, 0x010000, CRC(dacbbd94) SHA1(0e3a93f439ff9f3dd57ee13604be02e9c74c8eec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "1141-2k.061", 0x010000, 0x004000, CRC(c0dcce1a) SHA1(285c13f08020cf5827eca2afcc2fa8a3a0a073e0) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -369,7 +371,7 @@ ROM_START( toobing )
ROM_LOAD16_BYTE( "1136-5j.061", 0x060000, 0x010000, CRC(5ae3eeac) SHA1(583b6c3f61e8ad4d98449205fedecf3e21ee993c) )
ROM_LOAD16_BYTE( "1140-5f.061", 0x060001, 0x010000, CRC(dacbbd94) SHA1(0e3a93f439ff9f3dd57ee13604be02e9c74c8eec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "1141-2k.061", 0x010000, 0x004000, CRC(c0dcce1a) SHA1(285c13f08020cf5827eca2afcc2fa8a3a0a073e0) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -425,7 +427,7 @@ ROM_START( toobin2e )
ROM_LOAD16_BYTE( "1136-5j.061", 0x060000, 0x010000, CRC(5ae3eeac) SHA1(583b6c3f61e8ad4d98449205fedecf3e21ee993c) )
ROM_LOAD16_BYTE( "1140-5f.061", 0x060001, 0x010000, CRC(dacbbd94) SHA1(0e3a93f439ff9f3dd57ee13604be02e9c74c8eec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "1141-2k.061", 0x010000, 0x004000, CRC(c0dcce1a) SHA1(285c13f08020cf5827eca2afcc2fa8a3a0a073e0) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -481,7 +483,7 @@ ROM_START( toobin2 )
ROM_LOAD16_BYTE( "1136-5j.061", 0x060000, 0x010000, CRC(5ae3eeac) SHA1(583b6c3f61e8ad4d98449205fedecf3e21ee993c) )
ROM_LOAD16_BYTE( "1140-5f.061", 0x060001, 0x010000, CRC(dacbbd94) SHA1(0e3a93f439ff9f3dd57ee13604be02e9c74c8eec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "1141-2k.061", 0x010000, 0x004000, CRC(c0dcce1a) SHA1(285c13f08020cf5827eca2afcc2fa8a3a0a073e0) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -537,7 +539,7 @@ ROM_START( toobin1 )
ROM_LOAD16_BYTE( "1136-5j.061", 0x060000, 0x010000, CRC(5ae3eeac) SHA1(583b6c3f61e8ad4d98449205fedecf3e21ee993c) )
ROM_LOAD16_BYTE( "1140-5f.061", 0x060001, 0x010000, CRC(dacbbd94) SHA1(0e3a93f439ff9f3dd57ee13604be02e9c74c8eec) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "1141-2k.061", 0x010000, 0x004000, CRC(c0dcce1a) SHA1(285c13f08020cf5827eca2afcc2fa8a3a0a073e0) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -591,7 +593,6 @@ ROM_END
DRIVER_INIT_MEMBER(toobin_state,toobin)
{
atarijsa_init(machine(), "FF9000", 0x1000);
}

View File

@ -19,7 +19,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/vindictr.h"
@ -42,7 +41,6 @@ MACHINE_RESET_MEMBER(vindictr_state,vindictr)
{
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
atarijsa_reset(machine());
}
@ -56,8 +54,8 @@ MACHINE_RESET_MEMBER(vindictr_state,vindictr)
READ16_MEMBER(vindictr_state::port1_r)
{
int result = ioport("260010")->read();
if (m_soundcomm->sound_to_main_ready()) result ^= 0x0004;
if (m_soundcomm->main_to_sound_ready()) result ^= 0x0008;
if (m_jsa->sound_to_main_ready()) result ^= 0x0004;
if (m_jsa->main_to_sound_ready()) result ^= 0x0008;
result ^= 0x0010;
return result;
}
@ -79,12 +77,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, vindictr_state )
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ_PORT("260020")
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0x260030, 0x260031) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x360000, 0x360001) AM_WRITE(scanline_int_ack_w)
AM_RANGE(0x360010, 0x360011) AM_WRITENOP
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff)
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(vindictr_paletteram_w) AM_SHARE("paletteram")
AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
AM_RANGE(0x3f2000, 0x3f3fff) AM_MIRROR(0x8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
@ -134,8 +132,6 @@ static INPUT_PORTS_START( vindictr )
PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0xfc00, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_i ) /* audio port */
INPUT_PORTS_END
@ -206,7 +202,13 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state )
MCFG_VIDEO_START_OVERRIDE(vindictr_state,vindictr)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo_pokey)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ATARI_JSA_I_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("260010", 1)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
MCFG_DEVICE_REMOVE("jsa:tms")
MACHINE_CONFIG_END
@ -226,7 +228,7 @@ ROM_START( vindictr )
ROM_LOAD16_BYTE( "136059-5121.k1", 0x040000, 0x010000, CRC(96b150c5) SHA1(405c848f7990c981fefd355ca635bfb0ac24eb26) )
ROM_LOAD16_BYTE( "136059-5122.k3", 0x040001, 0x010000, CRC(6415d312) SHA1(0115e32c1c42421cb3d978cc8642f7f88d492043) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -264,7 +266,7 @@ ROM_START( vindictre )
ROM_LOAD16_BYTE( "136059-5721.k1", 0x040000, 0x010000, CRC(96b150c5) SHA1(405c848f7990c981fefd355ca635bfb0ac24eb26) )
ROM_LOAD16_BYTE( "136059-5722.k3", 0x040001, 0x010000, CRC(6415d312) SHA1(0115e32c1c42421cb3d978cc8642f7f88d492043) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -302,7 +304,7 @@ ROM_START( vindictrg )
ROM_LOAD16_BYTE( "136059-1221.k1", 0x040000, 0x010000, CRC(ee1b1014) SHA1(ddfe01cdec4654a42c9e49660e3532e5c865a9b7) )
ROM_LOAD16_BYTE( "136059-1222.k3", 0x040001, 0x010000, CRC(517b33f0) SHA1(f6430862bb00e11a68e964c89adcad1f05bc021b) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -340,7 +342,7 @@ ROM_START( vindictre4 )
ROM_LOAD16_BYTE( "136059-4121.k1", 0x040000, 0x010000, CRC(9a0444ee) SHA1(211be931a8b6ca42dd140baf3e165ce23f75431f) )
ROM_LOAD16_BYTE( "136059-4122.k3", 0x040001, 0x010000, CRC(d5022d78) SHA1(eeb6876ee6994f5736114a786c5c4ba97f26ef01) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -378,7 +380,7 @@ ROM_START( vindictr4 )
ROM_LOAD16_BYTE( "136059-4121.k1", 0x040000, 0x010000, CRC(9a0444ee) SHA1(211be931a8b6ca42dd140baf3e165ce23f75431f) )
ROM_LOAD16_BYTE( "136059-4122.k3", 0x040001, 0x010000, CRC(d5022d78) SHA1(eeb6876ee6994f5736114a786c5c4ba97f26ef01) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -416,7 +418,7 @@ ROM_START( vindictre3 )
ROM_LOAD16_BYTE( "136059-2121.k1", 0x040000, 0x010000, CRC(9b6111e0) SHA1(427197b21a5db2a06751ab281fde7a2f63818db8) )
ROM_LOAD16_BYTE( "136059-2122.k3", 0x040001, 0x010000, CRC(8d029a28) SHA1(a166d2a767f70050397f0f12add44ad1f5bc9fde) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -454,7 +456,7 @@ ROM_START( vindictr2 )
ROM_LOAD16_BYTE( "136059-2121.k1", 0x040000, 0x010000, CRC(9b6111e0) SHA1(427197b21a5db2a06751ab281fde7a2f63818db8) )
ROM_LOAD16_BYTE( "136059-2122.k3", 0x040001, 0x010000, CRC(8d029a28) SHA1(a166d2a767f70050397f0f12add44ad1f5bc9fde) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -492,7 +494,7 @@ ROM_START( vindictr1 )
ROM_LOAD16_BYTE( "136059-1121.k1", 0x040000, 0x010000, CRC(9b6111e0) SHA1(427197b21a5db2a06751ab281fde7a2f63818db8) )
ROM_LOAD16_BYTE( "136059-1122.k3", 0x040001, 0x010000, CRC(a94773f1) SHA1(2be841ab755d4ce319f3d562e9990918923384ee) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k + 16k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k + 16k for 6502 code */
ROM_LOAD( "136059-1124.2k", 0x010000, 0x004000, CRC(d2212c0a) SHA1(df11fe76d74abc0cea23f18264cef4b0f33b1ffd) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -530,7 +532,6 @@ ROM_END
DRIVER_INIT_MEMBER(vindictr_state,vindictr)
{
atarijsa_init(machine(), "260010", 0x0002);
}

View File

@ -20,7 +20,6 @@
#include "emu.h"
#include "cpu/m68000/m68000.h"
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
#include "includes/xybots.h"
@ -42,7 +41,6 @@ void xybots_state::update_interrupts()
MACHINE_RESET_MEMBER(xybots_state,xybots)
{
atarigen_state::machine_reset();
atarijsa_reset(machine());
}
@ -57,7 +55,7 @@ READ16_MEMBER(xybots_state::special_port1_r)
{
int result = ioport("FFE200")->read();
if (m_soundcomm->main_to_sound_ready()) result ^= 0x0200;
if (m_jsa->main_to_sound_ready()) result ^= 0x0200;
result ^= m_h256 ^= 0x0400;
return result;
}
@ -82,14 +80,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xybots_state )
AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("soundcomm", atari_sound_comm_device, main_response_r, 0x00ff)
AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff)
AM_RANGE(0xffe100, 0xffe1ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100")
AM_RANGE(0xffe200, 0xffe2ff) AM_MIRROR(0x7f8000) AM_READ(special_port1_r)
AM_RANGE(0xffe800, 0xffe8ff) AM_MIRROR(0x7f8000) AM_WRITE(eeprom_enable_w)
AM_RANGE(0xffe900, 0xffe9ff) AM_MIRROR(0x7f8000) AM_DEVWRITE8("soundcomm", atari_sound_comm_device, main_command_w, 0x00ff)
AM_RANGE(0xffe900, 0xffe9ff) AM_MIRROR(0x7f8000) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff)
AM_RANGE(0xffea00, 0xffeaff) AM_MIRROR(0x7f8000) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0xffeb00, 0xffebff) AM_MIRROR(0x7f8000) AM_WRITE(video_int_ack_w)
AM_RANGE(0xffee00, 0xffeeff) AM_MIRROR(0x7f8000) AM_DEVWRITE("soundcomm", atari_sound_comm_device, sound_reset_w)
AM_RANGE(0xffee00, 0xffeeff) AM_MIRROR(0x7f8000) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w)
ADDRESS_MAP_END
@ -127,11 +125,11 @@ static INPUT_PORTS_START( xybots )
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_VBLANK("screen") /* VBLANK */
PORT_BIT( 0xf000, IP_ACTIVE_LOW, IPT_UNUSED )
PORT_INCLUDE( atarijsa_i ) /* audio port */
/* Xybots uses a swapped version */
PORT_MODIFY("JSAI")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
// todo:
// PORT_MODIFY("jsa:JSAI")
// PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
// PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_COIN1 )
INPUT_PORTS_END
@ -204,7 +202,14 @@ static MACHINE_CONFIG_START( xybots, xybots_state )
MCFG_VIDEO_START_OVERRIDE(xybots_state,xybots)
/* sound hardware */
MCFG_FRAGMENT_ADD(jsa_i_stereo_swapped)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_ATARI_JSA_I_ADD("jsa", WRITELINE(atarigen_state, sound_int_write_line))
MCFG_ATARI_JSA_TEST_PORT("FFE200", 8)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
MCFG_DEVICE_REMOVE("jsa:pokey")
MCFG_DEVICE_REMOVE("jsa:tms")
MACHINE_CONFIG_END
@ -222,7 +227,7 @@ ROM_START( xybots )
ROM_LOAD16_BYTE( "136054-2114.17b", 0x020000, 0x008000, CRC(d31890cb) SHA1(b58722a4dcc79e97484c2f5e35b8dbf8c3520bd9) )
ROM_LOAD16_BYTE( "136054-2115.19b", 0x020001, 0x008000, CRC(750ab1b0) SHA1(0638de738bd804bde4b93cd23190ee0465887cf8) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136054-1116.2k", 0x010000, 0x004000, CRC(3b9f155d) SHA1(7080681a7eab282023034379825ca88adc6b300f) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -253,7 +258,7 @@ ROM_START( xybotsg )
ROM_LOAD16_BYTE( "136054-3214.17b", 0x020000, 0x008000, CRC(4ad35093) SHA1(6d2d82fb481c68819ec6c87d483eed17d4ae5d1a) )
ROM_LOAD16_BYTE( "136054-3215.19b", 0x020001, 0x008000, CRC(3a2afbaf) SHA1(61b88d15d95681eb24559d0696203cd4ee63d11f) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136054-1116.2k", 0x010000, 0x004000, CRC(3b9f155d) SHA1(7080681a7eab282023034379825ca88adc6b300f) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -284,7 +289,7 @@ ROM_START( xybotsf )
ROM_LOAD16_BYTE( "136054-3614.17b", 0x020000, 0x008000, CRC(7385e0b6) SHA1(98a69901069872b14413c1bfe48783fdb43c1c37) )
ROM_LOAD16_BYTE( "136054-3615.19b", 0x020001, 0x008000, CRC(8e37b812) SHA1(40f973a49c4b40f3a5d982d332995e792f718dcc) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136054-1116.2k", 0x010000, 0x004000, CRC(3b9f155d) SHA1(7080681a7eab282023034379825ca88adc6b300f) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -315,7 +320,7 @@ ROM_START( xybots1 )
ROM_LOAD16_BYTE( "136054-1114.17b", 0x020000, 0x008000, CRC(7444f88f) SHA1(e2a27754a57a809398ee639fe5d0920b564d4c0b) )
ROM_LOAD16_BYTE( "136054-1115.19b", 0x020001, 0x008000, CRC(848d072d) SHA1(c4d1181f0227200e60d99a99c1a83897275b055f) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136054-1116.2k", 0x010000, 0x004000, CRC(3b9f155d) SHA1(7080681a7eab282023034379825ca88adc6b300f) )
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -346,7 +351,7 @@ ROM_START( xybots0 )
ROM_LOAD16_BYTE( "136054-0114.17b", 0x020000, 0x008000, CRC(18b875f7) SHA1(aa78553bd3556d0b209513ba80b782cfb0e3bb8b) )
ROM_LOAD16_BYTE( "136054-0115.19b", 0x020001, 0x008000, CRC(7f116360) SHA1(d12c339ce973bd74be4a4ac9e9d293f6a6e358d6) )
ROM_REGION( 0x14000, "jsa", 0 ) /* 64k for 6502 code */
ROM_REGION( 0x14000, "jsa:cpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136054-0116.2k", 0x010000, 0x004000, BAD_DUMP CRC(3b9f155d) SHA1(7080681a7eab282023034379825ca88adc6b300f) ) // not dumped from this pcb, rom taken from another set instead
ROM_CONTINUE( 0x004000, 0x00c000 )
@ -381,7 +386,6 @@ DRIVER_INIT_MEMBER(xybots_state,xybots)
{
m_h256 = 0x0400;
slapstic_configure(*m_maincpu, 0x008000, 0, 107);
atarijsa_init(machine(), "FFE200", 0x0100);
}

View File

@ -5,6 +5,7 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "cpu/m68000/m68000.h"
class atarig1_state : public atarigen_state
@ -13,9 +14,11 @@ public:
atarig1_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_jsa(*this, "jsa"),
m_mo_command(*this, "mo_command") { }
required_device<cpu_device> m_maincpu;
required_device<atari_jsa_ii_device> m_jsa;
bool m_is_pitfight;

View File

@ -5,6 +5,7 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "cpu/m68000/m68000.h"
class atarig42_state : public atarigen_state
@ -13,9 +14,11 @@ public:
atarig42_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_jsa(*this, "jsa"),
m_mo_command(*this, "mo_command") { }
required_device<cpu_device> m_maincpu;
required_device<atari_jsa_iii_device> m_jsa;
UINT16 m_playfield_base;

View File

@ -5,17 +5,21 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class atarigx2_state : public atarigen_state
{
public:
atarigx2_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_mo_command(*this, "mo_command"),
m_protection_base(*this, "protection_base") { }
UINT16 m_playfield_base;
required_device<atari_jsa_iiis_device> m_jsa;
required_shared_ptr<UINT32> m_mo_command;
required_shared_ptr<UINT32> m_protection_base;

View File

@ -5,12 +5,16 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class batman_state : public atarigen_state
{
public:
batman_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag) { }
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa") { }
required_device<atari_jsa_iii_device> m_jsa;
UINT16 m_latch_data;

View File

@ -45,6 +45,7 @@ public:
beathead_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_jsa(*this, "jsa"),
m_nvram(*this, "nvram"),
m_videoram(*this, "videoram"),
m_paletteram(*this, "paletteram"),
@ -60,6 +61,7 @@ public:
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
required_device<asap_device> m_maincpu;
required_device<atari_jsa_iii_device> m_jsa;
required_shared_ptr<UINT32> m_nvram;

View File

@ -5,6 +5,7 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class blstroid_state : public atarigen_state
{
@ -17,8 +18,10 @@ public:
blstroid_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_priorityram(*this, "priorityram") { }
required_device<atari_jsa_i_device> m_jsa;
required_shared_ptr<UINT16> m_priorityram;
virtual void update_interrupts();
virtual void scanline_update(screen_device &screen, int scanline);

View File

@ -5,6 +5,7 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
#include "cpu/m68000/m68000.h"
#include "cpu/m6502/m6502.h"
#include "sound/dac.h"
@ -20,6 +21,7 @@ public:
m_daccpu(*this, "dac"),
m_dac1(*this, "dac1"),
m_dac2(*this, "dac2"),
m_jsa(*this, "jsa"),
m_paletteram_0(*this, "paletteram_0"),
m_paletteram_1(*this, "paletteram_1") { }
@ -29,6 +31,7 @@ public:
optional_device<cpu_device> m_daccpu;
optional_device<dac_device> m_dac1;
optional_device<dac_device> m_dac2;
optional_device<atari_jsa_ii_device> m_jsa;
optional_shared_ptr<UINT16> m_paletteram_0;
optional_shared_ptr<UINT16> m_paletteram_1;
UINT16 m_current_slip[2];

View File

@ -5,14 +5,17 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class eprom_state : public atarigen_state
{
public:
eprom_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_extra(*this, "extra") { }
required_device<atari_jsa_base_device> m_jsa;
int m_screen_intensity;
int m_video_disable;
UINT16 * m_sync_data;
@ -39,6 +42,3 @@ public:
void update_palette();
optional_device<cpu_device> m_extra;
};
/*----------- defined in video/eprom.c -----------*/
void eprom_scanline_update(screen_device &screen, int scanline);

View File

@ -9,6 +9,7 @@
#include "cpu/tms32010/tms32010.h"
#include "cpu/adsp2100/adsp2100.h"
#include "cpu/dsp32/dsp32.h"
#include "audio/atarijsa.h"
#include "sound/dac.h"
#include "machine/atarigen.h"
#include "machine/n68681.h"
@ -33,6 +34,7 @@ public:
m_ds3xdsp(*this, "ds3xdsp"),
m_ds3dac1(*this, "ds3dac1"),
m_ds3dac2(*this, "ds3dac2"),
m_jsa(*this, "jsa"),
m_msp_ram(*this, "msp_ram"),
m_adsp_data_memory(*this, "adsp_data"),
m_adsp_pgm_memory(*this, "adsp_pgm_memory"),
@ -62,6 +64,7 @@ public:
optional_device<adsp2105_device> m_ds3xdsp;
optional_device<dac_device> m_ds3dac1;
optional_device<dac_device> m_ds3dac2;
optional_device<atari_jsa_base_device> m_jsa;
UINT8 m_hd34010_host_access;
UINT8 m_dsk_pio_access;

View File

@ -5,14 +5,18 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class offtwall_state : public atarigen_state
{
public:
offtwall_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_bankrom_base(*this, "bankrom_base") { }
required_device<atari_jsa_iii_device> m_jsa;
UINT16 *m_bankswitch_base;
required_shared_ptr<UINT16> m_bankrom_base;
UINT32 m_bank_offset;

View File

@ -5,14 +5,17 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class skullxbo_state : public atarigen_state
{
public:
skullxbo_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_scanline_timer(*this, "scan_timer") { }
required_device<atari_jsa_ii_device> m_jsa;
required_device<timer_device> m_scanline_timer;
virtual void update_interrupts();

View File

@ -5,14 +5,17 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class thunderj_state : public atarigen_state
{
public:
thunderj_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_extra(*this, "extra") { }
required_device<atari_jsa_ii_device> m_jsa;
UINT8 m_alpha_tile_bank;
virtual void update_interrupts();
DECLARE_READ16_MEMBER(special_port2_r);

View File

@ -5,14 +5,17 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class toobin_state : public atarigen_state
{
public:
toobin_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa"),
m_interrupt_scan(*this, "interrupt_scan") { }
required_device<atari_jsa_i_device> m_jsa;
required_shared_ptr<UINT16> m_interrupt_scan;
double m_brightness;

View File

@ -5,13 +5,16 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class vindictr_state : public atarigen_state
{
public:
vindictr_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag) { }
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa") { }
required_device<atari_jsa_i_device> m_jsa;
UINT8 m_playfield_tile_bank;
UINT16 m_playfield_xscroll;
UINT16 m_playfield_yscroll;

View File

@ -5,13 +5,16 @@
*************************************************************************/
#include "machine/atarigen.h"
#include "audio/atarijsa.h"
class xybots_state : public atarigen_state
{
public:
xybots_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag) { }
: atarigen_state(mconfig, type, tag),
m_jsa(*this, "jsa") { }
required_device<atari_jsa_i_device> m_jsa;
UINT16 m_h256;
virtual void update_interrupts();
DECLARE_READ16_MEMBER(special_port1_r);

View File

@ -80,9 +80,9 @@ inline const atarigen_screen_timer *get_screen_timer(screen_device &screen)
/***************************************************************************
OVERALL INIT
***************************************************************************/
//**************************************************************************
// SOUND COMMUNICATIONS DEVICE
//**************************************************************************
// device type definition
const device_type ATARI_SOUND_COMM = &device_creator<atari_sound_comm_device>;
@ -420,7 +420,6 @@ atarigen_state::atarigen_state(const machine_config &mconfig, device_type type,
m_playfield2_latch(0),
m_maincpu(*this, "maincpu"),
m_audiocpu(*this, "audiocpu"),
m_jsacpu(*this, "jsa"),
m_oki(*this, "oki"),
m_soundcomm(*this, "soundcomm")
{

View File

@ -94,7 +94,7 @@ public:
bool main_to_sound_ready() const { return m_main_to_sound_ready; }
bool sound_to_main_ready() const { return m_sound_to_main_ready; }
// main cpu accessors
// main cpu accessors (forward internally to the atari_sound_comm_device)
DECLARE_WRITE8_MEMBER(main_command_w);
DECLARE_READ8_MEMBER(main_response_r);
DECLARE_WRITE16_MEMBER(sound_reset_w);
@ -347,7 +347,6 @@ public:
atarigen_screen_timer m_screen_timer[2];
required_device<cpu_device> m_maincpu;
optional_device<cpu_device> m_audiocpu;
optional_device<m6502_device> m_jsacpu;
optional_device<okim6295_device> m_oki;
optional_device<atari_sound_comm_device> m_soundcomm;

View File

@ -12,7 +12,6 @@
#include "sound/dac.h"
#include "machine/atarigen.h"
#include "machine/asic65.h"
#include "audio/atarijsa.h"
#include "includes/slapstic.h"
#include "includes/harddriv.h"
@ -73,10 +72,6 @@ MACHINE_RESET_MEMBER(harddriv_state,harddriv)
if (m_dsp32 != NULL) m_dsp32->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
if (m_sounddsp != NULL) m_sounddsp->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
/* if we found a 6502, reset the JSA board */
if (m_jsacpu != NULL)
atarijsa_reset(machine());
m_last_gsp_shiftreg = 0;
m_m68k_adsp_buffer_bank = 0;
@ -327,8 +322,8 @@ READ16_HANDLER( hd68k_adc12_r )
READ16_HANDLER( hd68k_sound_reset_r )
{
harddriv_state *state = space.machine().driver_data<harddriv_state>();
if (state->m_jsacpu != NULL)
atarijsa_reset(space.machine());
if (state->m_jsa != NULL)
state->m_jsa->reset();
return ~0;
}