summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Wilbert Pol <wilbert@jdg.info>2013-02-10 18:56:09 +0000
committer Wilbert Pol <wilbert@jdg.info>2013-02-10 18:56:09 +0000
commit2c81cb6f6051bcfc519dc33a21a7da21b59f32c6 (patch)
tree7c5a0cdb0b1e1706d3198e55ed267f23176f9897 /src
parent39431cdbe71b8173575e881dc01b009706c32273 (diff)
(MESS) a7800.c: Reduce tagmap lookups (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mess/includes/a7800.h48
-rw-r--r--src/mess/machine/a7800.c72
-rw-r--r--src/mess/video/a7800.c147
3 files changed, 151 insertions, 116 deletions
diff --git a/src/mess/includes/a7800.h b/src/mess/includes/a7800.h
index cf8402b0e20..3f67e4957ff 100644
--- a/src/mess/includes/a7800.h
+++ b/src/mess/includes/a7800.h
@@ -8,14 +8,34 @@
#define A7800_H_
#include "machine/6532riot.h"
+#include "sound/pokey.h"
+#include "sound/tiasound.h"
+#include "sound/tiaintf.h"
+
class a7800_state : public driver_device
{
public:
a7800_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag),
- m_maincpu(*this,"maincpu")
- { }
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_pokey(*this, "pokey")
+ , m_tia(*this, "tia")
+ , m_region_maincpu(*this, "maincpu")
+ , m_bank1(*this, "bank1")
+ , m_bank2(*this, "bank2")
+ , m_bank3(*this, "bank3")
+ , m_bank4(*this, "bank4")
+ , m_bank5(*this, "bank5")
+ , m_bank6(*this, "bank6")
+ , m_bank7(*this, "bank7")
+ , m_io_joysticks(*this, "joysticks")
+ , m_io_buttons(*this, "buttons")
+ , m_io_vblank(*this, "vblank")
+ , m_io_console_buttons(*this, "console_buttons")
+ , m_bank10(NULL)
+ , m_bank11(NULL)
+ { }
int m_lines;
int m_ispal;
@@ -52,7 +72,6 @@ public:
int m_p1_one_button;
int m_p2_one_button;
- required_device<cpu_device> m_maincpu;
DECLARE_WRITE8_MEMBER(a7800_RAM0_w);
DECLARE_WRITE8_MEMBER(a7800_cart_w);
DECLARE_READ8_MEMBER(a7800_TIA_r);
@@ -73,6 +92,27 @@ public:
DECLARE_WRITE8_MEMBER(riot_button_pullup_w);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( a7800_cart );
+
+protected:
+ required_device<cpu_device> m_maincpu;
+ required_device<pokey_device> m_pokey;
+ required_device<tia_device> m_tia;
+ required_memory_region m_region_maincpu;
+ required_memory_bank m_bank1;
+ required_memory_bank m_bank2;
+ required_memory_bank m_bank3;
+ required_memory_bank m_bank4;
+ required_memory_bank m_bank5;
+ required_memory_bank m_bank6;
+ required_memory_bank m_bank7;
+ required_ioport m_io_joysticks;
+ required_ioport m_io_buttons;
+ required_ioport m_io_vblank;
+ required_ioport m_io_console_buttons;
+ memory_bank *m_bank10;
+ memory_bank *m_bank11;
+
+ void maria_draw_scanline();
};
/*----------- defined in machine/a7800.c -----------*/
diff --git a/src/mess/machine/a7800.c b/src/mess/machine/a7800.c
index 62f4492f68c..829bf67fa03 100644
--- a/src/mess/machine/a7800.c
+++ b/src/mess/machine/a7800.c
@@ -23,10 +23,6 @@
#include "emu.h"
#include "includes/a7800.h"
#include "cpu/m6502/m6502.h"
-#include "sound/tiasound.h"
-#include "machine/6532riot.h"
-#include "sound/pokey.h"
-#include "sound/tiaintf.h"
@@ -40,12 +36,12 @@
READ8_MEMBER(a7800_state::riot_joystick_r)
{
- return machine().root_device().ioport("joysticks")->read();
+ return m_io_joysticks->read();
}
READ8_MEMBER(a7800_state::riot_console_button_r)
{
- return machine().root_device().ioport("console_buttons")->read();
+ return m_io_console_buttons->read();
}
WRITE8_MEMBER(a7800_state::riot_button_pullup_w)
@@ -70,23 +66,25 @@ const riot6532_interface a7800_r6532_interface =
void a7800_state::a7800_driver_init(int ispal, int lines)
{
- address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
- m_ROM = memregion("maincpu")->base();
+ address_space& space = m_maincpu->space(AS_PROGRAM);
+ m_ROM = m_region_maincpu->base();
m_ispal = ispal;
m_lines = lines;
m_p1_one_button = 1;
m_p2_one_button = 1;
/* standard banks */
- membank("bank5")->set_base(&m_ROM[0x2040]); /* RAM0 */
- membank("bank6")->set_base(&m_ROM[0x2140]); /* RAM1 */
- membank("bank7")->set_base(&m_ROM[0x2000]); /* MAINRAM */
+ m_bank5->set_base(&m_ROM[0x2040]); /* RAM0 */
+ m_bank6->set_base(&m_ROM[0x2140]); /* RAM1 */
+ m_bank7->set_base(&m_ROM[0x2000]); /* MAINRAM */
/* Brutal hack put in as a consequence of new memory system; fix this */
space.install_readwrite_bank(0x0480, 0x04FF,"bank10");
- membank("bank10")->set_base(m_ROM + 0x0480);
+ m_bank10 = membank("bank10");
+ m_bank10->set_base(m_ROM + 0x0480);
space.install_readwrite_bank(0x1800, 0x27FF, "bank11");
- membank("bank11")->set_base(m_ROM + 0x1800);
+ m_bank11 = membank("bank11");
+ m_bank11->set_base(m_ROM + 0x1800);
m_bios_bkup = NULL;
m_cart_bkup = NULL;
@@ -122,24 +120,23 @@ DRIVER_INIT_MEMBER(a7800_state,a7800_pal)
void a7800_state::machine_reset()
{
UINT8 *memory;
- address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ address_space& space = m_maincpu->space(AS_PROGRAM);
m_ctrl_lock = 0;
m_ctrl_reg = 0;
m_maria_flag = 0;
/* set banks to default states */
- memory = memregion("maincpu")->base();
- membank("bank1")->set_base(memory + 0x4000 );
- membank("bank2")->set_base(memory + 0x8000 );
- membank("bank3")->set_base(memory + 0xA000 );
- membank("bank4")->set_base(memory + 0xC000 );
+ memory = m_region_maincpu->base();
+ m_bank1->set_base(memory + 0x4000 );
+ m_bank2->set_base(memory + 0x8000 );
+ m_bank3->set_base(memory + 0xA000 );
+ m_bank4->set_base(memory + 0xC000 );
/* pokey cartridge */
if (m_cart_type & 0x01)
{
- pokey_device *pokey = machine().device<pokey_device>("pokey");
- space.install_readwrite_handler(0x4000, 0x7FFF, read8_delegate(FUNC(pokey_device::read),pokey), write8_delegate(FUNC(pokey_device::write),pokey));
+ space.install_readwrite_handler(0x4000, 0x7FFF, read8_delegate(FUNC(pokey_device::read),(pokey_device*)m_pokey), write8_delegate(FUNC(pokey_device::write),(pokey_device*)m_pokey));
}
}
@@ -246,7 +243,7 @@ DEVICE_IMAGE_LOAD_MEMBER( a7800_state, a7800_cart )
{
UINT32 len = 0, start = 0;
unsigned char header[128];
- UINT8 *memory = image.device().machine().root_device().memregion("maincpu")->base();
+ UINT8 *memory = m_region_maincpu->base();
const char *pcb_name;
// detect cart type either from xml or from header
@@ -391,7 +388,7 @@ WRITE8_MEMBER(a7800_state::a7800_RAM0_w)
WRITE8_MEMBER(a7800_state::a7800_cart_w)
{
- UINT8 *memory = memregion("maincpu")->base();
+ UINT8 *memory = m_region_maincpu->base();
if(offset < 0x4000)
{
@@ -401,8 +398,7 @@ WRITE8_MEMBER(a7800_state::a7800_cart_w)
}
else if(m_cart_type & 0x01)
{
- pokey_device *pokey = machine().device<pokey_device>("pokey");
- pokey->write(space, offset, data);
+ m_pokey->write(space, offset, data);
}
else
{
@@ -421,8 +417,8 @@ WRITE8_MEMBER(a7800_state::a7800_cart_w)
{
data &= 0x07;
}
- membank("bank2")->set_base(memory + 0x10000 + (data << 14));
- membank("bank3")->set_base(memory + 0x12000 + (data << 14));
+ m_bank2->set_base(memory + 0x10000 + (data << 14));
+ m_bank3->set_base(memory + 0x12000 + (data << 14));
/* logerror("BANK SEL: %d\n",data); */
}
else if(( m_cart_type == MBANK_TYPE_ABSOLUTE ) &&( offset == 0x4000 ) )
@@ -431,11 +427,11 @@ WRITE8_MEMBER(a7800_state::a7800_cart_w)
/*logerror( "F18 BANK SEL: %d\n", data );*/
if( data & 1 )
{
- membank("bank1")->set_base(memory + 0x10000 );
+ m_bank1->set_base(memory + 0x10000 );
}
else if( data & 2 )
{
- membank("bank1")->set_base(memory + 0x14000 );
+ m_bank1->set_base(memory + 0x14000 );
}
}
else if(( m_cart_type == MBANK_TYPE_ACTIVISION ) &&( offset >= 0xBF80 ) )
@@ -445,8 +441,8 @@ WRITE8_MEMBER(a7800_state::a7800_cart_w)
/*logerror( "Activision BANK SEL: %d\n", data );*/
- membank("bank3")->set_base(memory + 0x10000 + ( data << 14 ) );
- membank("bank4")->set_base(memory + 0x12000 + ( data << 14 ) );
+ m_bank3->set_base(memory + 0x10000 + ( data << 14 ) );
+ m_bank4->set_base(memory + 0x12000 + ( data << 14 ) );
}
}
@@ -471,20 +467,20 @@ READ8_MEMBER(a7800_state::a7800_TIA_r)
still return a reasonable value */
return 0x00;
case 0x08:
- return((ioport("buttons")->read() & 0x02) << 6);
+ return((m_io_buttons->read() & 0x02) << 6);
case 0x09:
- return((ioport("buttons")->read() & 0x08) << 4);
+ return((m_io_buttons->read() & 0x08) << 4);
case 0x0A:
- return((ioport("buttons")->read() & 0x01) << 7);
+ return((m_io_buttons->read() & 0x01) << 7);
case 0x0B:
- return((ioport("buttons")->read() & 0x04) << 5);
+ return((m_io_buttons->read() & 0x04) << 5);
case 0x0c:
- if(((ioport("buttons")->read() & 0x08) ||(ioport("buttons")->read() & 0x02)) && m_p1_one_button)
+ if(((m_io_buttons->read() & 0x08) ||(m_io_buttons->read() & 0x02)) && m_p1_one_button)
return 0x00;
else
return 0x80;
case 0x0d:
- if(((ioport("buttons")->read() & 0x01) ||(ioport("buttons")->read() & 0x04)) && m_p2_one_button)
+ if(((m_io_buttons->read() & 0x01) ||(m_io_buttons->read() & 0x04)) && m_p2_one_button)
return 0x00;
else
return 0x80;
@@ -516,6 +512,6 @@ WRITE8_MEMBER(a7800_state::a7800_TIA_w)
}
break;
}
- machine().device<tia_device>("tia")->tia_sound_w(space, offset, data);
+ m_tia->tia_sound_w(space, offset, data);
m_ROM[offset] = data;
}
diff --git a/src/mess/video/a7800.c b/src/mess/video/a7800.c
index 112fecfeecf..eb3453c19d9 100644
--- a/src/mess/video/a7800.c
+++ b/src/mess/video/a7800.c
@@ -83,10 +83,9 @@ void a7800_state::video_start()
***************************************************************************/
-static void maria_draw_scanline(running_machine &machine)
+void a7800_state::maria_draw_scanline()
{
- a7800_state *state = machine.driver_data<a7800_state>();
- address_space& space = machine.device("maincpu")->memory().space(AS_PROGRAM);
+ address_space& space = m_maincpu->space(AS_PROGRAM);
unsigned int graph_adr,data_addr;
int width,hpos,pal,mode,ind;
unsigned int dl;
@@ -95,12 +94,12 @@ static void maria_draw_scanline(running_machine &machine)
UINT16 *scanline;
/* set up scanline */
- scanline = &state->m_bitmap.pix16(state->m_maria_scanline);
+ scanline = &m_bitmap.pix16(m_maria_scanline);
for (i = 0; i < 320; i++)
- scanline[i] = state->m_maria_backcolor;
+ scanline[i] = m_maria_backcolor;
/* Process this DLL entry */
- dl = state->m_maria_dl;
+ dl = m_maria_dl;
/* Step through DL's */
while ((READ_MEM(dl + 1) & 0x5F) != 0)
@@ -112,7 +111,7 @@ static void maria_draw_scanline(running_machine &machine)
width = ((READ_MEM(dl+3) ^ 0xff) & 0x1F) + 1;
hpos = READ_MEM(dl+4)*2;
pal = READ_MEM(dl+3) >> 5;
- state->m_maria_write_mode = (READ_MEM(dl+1) & 0x80) >> 5;
+ m_maria_write_mode = (READ_MEM(dl+1) & 0x80) >> 5;
ind = READ_MEM(dl+1) & 0x20;
dl+=5;
}
@@ -127,9 +126,9 @@ static void maria_draw_scanline(running_machine &machine)
dl+=4;
}
- mode = state->m_maria_rm | state->m_maria_write_mode;
+ mode = m_maria_rm | m_maria_write_mode;
- /*logerror("%x DL: ADR=%x width=%x hpos=%x pal=%x mode=%x ind=%x\n",state->m_maria_scanline,graph_adr,width,hpos,pal,mode,ind );*/
+ /*logerror("%x DL: ADR=%x width=%x hpos=%x pal=%x mode=%x ind=%x\n",m_maria_scanline,graph_adr,width,hpos,pal,mode,ind );*/
for (x=0; x<width; x++) // 20030621 ericball get graphic data first, then switch (mode)
{
@@ -139,18 +138,18 @@ static void maria_draw_scanline(running_machine &machine)
if (ind)
{
c = READ_MEM(graph_adr + x) & 0xFF;
- data_addr= (state->m_maria_charbase | c) + (state->m_maria_offset << 8);
- if( state->m_maria_cwidth )
+ data_addr= (m_maria_charbase | c) + (m_maria_offset << 8);
+ if( m_maria_cwidth )
ind_bytes = 2;
}
else
{
- data_addr = graph_adr + x + (state->m_maria_offset << 8);
+ data_addr = graph_adr + x + (m_maria_offset << 8);
}
- if ( (state->m_maria_holey & 0x02) && ((data_addr & 0x9000) == 0x9000))
+ if ( (m_maria_holey & 0x02) && ((data_addr & 0x9000) == 0x9000))
continue;
- if ( (state->m_maria_holey & 0x01) && ((data_addr & 0x8800) == 0x8800))
+ if ( (m_maria_holey & 0x01) && ((data_addr & 0x8800) == 0x8800))
continue;
while (ind_bytes > 0)
@@ -163,96 +162,96 @@ static void maria_draw_scanline(running_machine &machine)
case 0x00: /* 160A (160x2) */
case 0x01: /* 160A (160x2) */
c = (d & 0xC0) >> 6;
- if (c || state->m_maria_kangaroo)
+ if (c || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][c];
- scanline[hpos + 1] = state->m_maria_palette[pal][c];
+ scanline[hpos + 0] = m_maria_palette[pal][c];
+ scanline[hpos + 1] = m_maria_palette[pal][c];
}
inc_hpos_by_2();
c = (d & 0x30) >> 4;
- if (c || state->m_maria_kangaroo)
+ if (c || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][c];
- scanline[hpos + 1] = state->m_maria_palette[pal][c];
+ scanline[hpos + 0] = m_maria_palette[pal][c];
+ scanline[hpos + 1] = m_maria_palette[pal][c];
}
inc_hpos_by_2();
c = (d & 0x0C) >> 2;
- if (c || state->m_maria_kangaroo)
+ if (c || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][c];
- scanline[hpos + 1] = state->m_maria_palette[pal][c];
+ scanline[hpos + 0] = m_maria_palette[pal][c];
+ scanline[hpos + 1] = m_maria_palette[pal][c];
}
inc_hpos_by_2();
c = (d & 0x03);
- if (c || state->m_maria_kangaroo)
+ if (c || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][c];
- scanline[hpos + 1] = state->m_maria_palette[pal][c];
+ scanline[hpos + 0] = m_maria_palette[pal][c];
+ scanline[hpos + 1] = m_maria_palette[pal][c];
}
inc_hpos_by_2();
break;
case 0x02: /* 320D used by Jinks! */
c = pal & 0x04;
- if ( d & 0xC0 || pal & 0x03 || state->m_maria_kangaroo )
+ if ( d & 0xC0 || pal & 0x03 || m_maria_kangaroo )
{
- scanline[hpos + 0] = state->m_maria_palette[c][((d & 0x80) >> 6) | ((pal & 2) >> 1)];
- scanline[hpos + 1] = state->m_maria_palette[c][((d & 0x40) >> 5) | ((pal & 1) >> 0)];
+ scanline[hpos + 0] = m_maria_palette[c][((d & 0x80) >> 6) | ((pal & 2) >> 1)];
+ scanline[hpos + 1] = m_maria_palette[c][((d & 0x40) >> 5) | ((pal & 1) >> 0)];
}
inc_hpos_by_2();
- if ( d & 0x30 || pal & 0x03 || state->m_maria_kangaroo )
+ if ( d & 0x30 || pal & 0x03 || m_maria_kangaroo )
{
- scanline[hpos + 0] = state->m_maria_palette[c][((d & 0x20) >> 4) | ((pal & 2) >> 1)];
- scanline[hpos + 1] = state->m_maria_palette[c][((d & 0x10) >> 3) | ((pal & 1) >> 0)];
+ scanline[hpos + 0] = m_maria_palette[c][((d & 0x20) >> 4) | ((pal & 2) >> 1)];
+ scanline[hpos + 1] = m_maria_palette[c][((d & 0x10) >> 3) | ((pal & 1) >> 0)];
}
inc_hpos_by_2();
- if ( d & 0x0C || pal & 0x03 || state->m_maria_kangaroo )
+ if ( d & 0x0C || pal & 0x03 || m_maria_kangaroo )
{
- scanline[hpos + 0] = state->m_maria_palette[c][((d & 0x08) >> 2) | ((pal & 2) >> 1)];
- scanline[hpos + 1] = state->m_maria_palette[c][((d & 0x04) >> 1) | ((pal & 1) >> 0)];
+ scanline[hpos + 0] = m_maria_palette[c][((d & 0x08) >> 2) | ((pal & 2) >> 1)];
+ scanline[hpos + 1] = m_maria_palette[c][((d & 0x04) >> 1) | ((pal & 1) >> 0)];
}
inc_hpos_by_2();
- if ( d & 0x03 || pal & 0x03 || state->m_maria_kangaroo )
+ if ( d & 0x03 || pal & 0x03 || m_maria_kangaroo )
{
- scanline[hpos + 0] = state->m_maria_palette[c][((d & 0x02) << 0) | ((pal & 2) >> 1)];
- scanline[hpos + 1] = state->m_maria_palette[c][((d & 0x01) << 1) | ((pal & 1) >> 0)];
+ scanline[hpos + 0] = m_maria_palette[c][((d & 0x02) << 0) | ((pal & 2) >> 1)];
+ scanline[hpos + 1] = m_maria_palette[c][((d & 0x01) << 1) | ((pal & 1) >> 0)];
}
inc_hpos_by_2();
break;
case 0x03: /* MODE 320A */
- if (d & 0xC0 || state->m_maria_kangaroo)
+ if (d & 0xC0 || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][(d & 0x80) >> 6];
- scanline[hpos + 1] = state->m_maria_palette[pal][(d & 0x40) >> 5];
+ scanline[hpos + 0] = m_maria_palette[pal][(d & 0x80) >> 6];
+ scanline[hpos + 1] = m_maria_palette[pal][(d & 0x40) >> 5];
}
inc_hpos_by_2();
- if ( d & 0x30 || state->m_maria_kangaroo)
+ if ( d & 0x30 || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][(d & 0x20) >> 4];
- scanline[hpos + 1] = state->m_maria_palette[pal][(d & 0x10) >> 3];
+ scanline[hpos + 0] = m_maria_palette[pal][(d & 0x20) >> 4];
+ scanline[hpos + 1] = m_maria_palette[pal][(d & 0x10) >> 3];
}
inc_hpos_by_2();
- if (d & 0x0C || state->m_maria_kangaroo)
+ if (d & 0x0C || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][(d & 0x08) >> 2];
- scanline[hpos + 1] = state->m_maria_palette[pal][(d & 0x04) >> 1];
+ scanline[hpos + 0] = m_maria_palette[pal][(d & 0x08) >> 2];
+ scanline[hpos + 1] = m_maria_palette[pal][(d & 0x04) >> 1];
}
inc_hpos_by_2();
- if (d & 0x03 || state->m_maria_kangaroo)
+ if (d & 0x03 || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][(d & 0x02)];
- scanline[hpos + 1] = state->m_maria_palette[pal][(d & 0x01) << 1];
+ scanline[hpos + 0] = m_maria_palette[pal][(d & 0x02)];
+ scanline[hpos + 1] = m_maria_palette[pal][(d & 0x01) << 1];
}
inc_hpos_by_2();
break;
@@ -260,50 +259,50 @@ static void maria_draw_scanline(running_machine &machine)
case 0x04: /* 160B (160x4) */
case 0x05: /* 160B (160x4) */
c = (d & 0xC0) >> 6;
- if (c || state->m_maria_kangaroo)
+ if (c || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][c];
- scanline[hpos + 1] = state->m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][c];
+ scanline[hpos + 0] = m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][c];
+ scanline[hpos + 1] = m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][c];
}
inc_hpos_by_2();
c = (d & 0x30) >> 4;
- if (c || state->m_maria_kangaroo)
+ if (c || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[(pal & 0x04) | (d & 0x03)][c];
- scanline[hpos + 1] = state->m_maria_palette[(pal & 0x04) | (d & 0x03)][c];
+ scanline[hpos + 0] = m_maria_palette[(pal & 0x04) | (d & 0x03)][c];
+ scanline[hpos + 1] = m_maria_palette[(pal & 0x04) | (d & 0x03)][c];
}
inc_hpos_by_2();
break;
case 0x06: /* MODE 320B */
- if (d & 0xCC || state->m_maria_kangaroo)
+ if (d & 0xCC || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][((d & 0x80) >> 6) | ((d & 0x08) >> 3)];
- scanline[hpos + 1] = state->m_maria_palette[pal][((d & 0x40) >> 5) | ((d & 0x04) >> 2)];
+ scanline[hpos + 0] = m_maria_palette[pal][((d & 0x80) >> 6) | ((d & 0x08) >> 3)];
+ scanline[hpos + 1] = m_maria_palette[pal][((d & 0x40) >> 5) | ((d & 0x04) >> 2)];
}
inc_hpos_by_2();
- if ( d & 0x33 || state->m_maria_kangaroo)
+ if ( d & 0x33 || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[pal][((d & 0x20) >> 4) | ((d & 0x02) >> 1)];
- scanline[hpos + 1] = state->m_maria_palette[pal][((d & 0x10) >> 3) | (d & 0x01)];
+ scanline[hpos + 0] = m_maria_palette[pal][((d & 0x20) >> 4) | ((d & 0x02) >> 1)];
+ scanline[hpos + 1] = m_maria_palette[pal][((d & 0x10) >> 3) | (d & 0x01)];
}
inc_hpos_by_2();
break;
case 0x07: /* (320C mode) */
- if (d & 0xC0 || state->m_maria_kangaroo)
+ if (d & 0xC0 || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][(d & 0x80) >> 6];
- scanline[hpos + 1] = state->m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][(d & 0x40) >> 5];
+ scanline[hpos + 0] = m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][(d & 0x80) >> 6];
+ scanline[hpos + 1] = m_maria_palette[(pal & 0x04) | ((d & 0x0C) >> 2)][(d & 0x40) >> 5];
}
inc_hpos_by_2();
- if ( d & 0x30 || state->m_maria_kangaroo)
+ if ( d & 0x30 || m_maria_kangaroo)
{
- scanline[hpos + 0] = state->m_maria_palette[(pal & 0x04) | (d & 0x03)][(d & 0x20) >> 4];
- scanline[hpos + 1] = state->m_maria_palette[(pal & 0x04) | (d & 0x03)][(d & 0x10) >> 3];
+ scanline[hpos + 0] = m_maria_palette[(pal & 0x04) | (d & 0x03)][(d & 0x20) >> 4];
+ scanline[hpos + 1] = m_maria_palette[(pal & 0x04) | (d & 0x03)][(d & 0x10) >> 3];
}
inc_hpos_by_2();
break;
@@ -318,8 +317,8 @@ static void maria_draw_scanline(running_machine &machine)
TIMER_DEVICE_CALLBACK_MEMBER(a7800_state::a7800_interrupt)
{
int frame_scanline;
- UINT8 *ROM = machine().root_device().memregion("maincpu")->base();
- address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM);
+ UINT8 *ROM = m_region_maincpu->base();
+ address_space& space = m_maincpu->space(AS_PROGRAM);
m_maria_scanline++;
@@ -391,7 +390,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(a7800_state::a7800_interrupt)
if( ( frame_scanline > 15 ) && m_maria_dodma )
{
if (m_maria_scanline < ( m_lines - 4 ) )
- maria_draw_scanline(machine());
+ maria_draw_scanline();
if( m_maria_offset == 0 )
{
@@ -438,7 +437,7 @@ UINT32 a7800_state::screen_update_a7800(screen_device &screen, bitmap_ind16 &bit
READ8_MEMBER(a7800_state::a7800_MARIA_r)
{
- UINT8 *ROM = memregion("maincpu")->base();
+ UINT8 *ROM = m_region_maincpu->base();
switch (offset)
{
case 0x08:
@@ -452,7 +451,7 @@ READ8_MEMBER(a7800_state::a7800_MARIA_r)
WRITE8_MEMBER(a7800_state::a7800_MARIA_w)
{
- UINT8 *ROM = memregion("maincpu")->base();
+ UINT8 *ROM = m_region_maincpu->base();
switch (offset)
{
case 0x00:
@@ -477,7 +476,7 @@ WRITE8_MEMBER(a7800_state::a7800_MARIA_w)
m_maria_palette[0][3] = data;
break;
case 0x04:
- machine().device("maincpu")->execute().spin_until_trigger(TRIGGER_HSYNC);
+ m_maincpu->spin_until_trigger(TRIGGER_HSYNC);
m_maria_wsync=1;
break;