diff options
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 |
commit | 2c81cb6f6051bcfc519dc33a21a7da21b59f32c6 (patch) | |
tree | 7c5a0cdb0b1e1706d3198e55ed267f23176f9897 /src | |
parent | 39431cdbe71b8173575e881dc01b009706c32273 (diff) |
(MESS) a7800.c: Reduce tagmap lookups (nw)
Diffstat (limited to 'src')
-rw-r--r-- | src/mess/includes/a7800.h | 48 | ||||
-rw-r--r-- | src/mess/machine/a7800.c | 72 | ||||
-rw-r--r-- | src/mess/video/a7800.c | 147 |
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; |