diff options
author | 2016-02-21 11:48:45 +0100 | |
---|---|---|
committer | 2016-02-21 11:48:45 +0100 | |
commit | cc24a339d8c0517259084b5c178d784626ba965c (patch) | |
tree | 9868e9687b5802ae0a3733712a3bbeb3bc75c953 /src/mame/drivers/gauntlet.cpp | |
parent | b5daabda5495dea5c50e17961ecfed2ea8619d76 (diff) |
Merge remote-tracking branch 'refs/remotes/mamedev/master'
Second attempt
Diffstat (limited to 'src/mame/drivers/gauntlet.cpp')
-rw-r--r-- | src/mame/drivers/gauntlet.cpp | 104 |
1 files changed, 54 insertions, 50 deletions
diff --git a/src/mame/drivers/gauntlet.cpp b/src/mame/drivers/gauntlet.cpp index 3bf38312812..f10375d51fe 100644 --- a/src/mame/drivers/gauntlet.cpp +++ b/src/mame/drivers/gauntlet.cpp @@ -191,13 +191,12 @@ WRITE16_MEMBER(gauntlet_state::sound_reset_w) m_soundcomm->sound_cpu_reset(); if (m_sound_reset_val & 1) { - machine().device("ymsnd")->reset(); - tms5220_device *tms5220 = machine().device<tms5220_device>("tms"); - tms5220->reset(); - tms5220->set_frequency(ATARI_CLOCK_14MHz/2 / 11); - set_ym2151_volume(0); - set_pokey_volume(0); - set_tms5220_volume(0); + m_ym2151->reset(); + m_tms5220->reset(); + m_tms5220->set_frequency(ATARI_CLOCK_14MHz/2 / 11); + m_ym2151->set_output_gain(ALL_OUTPUTS, 0.0f); + m_pokey->set_output_gain(ALL_OUTPUTS, 0.0f); + m_tms5220->set_output_gain(ALL_OUTPUTS, 0.0f); } } } @@ -213,12 +212,11 @@ WRITE16_MEMBER(gauntlet_state::sound_reset_w) READ8_MEMBER(gauntlet_state::switch_6502_r) { - tms5220_device *tms5220 = machine().device<tms5220_device>("tms"); int temp = 0x30; if (m_soundcomm->main_to_sound_ready()) temp ^= 0x80; if (m_soundcomm->sound_to_main_ready()) temp ^= 0x40; - if (!tms5220->readyq_r()) temp ^= 0x20; + if (!m_tms5220->readyq_r()) temp ^= 0x20; if (!(ioport("803008")->read() & 0x0008)) temp ^= 0x10; return temp; @@ -233,24 +231,23 @@ READ8_MEMBER(gauntlet_state::switch_6502_r) WRITE8_MEMBER(gauntlet_state::sound_ctl_w) { - tms5220_device *tms5220 = machine().device<tms5220_device>("tms"); switch (offset & 7) { case 0: /* music reset, bit D7, low reset */ - if (((data>>7)&1) == 0) machine().device("ymsnd")->reset(); + if (((data>>7)&1) == 0) m_ym2151->reset(); break; case 1: /* speech write, bit D7, active low */ - tms5220->wsq_w(data >> 7); + m_tms5220->wsq_w(data >> 7); break; case 2: /* speech reset, bit D7, active low */ - tms5220->rsq_w(data >> 7); + m_tms5220->rsq_w(data >> 7); break; case 3: /* speech squeak, bit D7 */ data = 5 | ((data >> 6) & 2); - tms5220->set_frequency(ATARI_CLOCK_14MHz/2 / (16 - data)); + m_tms5220->set_frequency(ATARI_CLOCK_14MHz/2 / (16 - data)); break; } } @@ -265,9 +262,9 @@ WRITE8_MEMBER(gauntlet_state::sound_ctl_w) WRITE8_MEMBER(gauntlet_state::mixer_w) { - set_ym2151_volume((data & 7) * 100 / 7); - set_pokey_volume(((data >> 3) & 3) * 100 / 3); - set_tms5220_volume(((data >> 5) & 7) * 100 / 7); + m_ym2151->set_output_gain(ALL_OUTPUTS, (data & 7) / 7.0f); + m_pokey->set_output_gain(ALL_OUTPUTS, ((data >> 3) & 3) / 3.0f); + m_tms5220->set_output_gain(ALL_OUTPUTS, ((data >> 5) & 7) / 7.0f); } @@ -492,15 +489,13 @@ GFXDECODE_END * *************************************/ -static MACHINE_CONFIG_START( gauntlet, gauntlet_state ) +static MACHINE_CONFIG_START( gauntlet_base, gauntlet_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2) MCFG_CPU_PROGRAM_MAP(main_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen) - MCFG_SLAPSTIC_ADD("slapstic") - MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8) MCFG_CPU_PROGRAM_MAP(sound_map) @@ -548,6 +543,27 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state ) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( gauntlet, gauntlet_base ) + MCFG_SLAPSTIC_ADD("slapstic", 104) +MACHINE_CONFIG_END + + +static MACHINE_CONFIG_DERIVED( gaunt2p, gauntlet_base ) + MCFG_SLAPSTIC_ADD("slapstic", 107) +MACHINE_CONFIG_END + + +static MACHINE_CONFIG_DERIVED( gauntlet2, gauntlet_base ) + MCFG_SLAPSTIC_ADD("slapstic", 106) +MACHINE_CONFIG_END + + +static MACHINE_CONFIG_DERIVED( vindctr2, gauntlet_base ) + MCFG_SLAPSTIC_ADD("slapstic", 118) +MACHINE_CONFIG_END + + + /************************************* * @@ -1627,10 +1643,10 @@ void gauntlet_state::swap_memory(void *ptr1, void *ptr2, int bytes) } } -void gauntlet_state::common_init(int slapstic, int vindctr2) +void gauntlet_state::common_init(int vindctr2) { UINT8 *rom = memregion("maincpu")->base(); - slapstic_configure(*m_maincpu, 0x038000, 0, slapstic); + slapstic_configure(*m_maincpu, 0x038000, 0); /* swap the top and bottom halves of the main CPU ROM images */ swap_memory(rom + 0x000000, rom + 0x008000, 0x8000); @@ -1646,19 +1662,7 @@ void gauntlet_state::common_init(int slapstic, int vindctr2) DRIVER_INIT_MEMBER(gauntlet_state,gauntlet) { - common_init(104, 0); -} - - -DRIVER_INIT_MEMBER(gauntlet_state,gaunt2p) -{ - common_init(107, 0); -} - - -DRIVER_INIT_MEMBER(gauntlet_state,gauntlet2) -{ - common_init(106, 0); + common_init(0); } @@ -1668,7 +1672,7 @@ DRIVER_INIT_MEMBER(gauntlet_state,vindctr2) dynamic_buffer data(0x8000); int i; - common_init(118, 1); + common_init(1); /* highly strange -- the address bits on the chip at 2J (and only that chip) are scrambled -- this is verified on the schematics! */ @@ -1704,20 +1708,20 @@ GAME( 1985, gauntletgr3, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, GAME( 1985, gauntletr2, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 2)", 0 ) GAME( 1985, gauntletr1, gauntlet, gauntlet, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (rev 1)", 0 ) -GAME( 1985, gauntlet2p, gauntlet, gauntlet, gauntlet, gauntlet_state, gaunt2p, ROT0, "Atari Games", "Gauntlet (2 Players, rev 6)", 0 ) -GAME( 1985, gauntlet2pj, gauntlet, gauntlet, gauntlet, gauntlet_state, gaunt2p, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 5)", 0 ) -GAME( 1985, gauntlet2pg, gauntlet, gauntlet, gauntlet, gauntlet_state, gaunt2p, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 4)", 0 ) -GAME( 1985, gauntlet2pr3, gauntlet, gauntlet, gauntlet, gauntlet_state, gaunt2p, ROT0, "Atari Games", "Gauntlet (2 Players, rev 3)", 0 ) -GAME( 1985, gauntlet2pj2, gauntlet, gauntlet, gauntlet, gauntlet_state, gaunt2p, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 2)", 0 ) -GAME( 1985, gauntlet2pg1, gauntlet, gauntlet, gauntlet, gauntlet_state, gaunt2p, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 1)", 0 ) +GAME( 1985, gauntlet2p, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, rev 6)", 0 ) +GAME( 1985, gauntlet2pj, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 5)", 0 ) +GAME( 1985, gauntlet2pg, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 4)", 0 ) +GAME( 1985, gauntlet2pr3, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, rev 3)", 0 ) +GAME( 1985, gauntlet2pj2, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, Japanese, rev 2)", 0 ) +GAME( 1985, gauntlet2pg1, gauntlet, gaunt2p, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet (2 Players, German, rev 1)", 0 ) -GAME( 1986, gaunt2, 0, gauntlet, gauntlet, gauntlet_state, gauntlet2, ROT0, "Atari Games", "Gauntlet II", 0 ) -GAME( 1986, gaunt2g, gaunt2, gauntlet, gauntlet, gauntlet_state, gauntlet2, ROT0, "Atari Games", "Gauntlet II (German)", 0 ) +GAME( 1986, gaunt2, 0, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II", 0 ) +GAME( 1986, gaunt2g, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (German)", 0 ) -GAME( 1986, gaunt22p, gaunt2, gauntlet, gauntlet, gauntlet_state, gauntlet2, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 2)", 0 ) -GAME( 1986, gaunt22p1, gaunt2, gauntlet, gauntlet, gauntlet_state, gauntlet2, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 1)", 0 ) -GAME( 1986, gaunt22pg, gaunt2, gauntlet, gauntlet, gauntlet_state, gauntlet2, ROT0, "Atari Games", "Gauntlet II (2 Players, German)", 0 ) +GAME( 1986, gaunt22p, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 2)", 0 ) +GAME( 1986, gaunt22p1, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, rev 1)", 0 ) +GAME( 1986, gaunt22pg, gaunt2, gauntlet2, gauntlet, gauntlet_state, gauntlet, ROT0, "Atari Games", "Gauntlet II (2 Players, German)", 0 ) -GAME( 1988, vindctr2, 0, gauntlet, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 3)", 0 ) -GAME( 1988, vindctr2r2, vindctr2, gauntlet, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 2)", 0 ) -GAME( 1988, vindctr2r1, vindctr2, gauntlet, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 1)", 0 ) +GAME( 1988, vindctr2, 0, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 3)", 0 ) +GAME( 1988, vindctr2r2, vindctr2, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 2)", 0 ) +GAME( 1988, vindctr2r1, vindctr2, vindctr2, vindctr2, gauntlet_state, vindctr2, ROT0, "Atari Games", "Vindicators Part II (rev 1)", 0 ) |