mirror of
https://github.com/holub/mame
synced 2025-04-21 16:01:56 +03:00
Merge pull request #1022 from ajrhacker/vlm_map
Convert VLM5030 to device_memory_interface; correct region lengths
This commit is contained in:
commit
1b49471f51
@ -879,11 +879,17 @@ msx_cart_keyboard_master::msx_cart_keyboard_master(const machine_config &mconfig
|
||||
}
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( vlm_map, AS_0, 8, msx_cart_keyboard_master )
|
||||
AM_RANGE(0x0000, 0xffff) AM_READ(read_vlm)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( msx_cart_keyboard_master )
|
||||
// This is actually incorrect. The sound output is passed back into the MSX machine where it is mixed internally and output through the system 'speaker'.
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
MCFG_SOUND_ADD("vlm5030", VLM5030, XTAL_3_579545MHz)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vlm_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -909,7 +915,6 @@ void msx_cart_keyboard_master::initialize_cartridge()
|
||||
{
|
||||
fatalerror("keyboard_master: Invalid ROM size\n");
|
||||
}
|
||||
m_vlm5030->set_rom(&m_rom_vlm5030[0]);
|
||||
}
|
||||
|
||||
|
||||
@ -923,6 +928,12 @@ READ8_MEMBER(msx_cart_keyboard_master::read_cart)
|
||||
}
|
||||
|
||||
|
||||
READ8_MEMBER(msx_cart_keyboard_master::read_vlm)
|
||||
{
|
||||
return m_rom_vlm5030[offset];
|
||||
}
|
||||
|
||||
|
||||
WRITE8_MEMBER(msx_cart_keyboard_master::io_20_w)
|
||||
{
|
||||
m_vlm5030->rst((data & 0x01) ? 1 : 0);
|
||||
|
@ -185,6 +185,7 @@ public:
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(read_cart) override;
|
||||
|
||||
DECLARE_READ8_MEMBER(read_vlm);
|
||||
DECLARE_WRITE8_MEMBER(io_20_w);
|
||||
DECLARE_READ8_MEMBER(io_00_r);
|
||||
|
||||
|
@ -159,14 +159,18 @@ static const int vlm5030_speed_table[8] =
|
||||
|
||||
const device_type VLM5030 = &device_creator<vlm5030_device>;
|
||||
|
||||
// default address map
|
||||
static ADDRESS_MAP_START( vlm5030, AS_0, 8, vlm5030_device )
|
||||
AM_RANGE(0x0000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
vlm5030_device::vlm5030_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, VLM5030, "VLM5030", tag, owner, clock, "vlm5030", __FILE__),
|
||||
device_sound_interface(mconfig, *this),
|
||||
device_memory_interface(mconfig, *this),
|
||||
m_space_config("samples", ENDIANNESS_LITTLE, 8, 16, 0, nullptr, *ADDRESS_MAP_NAME(vlm5030)),
|
||||
m_channel(nullptr),
|
||||
m_coeff(nullptr),
|
||||
m_region(*this, DEVICE_SELF),
|
||||
m_rom(nullptr),
|
||||
m_address_mask(0),
|
||||
m_address(0),
|
||||
m_pin_BSY(0),
|
||||
m_pin_ST(0),
|
||||
@ -198,6 +202,16 @@ vlm5030_device::vlm5030_device(const machine_config &mconfig, const char *tag, d
|
||||
memset(m_x, 0, sizeof(m_x));
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// memory_space_config - return a description of
|
||||
// any address spaces owned by this device
|
||||
//-------------------------------------------------
|
||||
|
||||
const address_space_config *vlm5030_device::memory_space_config(address_spacenum spacenum) const
|
||||
{
|
||||
return (spacenum == AS_0) ? &m_space_config : nullptr;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
@ -216,13 +230,8 @@ void vlm5030_device::device_start()
|
||||
device_reset();
|
||||
m_phase = PH_IDLE;
|
||||
|
||||
m_rom = m_region->base();
|
||||
m_address_mask = (m_region->bytes() - 1) & 0xffff;
|
||||
|
||||
m_channel = machine().sound().stream_alloc(*this, 0, 1, clock() / 440);
|
||||
|
||||
/* don't restore "UINT8 *m_rom" when use vlm5030_set_rom() */
|
||||
|
||||
save_item(NAME(m_address));
|
||||
save_item(NAME(m_pin_BSY));
|
||||
save_item(NAME(m_pin_ST));
|
||||
@ -275,8 +284,8 @@ int vlm5030_device::get_bits(int sbit,int bits)
|
||||
int offset = m_address + (sbit>>3);
|
||||
int data;
|
||||
|
||||
data = m_rom[offset&m_address_mask] +
|
||||
(((int)m_rom[(offset+1)&m_address_mask])*256);
|
||||
data = space(AS_0).read_byte(offset) |
|
||||
space(AS_0).read_byte(offset+1)<<8;
|
||||
data >>= (sbit&7);
|
||||
data &= (0xff>>(8-bits));
|
||||
|
||||
@ -296,7 +305,7 @@ int vlm5030_device::parse_frame()
|
||||
m_old_k[i] = m_new_k[i];
|
||||
|
||||
/* command byte check */
|
||||
cmd = m_rom[m_address&m_address_mask];
|
||||
cmd = space(AS_0).read_byte(m_address);
|
||||
if( cmd & 0x01 )
|
||||
{ /* extend frame */
|
||||
m_new_energy = m_new_pitch = 0;
|
||||
@ -388,13 +397,6 @@ void vlm5030_device::restore_state()
|
||||
m_current_k[i] = m_old_k[i] + (m_target_k[i] - m_old_k[i]) * interp_effect / FR_SIZE;
|
||||
}
|
||||
|
||||
/* set speech rom address */
|
||||
// TO DO: rewrite using device_memory_interface to get rid of this ridiculous hack
|
||||
void vlm5030_device::set_rom(void *speech_rom)
|
||||
{
|
||||
m_rom = (UINT8 *)speech_rom;
|
||||
}
|
||||
|
||||
/* get BSY pin level */
|
||||
READ_LINE_MEMBER( vlm5030_device::bsy )
|
||||
{
|
||||
@ -467,8 +469,8 @@ WRITE_LINE_MEMBER( vlm5030_device::st )
|
||||
else
|
||||
{ /* indirect accedd mode */
|
||||
table = (m_latch_data&0xfe) + (((int)m_latch_data&1)<<8);
|
||||
m_address = (((int)m_rom[table&m_address_mask])<<8)
|
||||
| m_rom[(table+1)&m_address_mask];
|
||||
m_address = (space(AS_0).read_byte(table)<<8)
|
||||
| space(AS_0).read_byte(table+1);
|
||||
#if 0
|
||||
/* show unsupported parameter message */
|
||||
if( m_interp_step != 1)
|
||||
|
@ -6,15 +6,12 @@
|
||||
#define __VLM5030_H__
|
||||
|
||||
class vlm5030_device : public device_t,
|
||||
public device_sound_interface
|
||||
public device_sound_interface, public device_memory_interface
|
||||
{
|
||||
public:
|
||||
vlm5030_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
~vlm5030_device() {}
|
||||
|
||||
/* set speech rom address */
|
||||
void set_rom(void *speech_rom);
|
||||
|
||||
/* get BSY pin level */
|
||||
DECLARE_READ_LINE_MEMBER( bsy );
|
||||
|
||||
@ -35,10 +32,16 @@ protected:
|
||||
virtual void device_start() override;
|
||||
virtual void device_reset() override;
|
||||
|
||||
// device_memory_interface overrides
|
||||
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const override;
|
||||
|
||||
// sound stream update overrides
|
||||
virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override;
|
||||
|
||||
private:
|
||||
// configuration state
|
||||
const address_space_config m_space_config;
|
||||
|
||||
// internal state
|
||||
sound_stream * m_channel;
|
||||
|
||||
@ -47,9 +50,6 @@ private:
|
||||
|
||||
/* need to save state */
|
||||
|
||||
required_memory_region m_region;
|
||||
UINT8 *m_rom;
|
||||
int m_address_mask;
|
||||
UINT16 m_address;
|
||||
UINT8 m_pin_BSY;
|
||||
UINT8 m_pin_ST;
|
||||
|
@ -80,8 +80,6 @@ READ8_MEMBER(ddribble_state::ddribble_vlm5030_busy_r)
|
||||
|
||||
WRITE8_MEMBER(ddribble_state::ddribble_vlm5030_ctrl_w)
|
||||
{
|
||||
UINT8 *SPEECH_ROM = memregion("vlm")->base();
|
||||
|
||||
/* b7 : vlm data bus OE */
|
||||
|
||||
/* b6 : VLM5030-RST */
|
||||
@ -94,7 +92,7 @@ WRITE8_MEMBER(ddribble_state::ddribble_vlm5030_ctrl_w)
|
||||
m_vlm->vcu(data & 0x10 ? 1 : 0);
|
||||
|
||||
/* b3 : ROM bank select */
|
||||
m_vlm->set_rom(&SPEECH_ROM[data & 0x08 ? 0x10000 : 0]);
|
||||
membank("vlmbank")->set_entry(data & 0x08 ? 1 : 0);
|
||||
|
||||
/* b2 : SSG-C rc filter enable */
|
||||
m_filter3->filter_rc_set_RC(FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */
|
||||
@ -142,6 +140,10 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, ddribble_state )
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( vlm_map, AS_0, 8, ddribble_state )
|
||||
AM_RANGE(0x0000, 0xffff) AM_ROMBANK("vlmbank")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( ddribble )
|
||||
PORT_START("P1")
|
||||
KONAMI8_B132(1)
|
||||
@ -226,6 +228,7 @@ GFXDECODE_END
|
||||
void ddribble_state::machine_start()
|
||||
{
|
||||
membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base(), 0x2000);
|
||||
membank("vlmbank")->configure_entries(0, 2, memregion("vlm")->base(), 0x10000);
|
||||
|
||||
save_item(NAME(m_int_enable_0));
|
||||
save_item(NAME(m_int_enable_1));
|
||||
@ -298,6 +301,7 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state )
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, XTAL_3_579545MHz) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vlm_map)
|
||||
|
||||
MCFG_FILTER_RC_ADD("filter1", 0)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
@ -157,6 +157,11 @@ static ADDRESS_MAP_START( jailbrek_map, AS_PROGRAM, 8, jailbrek_state )
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( vlm_map, AS_0, 8, jailbrek_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
||||
static INPUT_PORTS_START( jailbrek )
|
||||
@ -279,6 +284,7 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state )
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, VOICE_CLOCK)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vlm_map)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -288,6 +294,15 @@ MACHINE_CONFIG_END
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
/*
|
||||
Check if the rom used for the speech is not a 2764, but a 27128. If a
|
||||
27128 is used then the data is stored in the upper half of the eprom.
|
||||
(The schematics and board refer to a 2764, but all the boards I have seen
|
||||
use a 27128. According to the schematics pin 26 is tied high so if a 2764
|
||||
is used then the pin is ignored, but if a 27128 is used then pin 26
|
||||
represents address line A13.)
|
||||
*/
|
||||
|
||||
ROM_START( jailbrek )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "507p03.11d", 0x8000, 0x4000, CRC(a0b88dfd) SHA1(f999e382b9d3b812fca41f4d0da3ea692fef6b19) )
|
||||
@ -310,7 +325,7 @@ ROM_START( jailbrek )
|
||||
ROM_LOAD( "507j12.6f", 0x0140, 0x0100, CRC(0266c7db) SHA1(a8f21e86e6d974c9bfd92a147689d0e7316d66e2) ) /* sprites lookup */
|
||||
|
||||
ROM_REGION( 0x4000, "vlm", 0 ) /* speech rom */
|
||||
ROM_LOAD( "507l01.8c", 0x0000, 0x4000, CRC(0c8a3605) SHA1(d886b66d3861c3a90a1825ccf5bf0011831ca366) )
|
||||
ROM_LOAD( "507l01.8c", 0x0000, 0x4000, CRC(0c8a3605) SHA1(d886b66d3861c3a90a1825ccf5bf0011831ca366) ) // same data in both halves
|
||||
ROM_END
|
||||
|
||||
ROM_START( manhatan )
|
||||
@ -335,7 +350,8 @@ ROM_START( manhatan )
|
||||
ROM_LOAD( "507j12.6f", 0x0140, 0x0100, CRC(0266c7db) SHA1(a8f21e86e6d974c9bfd92a147689d0e7316d66e2) ) /* sprites lookup */
|
||||
|
||||
ROM_REGION( 0x4000, "vlm", 0 ) /* speech rom */
|
||||
ROM_LOAD( "507p01.8c", 0x0000, 0x4000, CRC(973fa351) SHA1(ac360d05ed4d03334e00c80e70d5ae939d93af5f) )
|
||||
ROM_LOAD( "507p01.8c", 0x2000, 0x2000, CRC(973fa351) SHA1(ac360d05ed4d03334e00c80e70d5ae939d93af5f) ) // top half is blank
|
||||
ROM_CONTINUE( 0x0000, 0x2000 )
|
||||
ROM_END
|
||||
|
||||
/*
|
||||
@ -401,29 +417,6 @@ ROM_START( jailbrekb )
|
||||
ROM_LOAD( "k8.bin", 0x0000, 0x0001, NO_DUMP ) /* PAL16L8 */
|
||||
ROM_END
|
||||
|
||||
DRIVER_INIT_MEMBER(jailbrek_state,jailbrek)
|
||||
{
|
||||
UINT8 *SPEECH_ROM = memregion("vlm")->base();
|
||||
int ind;
|
||||
|
||||
/*
|
||||
Check if the rom used for the speech is not a 2764, but a 27128. If a
|
||||
27128 is used then the data is stored in the upper half of the eprom.
|
||||
(The schematics and board refer to a 2764, but all the boards I have seen
|
||||
use a 27128. According to the schematics pin 26 is tied high so if a 2764
|
||||
is used then the pin is ignored, but if a 27128 is used then pin 26
|
||||
represents address line A13.)
|
||||
*/
|
||||
|
||||
if (memregion("vlm")->bytes() == 0x4000)
|
||||
{
|
||||
for (ind = 0; ind < 0x2000; ++ind)
|
||||
{
|
||||
SPEECH_ROM[ind] = SPEECH_ROM[ind + 0x2000];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GAME( 1986, jailbrek, 0, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "Konami", "Jail Break", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, jailbrekb,jailbrek, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "bootleg","Jail Break (bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, jailbrek_state, jailbrek, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, jailbrek, 0, jailbrek, jailbrek, driver_device, 0, ROT0, "Konami", "Jail Break", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, jailbrekb,jailbrek, jailbrek, jailbrek, driver_device, 0, ROT0, "bootleg","Jail Break (bootleg)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, manhatan, jailbrek, jailbrek, jailbrek, driver_device, 0, ROT0, "Konami", "Manhattan 24 Bunsyo (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -433,6 +433,12 @@ static ADDRESS_MAP_START( gx400_sound_map, AS_PROGRAM, 8, nemesis_state )
|
||||
AM_RANGE(0xe405, 0xe405) AM_DEVWRITE("ay2", ay8910_device, data_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// gx400 voice data is not in a ROM but in sound RAM at $8000
|
||||
static ADDRESS_MAP_START( gx400_vlm_map, AS_0, 8, nemesis_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
|
||||
AM_RANGE(0x000, 0x7ff) AM_RAM AM_SHARE("voiceram")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static ADDRESS_MAP_START( salamand_map, AS_PROGRAM, 16, nemesis_state )
|
||||
@ -555,6 +561,11 @@ static ADDRESS_MAP_START( sal_sound_map, AS_PROGRAM, 8, nemesis_state )
|
||||
AM_RANGE(0xf000, 0xf000) AM_WRITE(salamand_speech_start_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( salamand_vlm_map, AS_0, 8, nemesis_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( blkpnthr_sound_map, AS_PROGRAM, 8, nemesis_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
@ -611,6 +622,11 @@ static ADDRESS_MAP_START( hcrash_map, AS_PROGRAM, 16, nemesis_state )
|
||||
AM_RANGE(0x190f80, 0x190fff) AM_SHARE("yscroll2")
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( hcrash_vlm_map, AS_0, 8, nemesis_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM AM_REGION("vlm", 0x4000)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( nemesis )
|
||||
@ -1450,10 +1466,6 @@ void nemesis_state::machine_start()
|
||||
save_item(NAME(m_tilemap_flip));
|
||||
save_item(NAME(m_flipscreen));
|
||||
save_item(NAME(m_irq_port_last));
|
||||
|
||||
/* gx400 voice data is not in a ROM but in sound RAM at $8000 */
|
||||
if (m_vlm != nullptr && memregion("vlm")->bytes() == 0x800)
|
||||
m_vlm->set_rom(m_voiceram);
|
||||
}
|
||||
|
||||
void nemesis_state::machine_reset()
|
||||
@ -1584,6 +1596,7 @@ static MACHINE_CONFIG_START( gx400, nemesis_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, 3579545)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, gx400_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1700,6 +1713,7 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, 3579545)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, gx400_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1737,6 +1751,7 @@ static MACHINE_CONFIG_START( salamand, nemesis_state )
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, 3579545)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, salamand_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 2.50)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 2.50)
|
||||
|
||||
@ -1932,6 +1947,7 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state )
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, 3579545)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, hcrash_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
|
||||
|
||||
@ -2024,8 +2040,6 @@ ROM_START( rf2 )
|
||||
ROM_REGION( 0x0200, "k005289", 0 ) /* 2x 256 byte for 0005289 wavetable data */
|
||||
ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
|
||||
ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
|
||||
|
||||
ROM_REGION( 0x800, "vlm", ROMREGION_ERASE00 ) /* dummy region to set the correct vlm address mask */
|
||||
ROM_END
|
||||
|
||||
ROM_START( twinbee )
|
||||
@ -2041,8 +2055,6 @@ ROM_START( twinbee )
|
||||
ROM_REGION( 0x0200, "k005289", 0 ) /* 2x 256 byte for 0005289 wavetable data */
|
||||
ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
|
||||
ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
|
||||
|
||||
ROM_REGION( 0x800, "vlm", ROMREGION_ERASE00 ) /* dummy region to set the correct vlm address mask */
|
||||
ROM_END
|
||||
|
||||
ROM_START( gradius )
|
||||
@ -2058,8 +2070,6 @@ ROM_START( gradius )
|
||||
ROM_REGION( 0x0200, "k005289", 0 ) /* 2x 256 byte for 0005289 wavetable data */
|
||||
ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
|
||||
ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
|
||||
|
||||
ROM_REGION( 0x800, "vlm", ROMREGION_ERASE00 ) /* dummy region to set the correct vlm address mask */
|
||||
ROM_END
|
||||
|
||||
ROM_START( gwarrior )
|
||||
@ -2075,8 +2085,6 @@ ROM_START( gwarrior )
|
||||
ROM_REGION( 0x0200, "k005289", 0 ) /* 2x 256 byte for 0005289 wavetable data */
|
||||
ROM_LOAD( "400-a01.fse", 0x00000, 0x0100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
|
||||
ROM_LOAD( "400-a02.fse", 0x00100, 0x0100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
|
||||
|
||||
ROM_REGION( 0x800, "vlm", ROMREGION_ERASE00 ) /* dummy region to set the correct vlm address mask */
|
||||
ROM_END
|
||||
|
||||
ROM_START( salamand )
|
||||
@ -2341,7 +2349,7 @@ ROM_START( hcrash )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound */
|
||||
ROM_LOAD( "790-c09.n2", 0x00000, 0x8000, CRC(a68a8cce) SHA1(a54966b9cbbe37b2be6a2276ee09c81452d9c0ca) )
|
||||
|
||||
ROM_REGION( 0x80000, "vlm", 0 ) /* VLM5030 data data */
|
||||
ROM_REGION( 0x08000, "vlm", 0 ) /* VLM5030 data */
|
||||
ROM_LOAD( "790-c08.j4", 0x04000, 0x04000, CRC(cfb844bc) SHA1(43b7adb6093e707212204118087ef4f79b0dbc1f) )
|
||||
ROM_CONTINUE( 0x00000, 0x04000 ) /* Board is wired for 27C128, top half of EPROM is blank */
|
||||
|
||||
@ -2359,7 +2367,7 @@ ROM_START( hcrashc )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for sound */
|
||||
ROM_LOAD( "790-c09.n2", 0x00000, 0x8000, CRC(a68a8cce) SHA1(a54966b9cbbe37b2be6a2276ee09c81452d9c0ca) )
|
||||
|
||||
ROM_REGION( 0x80000, "vlm", 0 ) /* VLM5030 data data */
|
||||
ROM_REGION( 0x08000, "vlm", 0 ) /* VLM5030 data */
|
||||
ROM_LOAD( "790-c08.j4", 0x04000, 0x04000, CRC(cfb844bc) SHA1(43b7adb6093e707212204118087ef4f79b0dbc1f) )
|
||||
ROM_CONTINUE( 0x00000, 0x04000 ) /* Board is wired for 27C128, top half of EPROM is blank */
|
||||
|
||||
@ -2712,6 +2720,7 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, 3579545)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, gx400_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -2731,8 +2740,6 @@ ROM_START( bubsys )
|
||||
ROM_LOAD( "400a1.2b", 0x000, 0x100, CRC(5827b1e8) SHA1(fa8cf5f868cfb08bce203baaebb6c4055ee2a000) )
|
||||
ROM_LOAD( "400a2.1b", 0x100, 0x100, CRC(2f44f970) SHA1(7ab46f9d5d587665782cefc623b8de0124a6d38a) )
|
||||
|
||||
ROM_REGION( 0x800, "vlm", ROMREGION_ERASE00 ) /* dummy region to set the correct vlm address mask */
|
||||
|
||||
ROM_REGION( 0x4000, "sram", 0 ) // raw RAM dumps, just for emulation aid, to be removed ...
|
||||
ROM_LOAD( "sram1.ic1", 0x0000, 0x2000, CRC(45fc9453) SHA1(eeb4ff2c2c9d3b6ea9d0f0e8fd4873f2cce2cff9) )
|
||||
ROM_LOAD( "sram2.ic3", 0x2000, 0x2000, CRC(dda768be) SHA1(e98bae3ccf63eb67193346e9c40257a3ddb88e59) )
|
||||
|
@ -205,6 +205,12 @@ static ADDRESS_MAP_START( punchout_io_map, AS_IO, 8, punchout_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( punchout_vlm_map, AS_0, 8, punchout_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x3fff)
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
// Super Punch-Out!! comes with an extra security PCB that plugs into the Z80 socket
|
||||
// CHS1-01-EXP, has Z80 CPU, RP5C01, RP5H01
|
||||
|
||||
@ -673,6 +679,7 @@ static MACHINE_CONFIG_START( punchout, punchout_state )
|
||||
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, XTAL_21_4772MHz/6)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, punchout_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1124,7 +1131,7 @@ ROM_START( spnchout )
|
||||
ROM_LOAD( "chs1-b-8f_white.8f", 0x1a00, 0x0200, CRC(1663eed7) SHA1(90ff876a6b885f8a80c17531cde8b91864f1a6a5) ) /* B */
|
||||
ROM_LOAD( "chs1-v.2d", 0x2000, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for the VLM5030 data */
|
||||
ROM_REGION( 0x4000, "vlm", 0 ) /* 16k for the VLM5030 data */
|
||||
ROM_LOAD( "chs1-c.6p", 0x0000, 0x4000, CRC(ad8b64b8) SHA1(0f1232a10faf71b782f9f6653cca8570243c17e0) )
|
||||
ROM_END
|
||||
|
||||
@ -1270,7 +1277,7 @@ ROM_START( spnchoutj )
|
||||
ROM_LOAD( "chs1-b-8f_white.8f", 0x1a00, 0x0200, CRC(1663eed7) SHA1(90ff876a6b885f8a80c17531cde8b91864f1a6a5) ) /* B */
|
||||
ROM_LOAD( "chs1-v.2d", 0x2000, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for the VLM5030 data */
|
||||
ROM_REGION( 0x4000, "vlm", 0 ) /* 16k for the VLM5030 data */
|
||||
ROM_LOAD( "chs1c6pa.bin", 0x0000, 0x4000, CRC(d05fb730) SHA1(9f4c4c7e5113739312558eff4d3d3e42d513aa31) )
|
||||
ROM_END
|
||||
|
||||
@ -1326,7 +1333,7 @@ ROM_START( armwrest )
|
||||
ROM_LOAD( "chv1-b.3c", 0x0c00, 0x0100, CRC(c3f92ea2) SHA1(1a82cca1b9a8d9bd4a1d121d8c131a7d0be554bc) ) /* priority encoder - not used */
|
||||
ROM_LOAD( "chpv-v.2d", 0x0d00, 0x0100, CRC(71dc0d48) SHA1(dd6609f547d74887f520d7e71a1a00317ff181d0) ) /* timing - not used */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for the VLM5030 data */
|
||||
ROM_REGION( 0x4000, "vlm", 0 ) /* 16k for the VLM5030 data */
|
||||
ROM_LOAD( "chv1-c.6p", 0x0000, 0x4000, CRC(31b52896) SHA1(395f59ac38b46042f79e9224ac6bc7d3dc299906) )
|
||||
ROM_END
|
||||
|
||||
|
@ -124,6 +124,11 @@ static ADDRESS_MAP_START( rockrage_sound_map, AS_PROGRAM, 8, rockrage_state )
|
||||
AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( rockrage_vlm_map, AS_0, 8, rockrage_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Input Ports
|
||||
@ -285,6 +290,7 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state )
|
||||
MCFG_SOUND_ROUTE(1, "rspeaker", 0.60)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, 3579545)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, rockrage_vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.60)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.60)
|
||||
MACHINE_CONFIG_END
|
||||
|
@ -427,6 +427,11 @@ static ADDRESS_MAP_START( hyprolyb_sound_map, AS_PROGRAM, 8, trackfld_state )
|
||||
AM_RANGE(0xe004, 0xe004) AM_MIRROR(0x1ff8) AM_DEVWRITE("hyprolyb_adpcm", hyprolyb_adpcm_device, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( vlm_map, AS_0, 8, trackfld_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static INPUT_PORTS_START( trackfld )
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
@ -935,6 +940,7 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, VLM_CLOCK)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -992,6 +998,7 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, VLM_CLOCK)
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1078,7 +1085,7 @@ ROM_START( trackfld )
|
||||
ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */
|
||||
ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
|
||||
ROM_END
|
||||
|
||||
@ -1110,7 +1117,7 @@ ROM_START( trackfldnz )
|
||||
ROM_LOAD( "gold.18d", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "gold.4j", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */
|
||||
ROM_LOAD( "gold.d9", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
|
||||
ROM_END
|
||||
|
||||
@ -1142,7 +1149,7 @@ ROM_START( trackfldc )
|
||||
ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */
|
||||
ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
|
||||
ROM_END
|
||||
|
||||
@ -1173,7 +1180,7 @@ ROM_START( hyprolym ) /* GX361 */
|
||||
ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */
|
||||
ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) ) /* 361-d15.c09 */
|
||||
ROM_END
|
||||
|
||||
@ -1372,7 +1379,7 @@ ROM_START( mastkin )
|
||||
ROM_LOAD( "prom.3", 0x0020, 0x0100, NO_DUMP ) /* sprite lookup table */
|
||||
ROM_LOAD( "prom.2", 0x0120, 0x0100, NO_DUMP ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */
|
||||
ROM_LOAD( "mk2", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
|
||||
ROM_END
|
||||
|
||||
@ -1415,7 +1422,7 @@ ROM_START( wizzquiz )
|
||||
ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", ROMREGION_ERASE00 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", ROMREGION_ERASE00 ) /* 8k for the VLM5030 data */
|
||||
/* not used */
|
||||
ROM_END
|
||||
|
||||
@ -1458,7 +1465,7 @@ ROM_START( wizzquiza )
|
||||
ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", ROMREGION_ERASE00 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", ROMREGION_ERASE00 ) /* 8k for the VLM5030 data */
|
||||
/* not used */
|
||||
ROM_END
|
||||
|
||||
@ -1498,7 +1505,7 @@ ROM_START( reaktor )
|
||||
ROM_LOAD( "361b17.b16", 0x0020, 0x0100, CRC(d2ba4d32) SHA1(894b5cedf01ba9225a0d6215291857e455b84903) ) /* sprite lookup table */
|
||||
ROM_LOAD( "361b18.e15", 0x0120, 0x0100, CRC(053e5861) SHA1(6740a62cf7b6938a4f936a2fed429704612060a5) ) /* char lookup table */
|
||||
|
||||
ROM_REGION( 0x10000, "vlm", 0 ) /* 64k for speech rom */
|
||||
ROM_REGION( 0x2000, "vlm", 0 ) /* 8k for the VLM5030 data */
|
||||
ROM_LOAD( "c9_d15.bin", 0x0000, 0x2000, CRC(f546a56b) SHA1(caee3d8546eb7a75ce2a578c6a1a630246aec6b8) )
|
||||
ROM_END
|
||||
|
||||
|
@ -157,6 +157,12 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, yiear_state )
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( vlm_map, AS_0, 8, yiear_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x1fff)
|
||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
static INPUT_PORTS_START( yiear )
|
||||
PORT_START("SYSTEM")
|
||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
|
||||
@ -301,6 +307,7 @@ static MACHINE_CONFIG_START( yiear, yiear_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
MCFG_SOUND_ADD("vlm", VLM5030, XTAL_3_579545MHz) /* verified on pcb */
|
||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vlm_map)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -51,7 +51,6 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(colorram_w);
|
||||
DECLARE_READ8_MEMBER(speech_r);
|
||||
DECLARE_WRITE8_MEMBER(speech_w);
|
||||
DECLARE_DRIVER_INIT(jailbrek);
|
||||
TILE_GET_INFO_MEMBER(get_bg_tile_info);
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
@ -22,7 +22,6 @@ public:
|
||||
m_spriteram(*this, "spriteram"),
|
||||
m_paletteram(*this, "paletteram"),
|
||||
m_gx400_shared_ram(*this, "gx400_shared"),
|
||||
m_voiceram(*this, "voiceram"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_audiocpu(*this, "audiocpu"),
|
||||
m_filter1(*this, "filter1"),
|
||||
@ -49,7 +48,6 @@ public:
|
||||
required_shared_ptr<UINT16> m_spriteram;
|
||||
optional_shared_ptr<UINT16> m_paletteram;
|
||||
optional_shared_ptr<UINT8> m_gx400_shared_ram;
|
||||
optional_shared_ptr<UINT8> m_voiceram;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_background;
|
||||
|
Loading…
Reference in New Issue
Block a user