summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2013-01-19 22:27:56 +0000
committer Aaron Giles <aaron@aarongiles.com>2013-01-19 22:27:56 +0000
commit06e19f7d518986c8a01b3d92a810b121e13ed1ed (patch)
tree22ce120256534f95ac1f25c230dd00cdc8b1037c /src
parent2f37c1c0e3c0cb7aa9ae842e8ce17433874abc01 (diff)
Few minor cleanups.
Diffstat (limited to 'src')
-rw-r--r--src/mame/audio/cyberbal.c58
-rw-r--r--src/mame/drivers/atarig1.c72
-rw-r--r--src/mame/drivers/atarig42.c9
-rw-r--r--src/mame/drivers/atarigt.c119
-rw-r--r--src/mame/drivers/atarisy2.c58
-rw-r--r--src/mame/drivers/cyberbal.c51
-rw-r--r--src/mame/includes/atarig1.h15
-rw-r--r--src/mame/includes/atarig42.h8
-rw-r--r--src/mame/includes/atarigt.h18
-rw-r--r--src/mame/includes/atarisy2.h28
-rw-r--r--src/mame/includes/cyberbal.h57
-rw-r--r--src/mame/video/atarig1.c11
-rw-r--r--src/mame/video/atarig42.c11
-rw-r--r--src/mame/video/atarisy2.c86
-rw-r--r--src/mame/video/cyberbal.c70
15 files changed, 305 insertions, 366 deletions
diff --git a/src/mame/audio/cyberbal.c b/src/mame/audio/cyberbal.c
index f2724b297de..79b81f0222e 100644
--- a/src/mame/audio/cyberbal.c
+++ b/src/mame/audio/cyberbal.c
@@ -5,26 +5,19 @@
****************************************************************************/
#include "emu.h"
-#include "sound/dac.h"
#include "sound/2151intf.h"
#include "machine/atarigen.h"
#include "includes/cyberbal.h"
-static void update_sound_68k_interrupts(running_machine &machine);
-
-
-
-void cyberbal_sound_reset(running_machine &machine)
+void cyberbal_state::cyberbal_sound_reset()
{
- cyberbal_state *state = machine.driver_data<cyberbal_state>();
-
/* reset the sound system */
- state->m_bank_base = &state->memregion("audiocpu")->base()[0x10000];
- state->membank("soundbank")->set_base(&state->m_bank_base[0x0000]);
- state->m_fast_68k_int = state->m_io_68k_int = 0;
- state->m_sound_data_from_68k = state->m_sound_data_from_6502 = 0;
- state->m_sound_data_from_68k_ready = state->m_sound_data_from_6502_ready = 0;
+ m_bank_base = &memregion("audiocpu")->base()[0x10000];
+ membank("soundbank")->set_base(&m_bank_base[0x0000]);
+ m_fast_68k_int = m_io_68k_int = 0;
+ m_sound_data_from_68k = m_sound_data_from_6502 = 0;
+ m_sound_data_from_68k_ready = m_sound_data_from_6502_ready = 0;
}
@@ -35,7 +28,7 @@ void cyberbal_sound_reset(running_machine &machine)
*
*************************************/
-READ8_MEMBER(cyberbal_state::cyberbal_special_port3_r)
+READ8_MEMBER(cyberbal_state::special_port3_r)
{
int temp = ioport("JSAII")->read();
if (!(ioport("IN0")->read() & 0x8000)) temp ^= 0x80;
@@ -45,7 +38,7 @@ READ8_MEMBER(cyberbal_state::cyberbal_special_port3_r)
}
-READ8_MEMBER(cyberbal_state::cyberbal_sound_6502_stat_r)
+READ8_MEMBER(cyberbal_state::sound_6502_stat_r)
{
int temp = 0xff;
if (m_sound_data_from_6502_ready) temp ^= 0x80;
@@ -54,24 +47,24 @@ READ8_MEMBER(cyberbal_state::cyberbal_sound_6502_stat_r)
}
-WRITE8_MEMBER(cyberbal_state::cyberbal_sound_bank_select_w)
+WRITE8_MEMBER(cyberbal_state::sound_bank_select_w)
{
membank("soundbank")->set_base(&m_bank_base[0x1000 * ((data >> 6) & 3)]);
coin_counter_w(machine(), 1, (data >> 5) & 1);
coin_counter_w(machine(), 0, (data >> 4) & 1);
- machine().device("dac")->execute().set_input_line(INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
+ m_daccpu->set_input_line(INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
if (!(data & 0x01)) machine().device("ymsnd")->reset();
}
-READ8_MEMBER(cyberbal_state::cyberbal_sound_68k_6502_r)
+READ8_MEMBER(cyberbal_state::sound_68k_6502_r)
{
m_sound_data_from_68k_ready = 0;
return m_sound_data_from_68k;
}
-WRITE8_MEMBER(cyberbal_state::cyberbal_sound_68k_6502_w)
+WRITE8_MEMBER(cyberbal_state::sound_68k_6502_w)
{
m_sound_data_from_6502 = data;
m_sound_data_from_6502_ready = 1;
@@ -79,7 +72,7 @@ WRITE8_MEMBER(cyberbal_state::cyberbal_sound_68k_6502_w)
if (!m_io_68k_int)
{
m_io_68k_int = 1;
- update_sound_68k_interrupts(machine());
+ update_sound_68k_interrupts();
}
}
@@ -91,35 +84,34 @@ WRITE8_MEMBER(cyberbal_state::cyberbal_sound_68k_6502_w)
*
*************************************/
-static void update_sound_68k_interrupts(running_machine &machine)
+void cyberbal_state::update_sound_68k_interrupts()
{
- cyberbal_state *state = machine.driver_data<cyberbal_state>();
- machine.device("dac")->execute().set_input_line(6, state->m_fast_68k_int ? ASSERT_LINE : CLEAR_LINE);
- machine.device("dac")->execute().set_input_line(2, state->m_io_68k_int ? ASSERT_LINE : CLEAR_LINE);
+ m_daccpu->set_input_line(6, m_fast_68k_int ? ASSERT_LINE : CLEAR_LINE);
+ m_daccpu->set_input_line(2, m_io_68k_int ? ASSERT_LINE : CLEAR_LINE);
}
-INTERRUPT_GEN_MEMBER(cyberbal_state::cyberbal_sound_68k_irq_gen)
+INTERRUPT_GEN_MEMBER(cyberbal_state::sound_68k_irq_gen)
{
if (!m_fast_68k_int)
{
m_fast_68k_int = 1;
- update_sound_68k_interrupts(machine());
+ update_sound_68k_interrupts();
}
}
-WRITE16_MEMBER(cyberbal_state::cyberbal_io_68k_irq_ack_w)
+WRITE16_MEMBER(cyberbal_state::io_68k_irq_ack_w)
{
if (m_io_68k_int)
{
m_io_68k_int = 0;
- update_sound_68k_interrupts(machine());
+ update_sound_68k_interrupts();
}
}
-READ16_MEMBER(cyberbal_state::cyberbal_sound_68k_r)
+READ16_MEMBER(cyberbal_state::sound_68k_r)
{
int temp = (m_sound_data_from_6502 << 8) | 0xff;
@@ -131,7 +123,7 @@ READ16_MEMBER(cyberbal_state::cyberbal_sound_68k_r)
}
-WRITE16_MEMBER(cyberbal_state::cyberbal_sound_68k_w)
+WRITE16_MEMBER(cyberbal_state::sound_68k_w)
{
if (ACCESSING_BITS_8_15)
{
@@ -141,14 +133,14 @@ WRITE16_MEMBER(cyberbal_state::cyberbal_sound_68k_w)
}
-WRITE16_MEMBER(cyberbal_state::cyberbal_sound_68k_dac_w)
+WRITE16_MEMBER(cyberbal_state::sound_68k_dac_w)
{
- dac_device *dac = machine().device<dac_device>((offset & 8) ? "dac2" : "dac1");
+ dac_device *dac = (offset & 8) ? m_dac2 : m_dac1;
dac->write_unsigned16((((data >> 3) & 0x800) | ((data >> 2) & 0x7ff)) << 4);
if (m_fast_68k_int)
{
m_fast_68k_int = 0;
- update_sound_68k_interrupts(machine());
+ update_sound_68k_interrupts();
}
}
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index 0d7dff5fb9b..41a3d646aa8 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -19,7 +19,6 @@
#include "emu.h"
-#include "cpu/m68000/m68000.h"
#include "audio/atarijsa.h"
#include "video/atarirle.h"
#include "includes/atarig1.h"
@@ -34,8 +33,8 @@
void atarig1_state::update_interrupts()
{
- machine().device("maincpu")->execute().set_input_line(1, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
- machine().device("maincpu")->execute().set_input_line(2, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(1, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(2, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
}
@@ -139,12 +138,14 @@ void atarig1_state::update_bank(int bank)
}
-static void pitfightb_state_postload(running_machine &machine)
+void atarig1_state::device_post_load()
{
- atarig1_state *state = machine.driver_data<atarig1_state>();
- int bank = state->m_bslapstic_bank;
- state->m_bslapstic_bank = -1;
- state->update_bank(bank);
+ if (m_bslapstic_base != NULL)
+ {
+ int bank = m_bslapstic_bank;
+ m_bslapstic_bank = -1;
+ update_bank(bank);
+ }
}
@@ -157,37 +158,35 @@ READ16_MEMBER(atarig1_state::pitfightb_cheap_slapstic_r)
/* offset 0 primes the chip */
if (offset == 0)
- m_bslapstic_primed = TRUE;
+ m_bslapstic_primed = true;
/* one of 4 bankswitchers produces the result */
else if (m_bslapstic_primed)
{
if (offset == 0x42)
- update_bank(0), m_bslapstic_primed = FALSE;
+ update_bank(0), m_bslapstic_primed = false;
else if (offset == 0x52)
- update_bank(1), m_bslapstic_primed = FALSE;
+ update_bank(1), m_bslapstic_primed = false;
else if (offset == 0x62)
- update_bank(2), m_bslapstic_primed = FALSE;
+ update_bank(2), m_bslapstic_primed = false;
else if (offset == 0x72)
- update_bank(3), m_bslapstic_primed = FALSE;
+ update_bank(3), m_bslapstic_primed = false;
}
return result;
}
-static void pitfightb_cheap_slapstic_init(running_machine &machine)
+void atarig1_state::pitfightb_cheap_slapstic_init()
{
- atarig1_state *state = machine.driver_data<atarig1_state>();
-
/* install a read handler */
- state->m_bslapstic_base = machine.device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(FUNC(atarig1_state::pitfightb_cheap_slapstic_r),state));
+ m_bslapstic_base = m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16_delegate(FUNC(atarig1_state::pitfightb_cheap_slapstic_r),this));
/* allocate memory for a copy of bank 0 */
- state->m_bslapstic_bank0 = auto_alloc_array(machine, UINT8, 0x2000);
- memcpy(state->m_bslapstic_bank0, state->m_bslapstic_base, 0x2000);
+ m_bslapstic_bank0 = auto_alloc_array(machine(), UINT8, 0x2000);
+ memcpy(m_bslapstic_bank0, m_bslapstic_base, 0x2000);
/* not primed by default */
- state->m_bslapstic_primed = FALSE;
+ m_bslapstic_primed = false;
}
@@ -1205,33 +1204,30 @@ ROM_END
*
*************************************/
-static void init_g1_common(running_machine &machine, offs_t slapstic_base, int slapstic, int is_pitfight)
+void atarig1_state::init_common(offs_t slapstic_base, int slapstic, bool is_pitfight)
{
- atarig1_state *state = machine.driver_data<atarig1_state>();
-
- state->m_eeprom_default = NULL;
+ m_eeprom_default = NULL;
if (slapstic == -1)
{
- pitfightb_cheap_slapstic_init(machine);
- state->save_item(NAME(state->m_bslapstic_bank));
- state->save_item(NAME(state->m_bslapstic_primed));
- machine.save().register_postload(save_prepost_delegate(FUNC(pitfightb_state_postload), &machine));
+ pitfightb_cheap_slapstic_init();
+ save_item(NAME(m_bslapstic_bank));
+ save_item(NAME(m_bslapstic_primed));
}
else if (slapstic != 0)
- state->slapstic_configure(*machine.device<cpu_device>("maincpu"), slapstic_base, 0, slapstic);
- atarijsa_init(machine, "IN0", 0x4000);
+ slapstic_configure(*m_maincpu, slapstic_base, 0, slapstic);
+ atarijsa_init(machine(), "IN0", 0x4000);
- state->m_is_pitfight = is_pitfight;
+ m_is_pitfight = is_pitfight;
}
-DRIVER_INIT_MEMBER(atarig1_state,hydra) { init_g1_common(machine(), 0x078000, 116, 0); }
-DRIVER_INIT_MEMBER(atarig1_state,hydrap) { init_g1_common(machine(), 0x000000, 0, 0); }
+DRIVER_INIT_MEMBER(atarig1_state,hydra) { init_common(0x078000, 116, 0); }
+DRIVER_INIT_MEMBER(atarig1_state,hydrap) { init_common(0x000000, 0, 0); }
-DRIVER_INIT_MEMBER(atarig1_state,pitfight9) { init_g1_common(machine(), 0x038000, 114, 1); }
-DRIVER_INIT_MEMBER(atarig1_state,pitfight7) { init_g1_common(machine(), 0x038000, 112, 1); }
-DRIVER_INIT_MEMBER(atarig1_state,pitfight) { init_g1_common(machine(), 0x038000, 111, 1); }
-DRIVER_INIT_MEMBER(atarig1_state,pitfightj) { init_g1_common(machine(), 0x038000, 113, 1); }
-DRIVER_INIT_MEMBER(atarig1_state,pitfightb) { init_g1_common(machine(), 0x038000, -1, 1); }
+DRIVER_INIT_MEMBER(atarig1_state,pitfight9) { init_common(0x038000, 114, 1); }
+DRIVER_INIT_MEMBER(atarig1_state,pitfight7) { init_common(0x038000, 112, 1); }
+DRIVER_INIT_MEMBER(atarig1_state,pitfight) { init_common(0x038000, 111, 1); }
+DRIVER_INIT_MEMBER(atarig1_state,pitfightj) { init_common(0x038000, 113, 1); }
+DRIVER_INIT_MEMBER(atarig1_state,pitfightb) { init_common(0x038000, -1, 1); }
/*************************************
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index 99dff1e7bc2..3f5a3bcf83f 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -18,7 +18,6 @@
***************************************************************************/
#include "emu.h"
-#include "cpu/m68000/m68000.h"
#include "machine/asic65.h"
#include "audio/atarijsa.h"
#include "video/atarirle.h"
@@ -33,8 +32,8 @@
void atarig42_state::update_interrupts()
{
- machine().device("maincpu")->execute().set_input_line(4, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
- machine().device("maincpu")->execute().set_input_line(5, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(4, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(5, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
}
@@ -782,7 +781,7 @@ DRIVER_INIT_MEMBER(atarig42_state,roadriot)
m_playfield_base = 0x400;
- address_space &main = machine().device<m68000_device>("maincpu")->space(AS_PROGRAM);
+ address_space &main = m_maincpu->space(AS_PROGRAM);
m_sloop_base = main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(FUNC(atarig42_state::roadriot_sloop_data_r),this), write16_delegate(FUNC(atarig42_state::roadriot_sloop_data_w),this));
main.set_direct_update_handler(direct_update_delegate(FUNC(atarig42_state::atarig42_sloop_direct_handler), this));
@@ -820,7 +819,7 @@ DRIVER_INIT_MEMBER(atarig42_state,guardian)
/* put an RTS there so we don't die */
*(UINT16 *)&memregion("maincpu")->base()[0x80000] = 0x4E75;
- address_space &main = machine().device<m68000_device>("maincpu")->space(AS_PROGRAM);
+ address_space &main = m_maincpu->space(AS_PROGRAM);
m_sloop_base = main.install_readwrite_handler(0x000000, 0x07ffff, read16_delegate(FUNC(atarig42_state::guardians_sloop_data_r),this), write16_delegate(FUNC(atarig42_state::guardians_sloop_data_w),this));
main.set_direct_update_handler(direct_update_delegate(FUNC(atarig42_state::atarig42_sloop_direct_handler), this));
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index b03b77b0209..764e29116dd 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -138,10 +138,10 @@ READ32_MEMBER(atarigt_state::special_port3_r)
}
-#if (HACK_TMEK_CONTROLS)
-INLINE void compute_fake_pots(int *pots)
+inline void atarigt_state::compute_fake_pots(int *pots)
{
- int fake = machine.root_device().ioport("FAKE")->read();
+#if (HACK_TMEK_CONTROLS)
+ int fake = ioport("FAKE")->read();
pots[0] = pots[1] = pots[2] = pots[3] = 0x80;
@@ -167,8 +167,8 @@ INLINE void compute_fake_pots(int *pots)
pots[1] = 0xff, pots[3] = 0x00;
else if (fake & 0x08) /* right only */
pots[3] = 0xff, pots[1] = 0x00;
-}
#endif
+}
READ32_MEMBER(atarigt_state::analog_port0_r)
@@ -282,21 +282,17 @@ WRITE32_MEMBER(atarigt_state::sound_data_w)
-static void tmek_update_mode(atarigt_state *state, offs_t offset)
+void atarigt_state::tmek_update_mode(offs_t offset)
{
- int i;
-
/* pop us into the readseq */
- for (i = 0; i < ADDRSEQ_COUNT - 1; i++)
- state->m_protaddr[i] = state->m_protaddr[i + 1];
- state->m_protaddr[ADDRSEQ_COUNT - 1] = offset;
-
+ for (int i = 0; i < ADDRSEQ_COUNT - 1; i++)
+ m_protaddr[i] = m_protaddr[i + 1];
+ m_protaddr[ADDRSEQ_COUNT - 1] = offset;
}
-static void tmek_protection_w(address_space &space, offs_t offset, UINT16 data)
+void atarigt_state::tmek_protection_w(address_space &space, offs_t offset, UINT16 data)
{
- atarigt_state *state = space.machine().driver_data<atarigt_state>();
/*
T-Mek init:
($387C0) = $0001
@@ -308,23 +304,22 @@ static void tmek_protection_w(address_space &space, offs_t offset, UINT16 data)
if (LOG_PROTECTION) logerror("%06X:Protection W@%06X = %04X\n", space.device().safe_pcbase(), offset, data);
/* track accesses */
- tmek_update_mode(state, offset);
+ tmek_update_mode(offset);
switch (offset)
{
case 0xdb0000:
- state->m_ignore_writes = (data == 0x18);
+ m_ignore_writes = (data == 0x18);
break;
}
}
-static void tmek_protection_r(address_space &space, offs_t offset, UINT16 *data)
+void atarigt_state::tmek_protection_r(address_space &space, offs_t offset, UINT16 *data)
{
- atarigt_state *state = space.machine().driver_data<atarigt_state>();
if (LOG_PROTECTION) logerror("%06X:Protection R@%06X\n", space.device().safe_pcbase(), offset);
/* track accesses */
- tmek_update_mode(state, offset);
+ tmek_update_mode(offset);
/* handle specific reads */
switch (offset)
@@ -348,46 +343,43 @@ static void tmek_protection_r(address_space &space, offs_t offset, UINT16 *data)
*
*************************************/
-static void primage_update_mode(atarigt_state *state, offs_t offset)
+void atarigt_state::primrage_update_mode(offs_t offset)
{
- int i;
-
/* pop us into the readseq */
- for (i = 0; i < ADDRSEQ_COUNT - 1; i++)
- state->m_protaddr[i] = state->m_protaddr[i + 1];
- state->m_protaddr[ADDRSEQ_COUNT - 1] = offset;
+ for (int i = 0; i < ADDRSEQ_COUNT - 1; i++)
+ m_protaddr[i] = m_protaddr[i + 1];
+ m_protaddr[ADDRSEQ_COUNT - 1] = offset;
/* check for particular sequences */
- if (!state->m_protmode)
+ if (!m_protmode)
{
/* this is from the code at $20f90 */
- if (state->m_protaddr[1] == 0xdcc7c4 && state->m_protaddr[2] == 0xdcc7c4 && state->m_protaddr[3] == 0xdc4010)
+ if (m_protaddr[1] == 0xdcc7c4 && m_protaddr[2] == 0xdcc7c4 && m_protaddr[3] == 0xdc4010)
{
if (LOG_PROTECTION) logerror("prot:Entering mode 1\n");
- state->m_protmode = 1;
+ m_protmode = 1;
}
/* this is from the code at $27592 */
- if (state->m_protaddr[0] == 0xdcc7ca && state->m_protaddr[1] == 0xdcc7ca && state->m_protaddr[2] == 0xdcc7c6 && state->m_protaddr[3] == 0xdc4022)
+ if (m_protaddr[0] == 0xdcc7ca && m_protaddr[1] == 0xdcc7ca && m_protaddr[2] == 0xdcc7c6 && m_protaddr[3] == 0xdc4022)
{
if (LOG_PROTECTION) logerror("prot:Entering mode 2\n");
- state->m_protmode = 2;
+ m_protmode = 2;
}
/* this is from the code at $3d8dc */
- if (state->m_protaddr[0] == 0xdcc7c0 && state->m_protaddr[1] == 0xdcc7c0 && state->m_protaddr[2] == 0xdc80f2 && state->m_protaddr[3] == 0xdc7af2)
+ if (m_protaddr[0] == 0xdcc7c0 && m_protaddr[1] == 0xdcc7c0 && m_protaddr[2] == 0xdc80f2 && m_protaddr[3] == 0xdc7af2)
{
if (LOG_PROTECTION) logerror("prot:Entering mode 3\n");
- state->m_protmode = 3;
+ m_protmode = 3;
}
}
}
-static void primrage_protection_w(address_space &space, offs_t offset, UINT16 data)
+void atarigt_state::primrage_protection_w(address_space &space, offs_t offset, UINT16 data)
{
- atarigt_state *state = space.machine().driver_data<atarigt_state>();
if (LOG_PROTECTION)
{
UINT32 pc = space.device().safe_pcbase();
@@ -431,36 +423,35 @@ static void primrage_protection_w(address_space &space, offs_t offset, UINT16 da
/* mask = 0x78fff */
/* track accesses */
- primage_update_mode(state, offset);
+ primrage_update_mode(offset);
/* check for certain read sequences */
- if (state->m_protmode == 1 && offset >= 0xdc7800 && offset < 0xdc7800 + sizeof(state->m_protdata) * 2)
- state->m_protdata[(offset - 0xdc7800) / 2] = data;
+ if (m_protmode == 1 && offset >= 0xdc7800 && offset < 0xdc7800 + sizeof(m_protdata) * 2)
+ m_protdata[(offset - 0xdc7800) / 2] = data;
- if (state->m_protmode == 2)
+ if (m_protmode == 2)
{
int temp = (offset - 0xdc7800) / 2;
if (LOG_PROTECTION) logerror("prot:mode 2 param = %04X\n", temp);
- state->m_protresult = temp * 0x6915 + 0x6915;
+ m_protresult = temp * 0x6915 + 0x6915;
}
- if (state->m_protmode == 3)
+ if (m_protmode == 3)
{
if (offset == 0xdc4700)
{
if (LOG_PROTECTION) logerror("prot:Clearing mode 3\n");
- state->m_protmode = 0;
+ m_protmode = 0;
}
}
}
-static void primrage_protection_r(address_space &space, offs_t offset, UINT16 *data)
+void atarigt_state::primrage_protection_r(address_space &space, offs_t offset, UINT16 *data)
{
- atarigt_state *state = space.machine().driver_data<atarigt_state>();
/* track accesses */
- primage_update_mode(state, offset);
+ primrage_update_mode(offset);
if (LOG_PROTECTION)
{
@@ -537,7 +528,7 @@ if (LOG_PROTECTION)
{
/* status register; the code spins on this waiting for the high bit to be set */
case 0xdc4700:
-// if (state->m_protmode != 0)
+// if (m_protmode != 0)
{
*data = 0x8000;
}
@@ -545,18 +536,18 @@ if (LOG_PROTECTION)
/* some kind of result register */
case 0xdcc7c2:
- if (state->m_protmode == 2)
+ if (m_protmode == 2)
{
- *data = state->m_protresult;
- state->m_protmode = 0;
+ *data = m_protresult;
+ m_protmode = 0;
if (LOG_PROTECTION) logerror("prot:Clearing mode 2\n");
}
break;
case 0xdcc7c4:
- if (state->m_protmode == 1)
+ if (m_protmode == 1)
{
- state->m_protmode = 0;
+ m_protmode = 0;
if (LOG_PROTECTION) logerror("prot:Clearing mode 1\n");
}
break;
@@ -580,13 +571,13 @@ READ32_MEMBER(atarigt_state::colorram_protection_r)
if (ACCESSING_BITS_16_31)
{
result = atarigt_colorram_r(address);
- (*m_protection_r)(space, address, &result);
+ (this->*m_protection_r)(space, address, &result);
result32 |= result << 16;
}
if (ACCESSING_BITS_0_15)
{
result = atarigt_colorram_r(address + 2);
- (*m_protection_r)(space, address + 2, &result);
+ (this->*m_protection_r)(space, address + 2, &result);
result32 |= result;
}
@@ -602,13 +593,13 @@ WRITE32_MEMBER(atarigt_state::colorram_protection_w)
{
if (!m_ignore_writes)
atarigt_colorram_w(address, data >> 16, mem_mask >> 16);
- (*m_protection_w)(space, address, data >> 16);
+ (this->*m_protection_w)(space, address, data >> 16);
}
if (ACCESSING_BITS_0_15)
{
if (!m_ignore_writes)
atarigt_colorram_w(address + 2, data, mem_mask);
- (*m_protection_w)(space, address + 2, data);
+ (this->*m_protection_w)(space, address + 2, data);
}
}
@@ -1320,31 +1311,29 @@ DRIVER_INIT_MEMBER(atarigt_state,tmek)
cage_set_irq_handler(cage_irq_callback);
/* setup protection */
- m_protection_r = tmek_protection_r;
- m_protection_w = tmek_protection_w;
+ m_protection_r = &atarigt_state::tmek_protection_r;
+ m_protection_w = &atarigt_state::tmek_protection_w;
/* temp hack */
machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32_delegate(FUNC(atarigt_state::tmek_pf_w),this));
}
-static void primrage_init_common(running_machine &machine, offs_t cage_speedup)
+void atarigt_state::primrage_init_common(offs_t cage_speedup)
{
- atarigt_state *state = machine.driver_data<atarigt_state>();
-
- state->m_eeprom_default = NULL;
- state->m_is_primrage = 1;
+ m_eeprom_default = NULL;
+ m_is_primrage = 1;
- cage_init(machine, cage_speedup);
+ cage_init(machine(), cage_speedup);
cage_set_irq_handler(cage_irq_callback);
/* install protection */
- state->m_protection_r = primrage_protection_r;
- state->m_protection_w = primrage_protection_w;
+ m_protection_r = &atarigt_state::primrage_protection_r;
+ m_protection_w = &atarigt_state::primrage_protection_w;
}
-DRIVER_INIT_MEMBER(atarigt_state,primrage) { primrage_init_common(machine(), 0x42f2); }
-DRIVER_INIT_MEMBER(atarigt_state,primrage20) { primrage_init_common(machine(), 0x48a4); }
+DRIVER_INIT_MEMBER(atarigt_state,primrage) { primrage_init_common(0x42f2); }
+DRIVER_INIT_MEMBER(atarigt_state,primrage20) { primrage_init_common(0x48a4); }
/*************************************
*
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index 9e3074508ac..2f4952764e2 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -124,8 +124,6 @@
#include "emu.h"
-#include "cpu/m6502/m6502.h"
-#include "cpu/t11/t11.h"
#include "includes/slapstic.h"
#include "includes/atarisy2.h"
#include "sound/tms5220.h"
@@ -141,16 +139,6 @@
/*************************************
*
- * Prototypes
- *
- *************************************/
-
-static void bankselect_postload(running_machine &machine);
-
-
-
-/*************************************
- *
* Interrupt updating
*
*************************************/
@@ -158,24 +146,24 @@ static void bankselect_postload(running_machine &machine);
void atarisy2_state::update_interrupts()
{
if (m_video_int_state)
- machine().device("maincpu")->execute().set_input_line(3, ASSERT_LINE);
+ m_maincpu->set_input_line(3, ASSERT_LINE);
else
- machine().device("maincpu")->execute().set_input_line(3, CLEAR_LINE);
+ m_maincpu->set_input_line(3, CLEAR_LINE);
if (m_scanline_int_state)
- machine().device("maincpu")->execute().set_input_line(2, ASSERT_LINE);
+ m_maincpu->set_input_line(2, ASSERT_LINE);
else
- machine().device("maincpu")->execute().set_input_line(2, CLEAR_LINE);
+ m_maincpu->set_input_line(2, CLEAR_LINE);
if (m_p2portwr_state)
- machine().device("maincpu")->execute().set_input_line(1, ASSERT_LINE);
+ m_maincpu->set_input_line(1, ASSERT_LINE);
else
- machine().device("maincpu")->execute().set_input_line(1, CLEAR_LINE);
+ m_maincpu->set_input_line(1, CLEAR_LINE);
if (m_p2portrd_state)
- machine().device("maincpu")->execute().set_input_line(0, ASSERT_LINE);
+ m_maincpu->set_input_line(0, ASSERT_LINE);
else
- machine().device("maincpu")->execute().set_input_line(0, CLEAR_LINE);
+ m_maincpu->set_input_line(0, CLEAR_LINE);
}
@@ -193,7 +181,7 @@ void atarisy2_state::scanline_update(screen_device &screen, int scanline)
/* generate the 32V interrupt (IRQ 2) */
if ((scanline % 64) == 0)
if (m_interrupt_enable & 4)
- scanline_int_gen(*subdevice("maincpu"));
+ scanline_int_gen(*m_maincpu);
}
}
@@ -225,7 +213,6 @@ MACHINE_START_MEMBER(atarisy2_state,atarisy2)
save_item(NAME(m_which_adc));
save_item(NAME(m_p2portwr_state));
save_item(NAME(m_p2portrd_state));
- machine().save().register_postload(save_prepost_delegate(FUNC(bankselect_postload), &machine()));
save_item(NAME(m_sound_reset_state));
}
@@ -236,8 +223,7 @@ MACHINE_RESET_MEMBER(atarisy2_state,atarisy2)
slapstic_reset();
scanline_timer_reset(*machine().primary_screen, 64);
- address_space &main = machine().device<t11_device>("maincpu")->space(AS_PROGRAM);
- main.set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this));
+ m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this));
m_p2portwr_state = 0;
m_p2portrd_state = 0;
@@ -273,7 +259,7 @@ WRITE16_MEMBER(atarisy2_state::int1_ack_w)
{
/* reset sound CPU */
if (ACCESSING_BITS_0_7)
- machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
+ m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 1) ? ASSERT_LINE : CLEAR_LINE);
}
@@ -325,18 +311,18 @@ WRITE16_MEMBER(atarisy2_state::bankselect_w)
COMBINE_DATA(&newword);
m_bankselect[offset] = newword;
- base = &machine().root_device().memregion("maincpu")->base()[bankoffset[(newword >> 10) & 0x3f]];
+ base = &memregion("maincpu")->base()[bankoffset[(newword >> 10) & 0x3f]];
memcpy(offset ? m_rombank2 : m_rombank1, base, 0x2000);
}
-static void bankselect_postload(running_machine &machine)
+void atarisy2_state::device_post_load()
{
- address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);
- atarisy2_state *state = machine.driver_data<atarisy2_state>();
+ atarigen_state::device_post_load();
- state->bankselect_w(space, 0, state->m_bankselect[0], 0xffff);
- state->bankselect_w(space, 1, state->m_bankselect[1], 0xffff);
+ address_space &space = m_maincpu->space(AS_PROGRAM);
+ bankselect_w(space, 0, m_bankselect[0], 0xffff);
+ bankselect_w(space, 1, m_bankselect[1], 0xffff);
}
@@ -785,7 +771,7 @@ WRITE8_MEMBER(atarisy2_state::coincount_w)
/* full memory map derived from schematics */
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy2_state )
AM_RANGE(0x0000, 0x0fff) AM_RAM
- AM_RANGE(0x1000, 0x11ff) AM_MIRROR(0x0200) AM_RAM_WRITE_LEGACY(atarisy2_paletteram_w) AM_SHARE("paletteram")
+ AM_RANGE(0x1000, 0x11ff) AM_MIRROR(0x0200) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram")
AM_RANGE(0x1400, 0x1403) AM_MIRROR(0x007c) AM_READWRITE(adc_r, bankselect_w) AM_SHARE("bankselect")
AM_RANGE(0x1480, 0x1487) AM_MIRROR(0x0078) AM_WRITE(adc_strobe_w)
AM_RANGE(0x1580, 0x1581) AM_MIRROR(0x001e) AM_WRITE(int0_ack_w)
@@ -794,14 +780,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy2_state )
AM_RANGE(0x15e0, 0x15e1) AM_MIRROR(0x001e) AM_WRITE(video_int_ack_w)
AM_RANGE(0x1600, 0x1601) AM_MIRROR(0x007e) AM_WRITE(int_enable_w)
AM_RANGE(0x1680, 0x1681) AM_MIRROR(0x007e) AM_WRITE8(sound_w, 0x00ff)
- AM_RANGE(0x1700, 0x1701) AM_MIRROR(0x007e) AM_WRITE_LEGACY(atarisy2_xscroll_w) AM_SHARE("xscroll")
- AM_RANGE(0x1780, 0x1781) AM_MIRROR(0x007e) AM_WRITE_LEGACY(atarisy2_yscroll_w) AM_SHARE("yscroll")
+ AM_RANGE(0x1700, 0x1701) AM_MIRROR(0x007e) AM_WRITE(xscroll_w) AM_SHARE("xscroll")
+ AM_RANGE(0x1780, 0x1781) AM_MIRROR(0x007e) AM_WRITE(yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0x1800, 0x1801) AM_MIRROR(0x03fe) AM_READ(switch_r) AM_WRITE(watchdog_reset16_w)
AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x03fe) AM_READ(sound_r)
- AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(atarisy2_videoram_r, atarisy2_videoram_w)
+ AM_RANGE(0x2000, 0x3fff) AM_READWRITE(videoram_r, videoram_w)
AM_RANGE(0x4000, 0x5fff) AM_ROM AM_SHARE("rombank1")
AM_RANGE(0x6000, 0x7fff) AM_ROM AM_SHARE("rombank2")
- AM_RANGE(0x8000, 0x81ff) AM_READWRITE_LEGACY(atarisy2_slapstic_r, atarisy2_slapstic_w) AM_SHARE("slapstic_base")
+ AM_RANGE(0x8000, 0x81ff) AM_READWRITE(slapstic_r, slapstic_w) AM_SHARE("slapstic_base")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c
index d14a3286471..db96e78bec3 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -20,10 +20,7 @@
#include "emu.h"
-#include "cpu/m68000/m68000.h"
-#include "cpu/m6502/m6502.h"
#include "sound/2151intf.h"
-#include "sound/dac.h"
#include "rendlay.h"
#include "audio/atarijsa.h"
#include "video/atarimo.h"
@@ -38,15 +35,15 @@
void cyberbal_state::update_interrupts()
{
- if (subdevice("extra") != NULL)
+ if (m_extracpu != NULL)
{
- subdevice("maincpu")->execute().set_input_line(1, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
- subdevice("extra")->execute().set_input_line(1, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(1, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_extracpu->set_input_line(1, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
}
else
{
- subdevice("maincpu")->execute().set_input_line(1, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
- subdevice("maincpu")->execute().set_input_line(3, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(1, m_video_int_state ? ASSERT_LINE : CLEAR_LINE);
+ m_maincpu->set_input_line(3, m_sound_int_state ? ASSERT_LINE : CLEAR_LINE);
}
}
@@ -69,10 +66,10 @@ MACHINE_RESET_MEMBER(cyberbal_state,cyberbal)
atarigen_state::machine_reset();
scanline_timer_reset(*machine().primary_screen, 8);
- cyberbal_sound_reset(machine());
+ cyberbal_sound_reset();
/* Extra CPU (second M68k) doesn't run until reset */
- machine().device("extra")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
+ m_extracpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
@@ -124,7 +121,7 @@ READ16_MEMBER(cyberbal_state::sound_state_r)
WRITE16_MEMBER(cyberbal_state::p2_reset_w)
{
- machine().device("extra")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
+ m_extracpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
}
@@ -146,8 +143,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0xfd8000, 0xfd9fff) AM_WRITE8(sound_w, 0xff00)
AM_RANGE(0xfe0000, 0xfe0fff) AM_READ(special_port0_r)
AM_RANGE(0xfe1000, 0xfe1fff) AM_READ_PORT("IN1")
- AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_1_w) AM_SHARE("paletteram_1")
- AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_0_w) AM_SHARE("paletteram_0")
+ AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_WRITE(paletteram_1_w) AM_SHARE("paletteram_1")
+ AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(paletteram_0_w) AM_SHARE("paletteram_0")
AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE(playfield2_w) AM_SHARE("playfield2")
AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(alpha2_w) AM_SHARE("alpha2")
AM_RANGE(0xff3000, 0xff37ff) AM_READWRITE_LEGACY(atarimo_1_spriteram_r, atarimo_1_spriteram_w)
@@ -173,8 +170,8 @@ static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0xfc0000, 0xfdffff) AM_WRITE(video_int_ack_w)
AM_RANGE(0xfe0000, 0xfe0fff) AM_READ(special_port0_r)
AM_RANGE(0xfe1000, 0xfe1fff) AM_READ_PORT("IN1")
- AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_1_w) AM_SHARE("paletteram_1")
- AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_0_w) AM_SHARE("paletteram_0")
+ AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_WRITE(paletteram_1_w) AM_SHARE("paletteram_1")
+ AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(paletteram_0_w) AM_SHARE("paletteram_0")
AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE(playfield2_w) AM_SHARE("playfield2")
AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(alpha2_w) AM_SHARE("alpha2")
AM_RANGE(0xff3000, 0xff37ff) AM_READWRITE_LEGACY(atarimo_1_spriteram_r, atarimo_1_spriteram_w)
@@ -198,14 +195,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, cyberbal_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x2001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0x2800, 0x2801) AM_WRITE(cyberbal_sound_68k_6502_w)
+ AM_RANGE(0x2800, 0x2801) AM_WRITE(sound_68k_6502_w)
AM_RANGE(0x2802, 0x2803) AM_READWRITE(m6502_irq_ack_r, m6502_irq_ack_w)
AM_RANGE(0x2804, 0x2805) AM_WRITE(m6502_sound_w)
- AM_RANGE(0x2806, 0x2807) AM_WRITE(cyberbal_sound_bank_select_w)
+ AM_RANGE(0x2806, 0x2807) AM_WRITE(sound_bank_select_w)
AM_RANGE(0x2c00, 0x2c01) AM_READ(m6502_sound_r)
- AM_RANGE(0x2c02, 0x2c03) AM_READ(cyberbal_special_port3_r)
- AM_RANGE(0x2c04, 0x2c05) AM_READ(cyberbal_sound_68k_6502_r)
- AM_RANGE(0x2c06, 0x2c07) AM_READ(cyberbal_sound_6502_stat_r)
+ AM_RANGE(0x2c02, 0x2c03) AM_READ(special_port3_r)
+ AM_RANGE(0x2c04, 0x2c05) AM_READ(sound_68k_6502_r)
+ AM_RANGE(0x2c06, 0x2c07) AM_READ(sound_6502_stat_r)
AM_RANGE(0x3000, 0x3fff) AM_ROMBANK("soundbank")
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -220,10 +217,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_68k_map, AS_PROGRAM, 16, cyberbal_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0xff8000, 0xff87ff) AM_READ(cyberbal_sound_68k_r)
- AM_RANGE(0xff8800, 0xff8fff) AM_WRITE(cyberbal_sound_68k_w)
- AM_RANGE(0xff9000, 0xff97ff) AM_WRITE(cyberbal_io_68k_irq_ack_w)
- AM_RANGE(0xff9800, 0xff9fff) AM_WRITE(cyberbal_sound_68k_dac_w)
+ AM_RANGE(0xff8000, 0xff87ff) AM_READ(sound_68k_r)
+ AM_RANGE(0xff8800, 0xff8fff) AM_WRITE(sound_68k_w)
+ AM_RANGE(0xff9000, 0xff97ff) AM_WRITE(io_68k_irq_ack_w)
+ AM_RANGE(0xff9800, 0xff9fff) AM_WRITE(sound_68k_dac_w)
AM_RANGE(0xfff000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -420,7 +417,7 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
MCFG_CPU_ADD("dac", M68000, ATARI_CLOCK_14MHz/2)
MCFG_CPU_PROGRAM_MAP(sound_68k_map)
- MCFG_CPU_PERIODIC_INT_DRIVER(cyberbal_state, cyberbal_sound_68k_irq_gen, 10000)
+ MCFG_CPU_PERIODIC_INT_DRIVER(cyberbal_state, sound_68k_irq_gen, 10000)
MCFG_QUANTUM_TIME(attotime::from_hz(600))
@@ -981,13 +978,13 @@ ROM_END
DRIVER_INIT_MEMBER(cyberbal_state,cyberbal)
{
- slapstic_configure(*machine().device<cpu_device>("maincpu"), 0x018000, 0, 0);
+ slapstic_configure(*m_maincpu, 0x018000, 0, 0);
}
DRIVER_INIT_MEMBER(cyberbal_state,cyberbalt)
{
- slapstic_configure(*machine().device<cpu_device>("maincpu"), 0x018000, 0, 116);
+ slapstic_configure(*m_maincpu, 0x018000, 0, 116);
}
diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h
index 4639697f563..9974750d1ef 100644
--- a/src/mame/includes/atarig1.h
+++ b/src/mame/includes/atarig1.h
@@ -5,15 +5,19 @@
*************************************************************************/
#include "machine/atarigen.h"
+#include "cpu/m68000/m68000.h"
class atarig1_state : public atarigen_state
{
public:
atarig1_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
m_mo_command(*this, "mo_command") { }
- UINT8 m_is_pitfight;
+ required_device<m68000_device> m_maincpu;
+
+ bool m_is_pitfight;
UINT8 m_which_input;
required_shared_ptr<UINT16> m_mo_command;
@@ -21,7 +25,7 @@ public:
UINT16 * m_bslapstic_base;
void * m_bslapstic_bank0;
UINT8 m_bslapstic_bank;
- UINT8 m_bslapstic_primed;
+ bool m_bslapstic_primed;
int m_pfscroll_xoffset;
UINT16 m_current_control;
@@ -30,6 +34,7 @@ public:
UINT16 m_playfield_yscroll;
device_t * m_rle;
+ virtual void device_post_load();
virtual void update_interrupts();
virtual void scanline_update(screen_device &screen, int scanline);
DECLARE_WRITE16_MEMBER(mo_control_w);
@@ -53,7 +58,7 @@ public:
DECLARE_VIDEO_START(atarig1);
UINT32 screen_update_atarig1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_atarig1(screen_device &screen, bool state);
+private:
+ void init_common(offs_t slapstic_base, int slapstic, bool is_pitfight);
+ void pitfightb_cheap_slapstic_init();
};
-
-/*----------- defined in video/atarig1.c -----------*/
-void atarig1_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h
index 212033ae784..32c84dad644 100644
--- a/src/mame/includes/atarig42.h
+++ b/src/mame/includes/atarig42.h
@@ -5,14 +5,18 @@
*************************************************************************/
#include "machine/atarigen.h"
+#include "cpu/m68000/m68000.h"
class atarig42_state : public atarigen_state
{
public:
atarig42_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
m_mo_command(*this, "mo_command") { }
+ required_device<m68000_device> m_maincpu;
+
UINT16 m_playfield_base;
UINT16 m_current_control;
@@ -57,7 +61,3 @@ public:
UINT32 screen_update_atarig42(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void screen_eof_atarig42(screen_device &screen, bool state);
};
-
-/*----------- defined in video/atarig42.c -----------*/
-DECLARE_WRITE16_HANDLER( atarig42_mo_control_w );
-void atarig42_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h
index a535a1730fb..a86a5ff91a0 100644
--- a/src/mame/includes/atarigt.h
+++ b/src/mame/includes/atarigt.h
@@ -38,10 +38,10 @@ public:
required_shared_ptr<UINT32> m_mo_command;
- void (*m_protection_w)(address_space &space, offs_t offset, UINT16 data);
- void (*m_protection_r)(address_space &space, offs_t offset, UINT16 *data);
+ void (atarigt_state::*m_protection_w)(address_space &space, offs_t offset, UINT16 data);
+ void (atarigt_state::*m_protection_r)(address_space &space, offs_t offset, UINT16 *data);
- UINT8 m_ignore_writes;
+ bool m_ignore_writes;
offs_t m_protaddr[ADDRSEQ_COUNT];
UINT8 m_protmode;
UINT16 m_protresult;
@@ -75,7 +75,13 @@ public:
DECLARE_VIDEO_START(atarigt);
UINT32 screen_update_atarigt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void screen_eof_atarigt(screen_device &screen, bool state);
+private:
+ void tmek_update_mode(offs_t offset);
+ void tmek_protection_w(address_space &space, offs_t offset, UINT16 data);
+ void tmek_protection_r(address_space &space, offs_t offset, UINT16 *data);
+ void primrage_update_mode(offs_t offset);
+ void primrage_protection_w(address_space &space, offs_t offset, UINT16 data);
+ void primrage_protection_r(address_space &space, offs_t offset, UINT16 *data);
+ void primrage_init_common(offs_t cage_speedup);
+ void compute_fake_pots(int *pots);
};
-
-/*----------- defined in video/atarigt.c -----------*/
-void atarigt_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h
index 7466a45a418..978a861eb23 100644
--- a/src/mame/includes/atarisy2.h
+++ b/src/mame/includes/atarisy2.h
@@ -5,17 +5,23 @@
*************************************************************************/
#include "machine/atarigen.h"
+#include "cpu/m6502/m6502.h"
+#include "cpu/t11/t11.h"
class atarisy2_state : public atarigen_state
{
public:
atarisy2_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
m_slapstic_base(*this, "slapstic_base"),
m_bankselect(*this, "bankselect"),
m_rombank1(*this, "rombank1"),
m_rombank2(*this, "rombank2") { }
+ required_device<t11_device> m_maincpu;
+ required_device<m6502_device> m_audiocpu;
required_shared_ptr<UINT16> m_slapstic_base;
UINT8 m_interrupt_enable;
@@ -49,6 +55,9 @@ public:
UINT32 m_spin_center_count;
UINT16 m_vram[0x8000/2];
+
+ virtual void device_post_load();
+
virtual void update_interrupts();
virtual void scanline_update(screen_device &screen, int scanline);
DECLARE_WRITE16_MEMBER(int0_ack_w);
@@ -84,16 +93,11 @@ public:
INTERRUPT_GEN_MEMBER(vblank_int);
TIMER_CALLBACK_MEMBER(delayed_int_enable_w);
TIMER_CALLBACK_MEMBER(reset_yscroll_callback);
+ DECLARE_READ16_MEMBER(slapstic_r);
+ DECLARE_READ16_MEMBER(videoram_r);
+ DECLARE_WRITE16_MEMBER(slapstic_w);
+ DECLARE_WRITE16_MEMBER(yscroll_w);
+ DECLARE_WRITE16_MEMBER(xscroll_w);
+ DECLARE_WRITE16_MEMBER(videoram_w);
+ DECLARE_WRITE16_MEMBER(paletteram_w);
};
-
-
-/*----------- defined in video/atarisy2.c -----------*/
-
-DECLARE_READ16_HANDLER( atarisy2_slapstic_r );
-DECLARE_READ16_HANDLER( atarisy2_videoram_r );
-
-DECLARE_WRITE16_HANDLER( atarisy2_slapstic_w );
-DECLARE_WRITE16_HANDLER( atarisy2_yscroll_w );
-DECLARE_WRITE16_HANDLER( atarisy2_xscroll_w );
-DECLARE_WRITE16_HANDLER( atarisy2_videoram_w );
-DECLARE_WRITE16_HANDLER( atarisy2_paletteram_w );
diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h
index ee0e1912450..04c5ab3b7a0 100644
--- a/src/mame/includes/cyberbal.h
+++ b/src/mame/includes/cyberbal.h
@@ -5,15 +5,30 @@
*************************************************************************/
#include "machine/atarigen.h"
+#include "cpu/m68000/m68000.h"
+#include "cpu/m6502/m6502.h"
+#include "sound/dac.h"
class cyberbal_state : public atarigen_state
{
public:
cyberbal_state(const machine_config &mconfig, device_type type, const char *tag)
: atarigen_state(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu"),
+ m_extracpu(*this, "extra"),
+ m_daccpu(*this, "dac"),
+ m_dac1(*this, "dac1"),
+ m_dac2(*this, "dac2"),
m_paletteram_0(*this, "paletteram_0"),
m_paletteram_1(*this, "paletteram_1") { }
+ required_device<m68000_device> m_maincpu;
+ optional_device<m6502_device> m_audiocpu;
+ optional_device<m68000_device> m_extracpu;
+ optional_device<m68000_device> m_daccpu;
+ optional_device<dac_device> m_dac1;
+ optional_device<dac_device> m_dac2;
optional_shared_ptr<UINT16> m_paletteram_0;
optional_shared_ptr<UINT16> m_paletteram_1;
UINT16 m_current_slip[2];
@@ -34,15 +49,15 @@ public:
DECLARE_READ16_MEMBER(special_port2_r);
DECLARE_READ16_MEMBER(sound_state_r);
DECLARE_WRITE16_MEMBER(p2_reset_w);
- DECLARE_READ8_MEMBER(cyberbal_special_port3_r);
- DECLARE_READ8_MEMBER(cyberbal_sound_6502_stat_r);
- DECLARE_WRITE8_MEMBER(cyberbal_sound_bank_select_w);
- DECLARE_READ8_MEMBER(cyberbal_sound_68k_6502_r);
- DECLARE_WRITE8_MEMBER(cyberbal_sound_68k_6502_w);
- DECLARE_WRITE16_MEMBER(cyberbal_io_68k_irq_ack_w);
- DECLARE_READ16_MEMBER(cyberbal_sound_68k_r);
- DECLARE_WRITE16_MEMBER(cyberbal_sound_68k_w);
- DECLARE_WRITE16_MEMBER(cyberbal_sound_68k_dac_w);
+ DECLARE_READ8_MEMBER(special_port3_r);
+ DECLARE_READ8_MEMBER(sound_6502_stat_r);
+ DECLARE_WRITE8_MEMBER(sound_bank_select_w);
+ DECLARE_READ8_MEMBER(sound_68k_6502_r);
+ DECLARE_WRITE8_MEMBER(sound_68k_6502_w);
+ DECLARE_WRITE16_MEMBER(io_68k_irq_ack_w);
+ DECLARE_READ16_MEMBER(sound_68k_r);
+ DECLARE_WRITE16_MEMBER(sound_68k_w);
+ DECLARE_WRITE16_MEMBER(sound_68k_dac_w);
DECLARE_DRIVER_INIT(cyberbalt);
DECLARE_DRIVER_INIT(cyberbal2p);
DECLARE_DRIVER_INIT(cyberbal);
@@ -58,18 +73,14 @@ public:
UINT32 screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- INTERRUPT_GEN_MEMBER(cyberbal_sound_68k_irq_gen);
+ INTERRUPT_GEN_MEMBER(sound_68k_irq_gen);
+ DECLARE_READ16_MEMBER(paletteram_0_r);
+ DECLARE_READ16_MEMBER(paletteram_1_r);
+ DECLARE_WRITE16_MEMBER(paletteram_0_w);
+ DECLARE_WRITE16_MEMBER(paletteram_1_w);
+private:
+ void video_start_common(int screens);
+ void cyberbal_sound_reset();
+ UINT32 update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int index);
+ void update_sound_68k_interrupts();
};
-
-/*----------- defined in audio/cyberbal.c -----------*/
-
-void cyberbal_sound_reset(running_machine &machine);
-
-/*----------- defined in video/cyberbal.c -----------*/
-
-DECLARE_READ16_HANDLER( cyberbal_paletteram_0_r );
-DECLARE_READ16_HANDLER( cyberbal_paletteram_1_r );
-DECLARE_WRITE16_HANDLER( cyberbal_paletteram_0_w );
-DECLARE_WRITE16_HANDLER( cyberbal_paletteram_1_w );
-
-void cyberbal_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/video/atarig1.c b/src/mame/video/atarig1.c
index 5878e99ba9f..28e76832214 100644
--- a/src/mame/video/atarig1.c
+++ b/src/mame/video/atarig1.c
@@ -75,17 +75,6 @@ VIDEO_START_MEMBER(atarig1_state,atarig1)
*
*************************************/
-WRITE16_HANDLER( atarig1_mo_control_w )
-{
- atarig1_state *state = space.machine().driver_data<atarig1_state>();
-
- logerror("MOCONT = %d (scan = %d)\n", data, space.machine().primary_screen->vpos());
-
- /* set the control value */
- COMBINE_DATA(&state->m_current_control);
-}
-
-
void atarig1_state::scanline_update(screen_device &screen, int scanline)
{
UINT16 *base = &m_alpha[(scanline / 8) * 64 + 48];
diff --git a/src/mame/video/atarig42.c b/src/mame/video/atarig42.c
index 084c699a8b9..c0cafbfb71d 100644
--- a/src/mame/video/atarig42.c
+++ b/src/mame/video/atarig42.c
@@ -96,17 +96,6 @@ VIDEO_START_MEMBER(atarig42_state,atarig42)
*
*************************************/
-WRITE16_HANDLER( atarig42_mo_control_w )
-{
- atarig42_state *state = space.machine().driver_data<atarig42_state>();
-
- logerror("MOCONT = %d (scan = %d)\n", data, space.machine().primary_screen->vpos());
-
- /* set the control value */
- COMBINE_DATA(&state->m_current_control);
-}
-
-
void atarig42_state::scanline_update(screen_device &screen, int scanline)
{
UINT16 *base = &m_alpha[(scanline / 8) * 64 + 48];
diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c
index fc6b3aea360..96a6739f749 100644
--- a/src/mame/video/atarisy2.c
+++ b/src/mame/video/atarisy2.c
@@ -13,16 +13,6 @@
/*************************************
*
- * Prototypes
- *
- *************************************/
-
-
-
-
-
-/*************************************
- *
* Tilemap callbacks
*
*************************************/
@@ -124,10 +114,9 @@ VIDEO_START_MEMBER(atarisy2_state,atarisy2)
*
*************************************/
-WRITE16_HANDLER( atarisy2_xscroll_w )
+WRITE16_HANDLER( atarisy2_state::xscroll_w )
{
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
- UINT16 oldscroll = *state->m_xscroll;
+ UINT16 oldscroll = *m_xscroll;
UINT16 newscroll = oldscroll;
COMBINE_DATA(&newscroll);
@@ -136,17 +125,17 @@ WRITE16_HANDLER( atarisy2_xscroll_w )
space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
/* update the playfield scrolling - hscroll is clocked on the following scanline */
- state->m_playfield_tilemap->set_scrollx(0, newscroll >> 6);
+ m_playfield_tilemap->set_scrollx(0, newscroll >> 6);
/* update the playfield banking */
- if (state->m_playfield_tile_bank[0] != (newscroll & 0x0f) * 0x400)
+ if (m_playfield_tile_bank[0] != (newscroll & 0x0f) * 0x400)
{
- state->m_playfield_tile_bank[0] = (newscroll & 0x0f) * 0x400;
- state->m_playfield_tilemap->mark_all_dirty();
+ m_playfield_tile_bank[0] = (newscroll & 0x0f) * 0x400;
+ m_playfield_tilemap->mark_all_dirty();
}
/* update the data */
- *state->m_xscroll = newscroll;
+ *m_xscroll = newscroll;
}
@@ -156,10 +145,9 @@ TIMER_CALLBACK_MEMBER(atarisy2_state::reset_yscroll_callback)
}
-WRITE16_HANDLER( atarisy2_yscroll_w )
+WRITE16_HANDLER( atarisy2_state::yscroll_w )
{
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
- UINT16 oldscroll = *state->m_yscroll;
+ UINT16 oldscroll = *m_yscroll;
UINT16 newscroll = oldscroll;
COMBINE_DATA(&newscroll);
@@ -169,19 +157,19 @@ WRITE16_HANDLER( atarisy2_yscroll_w )
/* if bit 4 is zero, the scroll value is clocked in right away */
if (!(newscroll & 0x10))
- state->m_playfield_tilemap->set_scrolly(0, (newscroll >> 6) - space.machine().primary_screen->vpos());
+ m_playfield_tilemap->set_scrolly(0, (newscroll >> 6) - space.machine().primary_screen->vpos());
else
- state->m_yscroll_reset_timer->adjust(space.machine().primary_screen->time_until_pos(0), newscroll >> 6);
+ m_yscroll_reset_timer->adjust(space.machine().primary_screen->time_until_pos(0), newscroll >> 6);
/* update the playfield banking */
- if (state->m_playfield_tile_bank[1] != (newscroll & 0x0f) * 0x400)
+ if (m_playfield_tile_bank[1] != (newscroll & 0x0f) * 0x400)
{
- state->m_playfield_tile_bank[1] = (newscroll & 0x0f) * 0x400;
- state->m_playfield_tilemap->mark_all_dirty();
+ m_playfield_tile_bank[1] = (newscroll & 0x0f) * 0x400;
+ m_playfield_tilemap->mark_all_dirty();
}
/* update the data */
- *state->m_yscroll = newscroll;
+ *m_yscroll = newscroll;
}
@@ -192,7 +180,7 @@ WRITE16_HANDLER( atarisy2_yscroll_w )
*
*************************************/
-WRITE16_HANDLER( atarisy2_paletteram_w )
+WRITE16_HANDLER( atarisy2_state::paletteram_w )
{
static const int intensity_table[16] =
{
@@ -209,9 +197,8 @@ WRITE16_HANDLER( atarisy2_paletteram_w )
int newword, inten, red, green, blue;
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
- COMBINE_DATA(&state->m_generic_paletteram_16[offset]);
- newword = state->m_generic_paletteram_16[offset];
+ COMBINE_DATA(&m_generic_paletteram_16[offset]);
+ newword = m_generic_paletteram_16[offset];
inten = intensity_table[newword & 15];
red = (color_table[(newword >> 12) & 15] * inten) >> 4;
@@ -228,26 +215,23 @@ WRITE16_HANDLER( atarisy2_paletteram_w )
*
*************************************/
-READ16_HANDLER( atarisy2_slapstic_r )
+READ16_HANDLER( atarisy2_state::slapstic_r )
{
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
- int result = state->m_slapstic_base[offset];
+ int result = m_slapstic_base[offset];
slapstic_tweak(space, offset);
/* an extra tweak for the next opcode fetch */
- state->m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
+ m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
return result;
}
-WRITE16_HANDLER( atarisy2_slapstic_w )
+WRITE16_HANDLER( atarisy2_state::slapstic_w )
{
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
-
slapstic_tweak(space, offset);
/* an extra tweak for the next opcode fetch */
- state->m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
+ m_videobank = slapstic_tweak(space, 0x1234) * 0x1000;
}
@@ -258,29 +242,27 @@ WRITE16_HANDLER( atarisy2_slapstic_w )
*
*************************************/
-READ16_HANDLER( atarisy2_videoram_r )
+READ16_HANDLER( atarisy2_state::videoram_r )
{
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
- int offs = offset | state->m_videobank;
+ int offs = offset | m_videobank;
if (offs >= 0xc00 && offs < 0x1000)
{
return atarimo_0_spriteram_r(space, offs - 0x0c00, mem_mask);
}
- return state->m_vram[offs];
+ return m_vram[offs];
}
-WRITE16_HANDLER( atarisy2_videoram_w )
+WRITE16_HANDLER( atarisy2_state::videoram_w )
{
- atarisy2_state *state = space.machine().driver_data<atarisy2_state>();
- int offs = offset | state->m_videobank;
+ int offs = offset | m_videobank;
/* alpharam? */
if (offs < 0x0c00)
{
- COMBINE_DATA(&state->m_alpha[offs]);
- state->m_alpha_tilemap->mark_tile_dirty(offs);
+ COMBINE_DATA(&m_alpha[offs]);
+ m_alpha_tilemap->mark_tile_dirty(offs);
}
/* spriteram? */
@@ -288,7 +270,7 @@ WRITE16_HANDLER( atarisy2_videoram_w )
{
/* force an update if the link of object 0 is about to change */
if (offs == 0x0c03)
- space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos());
+ space.machine().primary_screen->update_partial(machine().primary_screen->vpos());
atarimo_0_spriteram_w(space, offs - 0x0c00, data, mem_mask);
}
@@ -296,14 +278,14 @@ WRITE16_HANDLER( atarisy2_videoram_w )
else if (offs >= 0x2000)
{
offs -= 0x2000;
- COMBINE_DATA(&state->m_playfield[offs]);
- state->m_playfield_tilemap->mark_tile_dirty(offs);
+ COMBINE_DATA(&m_playfield[offs]);
+ m_playfield_tilemap->mark_tile_dirty(offs);
}
/* generic case */
else
{
- COMBINE_DATA(&state->m_vram[offs]);
+ COMBINE_DATA(&m_vram[offs]);
}
}
diff --git a/src/mame/video/cyberbal.c b/src/mame/video/cyberbal.c
index 4e83d9ebc84..6673a57f66a 100644
--- a/src/mame/video/cyberbal.c
+++ b/src/mame/video/cyberbal.c
@@ -63,7 +63,7 @@ TILE_GET_INFO_MEMBER(cyberbal_state::get_playfield2_tile_info)
*
*************************************/
-static void video_start_cyberbal_common(running_machine &machine, int screens)
+void cyberbal_state::video_start_common(int screens)
{
static const atarimo_desc mo0desc =
{
@@ -138,47 +138,46 @@ static void video_start_cyberbal_common(running_machine &machine, int screens)
0, /* resulting value to indicate "special" */
0 /* callback routine for special entries */
};
- cyberbal_state *state = machine.driver_data<cyberbal_state>();
/* initialize the playfield */
- state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64);
+ m_playfield_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield_tile_info),this), TILEMAP_SCAN_ROWS, 16,8, 64,64);
/* initialize the motion objects */
- atarimo_init(machine, 0, &mo0desc);
- atarimo_set_slipram(0, &state->m_current_slip[0]);
+ atarimo_init(machine(), 0, &mo0desc);
+ atarimo_set_slipram(0, &m_current_slip[0]);
/* initialize the alphanumerics */
- state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32);
- state->m_alpha_tilemap->set_transparent_pen(0);
+ m_alpha_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha_tile_info),this), TILEMAP_SCAN_ROWS, 16,8, 64,32);
+ m_alpha_tilemap->set_transparent_pen(0);
/* allocate the second screen if necessary */
if (screens == 2)
{
/* initialize the playfield */
- state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield2_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64);
- state->m_playfield2_tilemap->set_scrollx(0, 0);
+ m_playfield2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield2_tile_info),this), TILEMAP_SCAN_ROWS, 16,8, 64,64);
+ m_playfield2_tilemap->set_scrollx(0, 0);
/* initialize the motion objects */
- atarimo_init(machine, 1, &mo1desc);
- atarimo_set_slipram(1, &state->m_current_slip[1]);
+ atarimo_init(machine(), 1, &mo1desc);
+ atarimo_set_slipram(1, &m_current_slip[1]);
/* initialize the alphanumerics */
- state->m_alpha2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha2_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32);
- state->m_alpha2_tilemap->set_scrollx(0, 0);
- state->m_alpha2_tilemap->set_transparent_pen(0);
+ m_alpha2_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha2_tile_info),this), TILEMAP_SCAN_ROWS, 16,8, 64,32);
+ m_alpha2_tilemap->set_scrollx(0, 0);
+ m_alpha2_tilemap->set_transparent_pen(0);
}
/* save states */
- state->save_item(NAME(state->m_current_slip));
- state->save_item(NAME(state->m_playfield_palette_bank));
- state->save_item(NAME(state->m_playfield_xscroll));
- state->save_item(NAME(state->m_playfield_yscroll));
+ save_item(NAME(m_current_slip));
+ save_item(NAME(m_playfield_palette_bank));
+ save_item(NAME(m_playfield_xscroll));
+ save_item(NAME(m_playfield_yscroll));
}
VIDEO_START_MEMBER(cyberbal_state,cyberbal)
{
- video_start_cyberbal_common(machine(), 2);
+ video_start_common(2);
/* adjust the sprite positions */
atarimo_set_xscroll(0, 4);
@@ -188,7 +187,7 @@ VIDEO_START_MEMBER(cyberbal_state,cyberbal)
VIDEO_START_MEMBER(cyberbal_state,cyberbal2p)
{
- video_start_cyberbal_common(machine(), 1);
+ video_start_common(1);
/* adjust the sprite positions */
atarimo_set_xscroll(0, 5);
@@ -221,31 +220,27 @@ INLINE void set_palette_entry(running_machine &machine, int entry, UINT16 value)
*
*************************************/
-WRITE16_HANDLER( cyberbal_paletteram_0_w )
+WRITE16_HANDLER(cyberbal_state::paletteram_0_w)
{
- cyberbal_state *state = space.machine().driver_data<cyberbal_state>();
- COMBINE_DATA(&state->m_paletteram_0[offset]);
- set_palette_entry(space.machine(), offset, state->m_paletteram_0[offset]);
+ COMBINE_DATA(&m_paletteram_0[offset]);
+ set_palette_entry(machine(), offset, m_paletteram_0[offset]);
}
-READ16_HANDLER( cyberbal_paletteram_0_r )
+READ16_HANDLER(cyberbal_state::paletteram_0_r)
{
- cyberbal_state *state = space.machine().driver_data<cyberbal_state>();
- return state->m_paletteram_0[offset];
+ return m_paletteram_0[offset];
}
-WRITE16_HANDLER( cyberbal_paletteram_1_w )
+WRITE16_HANDLER(cyberbal_state::paletteram_1_w)
{
- cyberbal_state *state = space.machine().driver_data<cyberbal_state>();
- COMBINE_DATA(&state->m_paletteram_1[offset]);
- set_palette_entry(space.machine(), offset + 0x800, state->m_paletteram_1[offset]);
+ COMBINE_DATA(&m_paletteram_1[offset]);
+ set_palette_entry(machine(), offset + 0x800, m_paletteram_1[offset]);
}
-READ16_HANDLER( cyberbal_paletteram_1_r )
+READ16_HANDLER(cyberbal_state::paletteram_1_r)
{
- cyberbal_state *state = space.machine().driver_data<cyberbal_state>();
- return state->m_paletteram_1[offset];
+ return m_paletteram_1[offset];
}
@@ -328,9 +323,8 @@ void cyberbal_state::scanline_update(screen_device &screen, int scanline)
*
*************************************/
-static UINT32 update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int index)
+UINT32 cyberbal_state::update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int index)
{
- cyberbal_state *state = screen.machine().driver_data<cyberbal_state>();
atarimo_rect_list rectlist;
rectangle tempclip = cliprect;
bitmap_ind16 *mobitmap;
@@ -338,7 +332,7 @@ static UINT32 update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, con
rectangle visarea = screen.visible_area();
/* draw the playfield */
- ((index == 0) ? state->m_playfield_tilemap : state->m_playfield2_tilemap)->draw(bitmap, cliprect, 0, 0);
+ ((index == 0) ? m_playfield_tilemap : m_playfield2_tilemap)->draw(bitmap, cliprect, 0, 0);
/* draw the MOs -- note some kludging to get this to work correctly for 2 screens */
mooffset = 0;
@@ -371,7 +365,7 @@ static UINT32 update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, con
}
/* add the alpha on top */
- ((index == 0) ? state->m_alpha_tilemap : state->m_alpha2_tilemap)->draw(bitmap, cliprect, 0, 0);
+ ((index == 0) ? m_alpha_tilemap : m_alpha2_tilemap)->draw(bitmap, cliprect, 0, 0);
return 0;
}