summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/trackfld.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/trackfld.cpp')
-rw-r--r--src/mame/drivers/trackfld.cpp127
1 files changed, 60 insertions, 67 deletions
diff --git a/src/mame/drivers/trackfld.cpp b/src/mame/drivers/trackfld.cpp
index a4d10a3ebbc..a0b63353ba8 100644
--- a/src/mame/drivers/trackfld.cpp
+++ b/src/mame/drivers/trackfld.cpp
@@ -184,7 +184,6 @@ MAIN BOARD:
#include "includes/trackfld.h"
#include "includes/konamipt.h"
#include "audio/hyprolyb.h"
-#include "audio/trackfld.h"
#include "cpu/z80/z80.h"
#include "cpu/m6800/m6800.h"
@@ -193,9 +192,7 @@ MAIN BOARD:
#include "machine/konami1.h"
#include "machine/nvram.h"
#include "machine/watchdog.h"
-#include "sound/dac.h"
#include "sound/volt_reg.h"
-#include "screen.h"
#include "speaker.h"
@@ -216,11 +213,9 @@ WRITE_LINE_MEMBER(trackfld_state::coin_counter_2_w)
WRITE8_MEMBER(trackfld_state::questions_bank_w)
{
- int i;
-
- for(i=0;i<8;i++)
+ for (int i = 0; i < 8; i++)
{
- if((data & 1 << i) == 0) // check first bit active low, change ROM bank according to the correlated bit
+ if (!BIT(data, i)) // check first bit active low, change ROM bank according to the correlated bit
{
membank("bank1")->set_entry(i);
return;
@@ -246,15 +241,15 @@ void trackfld_state::main_map(address_map &map)
map(0x1282, 0x1282).mirror(0x007c).portr("IN1");
map(0x1283, 0x1283).mirror(0x007c).portr("DSW1");
/* not used according to schems: AM_RANGE(0x1300, 0x1300) AM_MIRROR(0x007f) AM_READ_PORT("DSW3") */
- map(0x1800, 0x183f).ram().share("spriteram2");
- map(0x1840, 0x185f).ram().share("scroll");
+ map(0x1800, 0x183f).ram().share(m_spriteram2);
+ map(0x1840, 0x185f).ram().share(m_scroll);
map(0x1860, 0x1bff).ram();
- map(0x1c00, 0x1c3f).ram().share("spriteram");
- map(0x1c40, 0x1c5f).ram().share("scroll2");
+ map(0x1c00, 0x1c3f).ram().share(m_spriteram);
+ map(0x1c40, 0x1c5f).ram().share(m_scroll2);
map(0x1c60, 0x1fff).ram();
map(0x2800, 0x2fff).ram().share("nvram");
- map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share("videoram");
- map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share("colorram");
+ map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share(m_videoram);
+ map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share(m_colorram);
map(0x6000, 0xffff).rom();
}
@@ -296,15 +291,15 @@ void trackfld_state::yieartf_map(address_map &map)
map(0x1282, 0x1282).mirror(0x007c).portr("IN1");
map(0x1283, 0x1283).mirror(0x007c).portr("DSW1");
map(0x1300, 0x1300).mirror(0x007f).portr("DSW3");
- map(0x1800, 0x183f).ram().share("spriteram2");
- map(0x1840, 0x185f).ram().share("scroll");
+ map(0x1800, 0x183f).ram().share(m_spriteram2);
+ map(0x1840, 0x185f).ram().share(m_scroll);
map(0x1860, 0x1bff).ram();
- map(0x1c00, 0x1c3f).ram().share("spriteram");
- map(0x1c40, 0x1c5f).ram().share("scroll2");
+ map(0x1c00, 0x1c3f).ram().share(m_spriteram);
+ map(0x1c40, 0x1c5f).ram().share(m_scroll2);
map(0x1c60, 0x1fff).ram();
map(0x2800, 0x2fff).ram().share("nvram");
- map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share("videoram");
- map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share("colorram");
+ map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share(m_videoram);
+ map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share(m_colorram);
map(0x6000, 0xffff).rom();
}
@@ -320,16 +315,16 @@ void trackfld_state::reaktor_map(address_map &map)
map(0x9281, 0x9281).portr("IN0");
map(0x9282, 0x9282).portr("IN1");
map(0x9283, 0x9283).portr("DSW1");
- map(0x9800, 0x983f).ram().share("spriteram2");
- map(0x9840, 0x985f).ram().share("scroll");
+ map(0x9800, 0x983f).ram().share(m_spriteram2);
+ map(0x9840, 0x985f).ram().share(m_scroll);
map(0x9860, 0x9bff).ram();
- map(0x9c00, 0x9c3f).ram().share("spriteram");
- map(0x9c40, 0x9c5f).ram().share("scroll2");
+ map(0x9c00, 0x9c3f).ram().share(m_spriteram);
+ map(0x9c40, 0x9c5f).ram().share(m_scroll2);
map(0x9c60, 0x9fff).ram();
map(0xa800, 0xabff).ram();
map(0xac00, 0xafff).ram().share("nvram");
- map(0xb000, 0xb7ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share("videoram");
- map(0xb800, 0xbfff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share("colorram");
+ map(0xb000, 0xb7ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share(m_videoram);
+ map(0xb800, 0xbfff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share(m_colorram);
}
/* Reaktor reads / writes some I/O ports, no idea what they're connected to, if anything */
@@ -352,17 +347,17 @@ void trackfld_state::mastkin_map(address_map &map)
map(0x1281, 0x1281).portr("IN0");
// AM_RANGE(0x1282, 0x1282) AM_READ_PORT("IN1") /* unused */
map(0x1283, 0x1283).portr("DSW1");
- map(0x1800, 0x183f).ram().share("spriteram2");
- map(0x1840, 0x185f).ram().share("scroll");
+ map(0x1800, 0x183f).ram().share(m_spriteram2);
+ map(0x1840, 0x185f).ram().share(m_scroll);
map(0x1860, 0x1bff).ram();
- map(0x1c00, 0x1c3f).ram().share("spriteram");
- map(0x1c40, 0x1c5f).ram().share("scroll2");
+ map(0x1c00, 0x1c3f).ram().share(m_spriteram);
+ map(0x1c40, 0x1c5f).ram().share(m_scroll2);
map(0x1c60, 0x1fff).ram();
map(0x2000, 0x27ff).ram(); // initialized at POST
map(0x2800, 0x2bff).ram();
map(0x2c00, 0x2fff).ram().share("nvram");
- map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share("videoram");
- map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share("colorram");
+ map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share(m_videoram);
+ map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share(m_colorram);
map(0x6000, 0xffff).rom();
}
@@ -377,16 +372,16 @@ void trackfld_state::wizzquiz_map(address_map &map)
map(0x1281, 0x1281).portr("IN0");
map(0x1282, 0x1282).portr("IN1");
map(0x1283, 0x1283).portr("DSW1");
- map(0x1800, 0x183f).ram().share("spriteram2");
- map(0x1840, 0x185f).ram().share("scroll");
+ map(0x1800, 0x183f).ram().share(m_spriteram2);
+ map(0x1840, 0x185f).ram().share(m_scroll);
map(0x1860, 0x1bff).ram();
- map(0x1c00, 0x1c3f).ram().share("spriteram");
- map(0x1c40, 0x1c5f).ram().share("scroll2");
+ map(0x1c00, 0x1c3f).ram().share(m_spriteram);
+ map(0x1c40, 0x1c5f).ram().share(m_scroll2);
map(0x1c60, 0x1fff).ram();
map(0x2800, 0x2bff).ram();
map(0x2c00, 0x2fff).ram().share("nvram");
- map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share("videoram");
- map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share("colorram");
+ map(0x3000, 0x37ff).ram().w(this, FUNC(trackfld_state::trackfld_videoram_w)).share(m_videoram);
+ map(0x3800, 0x3fff).ram().w(this, FUNC(trackfld_state::trackfld_colorram_w)).share(m_colorram);
map(0xc000, 0xc000).w(this, FUNC(trackfld_state::questions_bank_w));
map(0x6000, 0xdfff).bankr("bank1");
map(0xe000, 0xffff).rom();
@@ -404,13 +399,13 @@ void trackfld_state::sound_map(address_map &map)
map(0x0000, 0x3fff).rom();
map(0x4000, 0x43ff).mirror(0x1c00).ram();
map(0x6000, 0x6000).mirror(0x1fff).r("soundlatch", FUNC(generic_latch_8_device::read));
- map(0x8000, 0x8000).mirror(0x1fff).r("trackfld_audio", FUNC(trackfld_audio_device::trackfld_sh_timer_r));
+ map(0x8000, 0x8000).mirror(0x1fff).r(m_soundbrd, FUNC(trackfld_audio_device::trackfld_sh_timer_r));
map(0xa000, 0xa000).mirror(0x1fff).w(this, FUNC(trackfld_state::konami_SN76496_latch_w));
map(0xc000, 0xc000).mirror(0x1fff).r(this, FUNC(trackfld_state::trackfld_SN76496_r)).w(this, FUNC(trackfld_state::konami_SN76496_w));
- map(0xe000, 0xe000).mirror(0x1ff8).w("dac", FUNC(dac_byte_interface::write));
+ map(0xe000, 0xe000).mirror(0x1ff8).w(m_dac, FUNC(dac_byte_interface::write));
map(0xe001, 0xe001).mirror(0x1ff8).noprw(); /* watch dog ?; reaktor reads here */
- map(0xe002, 0xe002).mirror(0x1ff8).r("trackfld_audio", FUNC(trackfld_audio_device::trackfld_speech_r));
- map(0xe003, 0xe003).mirror(0x1c78).select(0x0380).w("trackfld_audio", FUNC(trackfld_audio_device::trackfld_sound_w));
+ map(0xe002, 0xe002).mirror(0x1ff8).r(m_soundbrd, FUNC(trackfld_audio_device::trackfld_speech_r));
+ map(0xe003, 0xe003).mirror(0x1c78).select(0x0380).w(m_soundbrd, FUNC(trackfld_audio_device::trackfld_sound_w));
map(0xe004, 0xe004).mirror(0x1ff8).w(m_vlm, FUNC(vlm5030_device::data_w));
}
@@ -419,10 +414,10 @@ void trackfld_state::hyprolyb_sound_map(address_map &map)
map(0x0000, 0x3fff).rom();
map(0x4000, 0x43ff).mirror(0x1c00).ram();
map(0x6000, 0x6000).mirror(0x1fff).r("soundlatch", FUNC(generic_latch_8_device::read));
- map(0x8000, 0x8000).mirror(0x1fff).r("trackfld_audio", FUNC(trackfld_audio_device::trackfld_sh_timer_r));
+ map(0x8000, 0x8000).mirror(0x1fff).r(m_soundbrd, FUNC(trackfld_audio_device::trackfld_sh_timer_r));
map(0xa000, 0xa000).mirror(0x1fff).w(this, FUNC(trackfld_state::konami_SN76496_latch_w));
map(0xc000, 0xc000).mirror(0x1fff).r(this, FUNC(trackfld_state::trackfld_SN76496_r)).w(this, FUNC(trackfld_state::konami_SN76496_w));
- map(0xe000, 0xe000).mirror(0x1ff8).w("dac", FUNC(dac_byte_interface::write));
+ map(0xe000, 0xe000).mirror(0x1ff8).w(m_dac, FUNC(dac_byte_interface::write));
map(0xe001, 0xe001).mirror(0x1ff8).noprw(); /* watch dog ?; reaktor reads here */
map(0xe002, 0xe002).mirror(0x1ff8).r("hyprolyb_adpcm", FUNC(hyprolyb_adpcm_device::busy_r));
map(0xe003, 0xe003).mirror(0x1ff8).nopw();
@@ -904,10 +899,10 @@ WRITE_LINE_MEMBER(trackfld_state::vblank_nmi)
MACHINE_CONFIG_START(trackfld_state::trackfld)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", KONAMI1, MASTER_CLOCK/6/2) /* a guess for now */
+ MCFG_DEVICE_ADD(m_maincpu, KONAMI1, MASTER_CLOCK/6/2) /* a guess for now */
MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_ADD("audiocpu", Z80, SOUND_CLOCK/4)
+ MCFG_DEVICE_ADD(m_audiocpu, Z80, SOUND_CLOCK/4)
MCFG_DEVICE_PROGRAM_MAP(sound_map)
MCFG_MACHINE_START_OVERRIDE(trackfld_state,trackfld)
@@ -928,17 +923,17 @@ MACHINE_CONFIG_START(trackfld_state::trackfld)
MCFG_WATCHDOG_ADD("watchdog")
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_ADD(m_screen, RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
- MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_PALETTE(m_palette)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, trackfld_state, vblank_irq))
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_trackfld)
- MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_ADD(m_palette, 16*16+16*16)
MCFG_PALETTE_INDIRECT_ENTRIES(32)
MCFG_PALETTE_INIT_OWNER(trackfld_state,trackfld)
MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld)
@@ -948,16 +943,16 @@ MACHINE_CONFIG_START(trackfld_state::trackfld)
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
- MCFG_DEVICE_ADD("trackfld_audio", TRACKFLD_AUDIO, 0)
+ MCFG_DEVICE_ADD(m_soundbrd, TRACKFLD_AUDIO, 0, m_audiocpu, m_vlm)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ls374.8e + r34-r47(20k) + r35-r53(10k) + r54(20k) + upc324.8f
+ MCFG_DEVICE_ADD(m_dac, DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ls374.8e + r34-r47(20k) + r35-r53(10k) + r54(20k) + upc324.8f
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_DEVICE_ADD("snsnd", SN76496, SOUND_CLOCK/8)
+ MCFG_DEVICE_ADD(m_sn, SN76496, SOUND_CLOCK/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_DEVICE_ADD("vlm", VLM5030, VLM_CLOCK)
+ MCFG_DEVICE_ADD(m_vlm, VLM5030, VLM_CLOCK)
MCFG_DEVICE_ADDRESS_MAP(0, vlm_map)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END
@@ -978,7 +973,7 @@ INTERRUPT_GEN_MEMBER(trackfld_state::yieartf_timer_irq)
MACHINE_CONFIG_START(trackfld_state::yieartf)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", MC6809E, MASTER_CLOCK/6/2) /* a guess for now */
+ MCFG_DEVICE_ADD(m_maincpu, MC6809E, MASTER_CLOCK/6/2) /* a guess for now */
MCFG_DEVICE_PROGRAM_MAP(yieartf_map)
MCFG_DEVICE_PERIODIC_INT_DRIVER(trackfld_state, yieartf_timer_irq, 480)
@@ -1004,17 +999,17 @@ MACHINE_CONFIG_START(trackfld_state::yieartf)
MCFG_WATCHDOG_ADD("watchdog")
/* video hardware */
- MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_ADD(m_screen, RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
- MCFG_SCREEN_PALETTE("palette")
+ MCFG_SCREEN_PALETTE(m_palette)
MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, trackfld_state, vblank_irq))
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_trackfld)
- MCFG_PALETTE_ADD("palette", 16*16+16*16)
+ MCFG_PALETTE_ADD(m_palette, 16*16+16*16)
MCFG_PALETTE_INDIRECT_ENTRIES(32)
MCFG_PALETTE_INIT_OWNER(trackfld_state,trackfld)
MCFG_VIDEO_START_OVERRIDE(trackfld_state,trackfld)
@@ -1024,16 +1019,16 @@ MACHINE_CONFIG_START(trackfld_state::yieartf)
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
- MCFG_DEVICE_ADD("trackfld_audio", TRACKFLD_AUDIO, 0)
+ MCFG_DEVICE_ADD(m_soundbrd, TRACKFLD_AUDIO, 0, finder_base::DUMMY_TAG, m_vlm)
- MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ls374.8e + r34-r47(20k) + r35-r53(10k) + r54(20k) + upc324.8f
+ MCFG_DEVICE_ADD(m_dac, DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 0.4) // ls374.8e + r34-r47(20k) + r35-r53(10k) + r54(20k) + upc324.8f
MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
- MCFG_DEVICE_ADD("snsnd", SN76496, MASTER_CLOCK/6/2)
+ MCFG_DEVICE_ADD(m_sn, SN76496, MASTER_CLOCK/6/2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
- MCFG_DEVICE_ADD("vlm", VLM5030, VLM_CLOCK)
+ MCFG_DEVICE_ADD(m_vlm, VLM5030, VLM_CLOCK)
MCFG_DEVICE_ADDRESS_MAP(0, vlm_map)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
MACHINE_CONFIG_END
@@ -1066,8 +1061,7 @@ void trackfld_state::hyprolyb_adpcm_map(address_map &map)
MACHINE_CONFIG_START(trackfld_state::hyprolyb)
trackfld(config);
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_PROGRAM_MAP(hyprolyb_sound_map)
+ m_audiocpu->set_addrmap(AS_PROGRAM, address_map_constructor(&std::remove_pointer_t<decltype(this)>::hyprolyb_sound_map, tag(), this));
MCFG_MACHINE_START_OVERRIDE(trackfld_state,trackfld)
MCFG_MACHINE_RESET_OVERRIDE(trackfld_state,trackfld)
@@ -1098,7 +1092,7 @@ MACHINE_CONFIG_START(trackfld_state::mastkin)
trackfld(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu", MC6809E, MASTER_CLOCK/6/2) /* a guess for now */
+ MCFG_DEVICE_REPLACE(m_maincpu, MC6809E, MASTER_CLOCK/6/2) /* a guess for now */
MCFG_DEVICE_PROGRAM_MAP(mastkin_map)
MCFG_DEVICE_MODIFY("mainlatch")
@@ -1111,11 +1105,10 @@ MACHINE_CONFIG_START(trackfld_state::wizzquiz)
/* basic machine hardware */
// right cpu?
- MCFG_DEVICE_REPLACE("maincpu",M6800,2048000) /* 1.400 MHz ??? */
+ MCFG_DEVICE_REPLACE(m_maincpu, M6800, 2048000) /* 1.400 MHz ??? */
MCFG_DEVICE_PROGRAM_MAP(wizzquiz_map)
- MCFG_DEVICE_MODIFY("screen")
- MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, trackfld_state, vblank_nmi))
+ m_screen->set_screen_vblank(DEVCB_WRITELINE(*this, trackfld_state, vblank_nmi));
MCFG_DEVICE_MODIFY("mainlatch")
MCFG_ADDRESSABLE_LATCH_Q7_OUT_CB(WRITELINE(*this, trackfld_state, nmi_mask_w))
@@ -1125,7 +1118,7 @@ MACHINE_CONFIG_START(trackfld_state::reaktor)
trackfld(config);
/* basic machine hardware */
- MCFG_DEVICE_REPLACE("maincpu",Z80,MASTER_CLOCK/6)
+ MCFG_DEVICE_REPLACE(m_maincpu, Z80, MASTER_CLOCK/6)
MCFG_DEVICE_PROGRAM_MAP(reaktor_map)
MCFG_DEVICE_IO_MAP(reaktor_io_map)
MACHINE_CONFIG_END