diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2013-02-08 14:27:23 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2013-02-08 14:27:23 +0000 |
commit | fdad18e0f566a366b2909ab93bd69f1e2772cb4e (patch) | |
tree | 5fd5e3ea0e67bf453b9b2d828b07ef2389d65fe9 | |
parent | 6820f80e8aa21a8036edced76e07a256a5136c16 (diff) |
Modernization of drivers part 11 (no whatsnew)
39 files changed, 593 insertions, 591 deletions
diff --git a/src/mame/drivers/ataxx.c b/src/mame/drivers/ataxx.c index 477ea873849..187d820c5fb 100644 --- a/src/mame/drivers/ataxx.c +++ b/src/mame/drivers/ataxx.c @@ -707,8 +707,8 @@ ROM_END DRIVER_INIT_MEMBER(leland_state,ataxx) { - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0x00, 0x03, read8_delegate(FUNC(leland_state::ataxx_trackball_r),this)); @@ -717,8 +717,8 @@ DRIVER_INIT_MEMBER(leland_state,ataxx) DRIVER_INIT_MEMBER(leland_state,ataxxj) { - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0x00, 0x03, read8_delegate(FUNC(leland_state::ataxx_trackball_r),this)); @@ -727,8 +727,8 @@ DRIVER_INIT_MEMBER(leland_state,ataxxj) DRIVER_INIT_MEMBER(leland_state,wsf) { - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x0d, 0x0d, "P1_P2"); @@ -739,8 +739,8 @@ DRIVER_INIT_MEMBER(leland_state,wsf) DRIVER_INIT_MEMBER(leland_state,indyheat) { - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0x00, 0x02, read8_delegate(FUNC(leland_state::indyheat_wheel_r),this)); @@ -756,8 +756,8 @@ DRIVER_INIT_MEMBER(leland_state,indyheat) DRIVER_INIT_MEMBER(leland_state,brutforc) { - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x0d, 0x0d, "P2"); @@ -768,8 +768,8 @@ DRIVER_INIT_MEMBER(leland_state,brutforc) DRIVER_INIT_MEMBER(leland_state,asylum) { - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); /* asylum appears to have some extra RAM for the slave CPU */ machine().device("slave")->memory().space(AS_PROGRAM).install_ram(0xf000, 0xfffb); diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c index ade4ae2f6d5..3e2d55f8d66 100644 --- a/src/mame/drivers/legionna.c +++ b/src/mame/drivers/legionna.c @@ -908,13 +908,13 @@ static const gfx_layout legionna_new_charlayout = }; -static void descramble_legionnaire_gfx(running_machine &machine, UINT8* src) +void legionna_state::descramble_legionnaire_gfx(UINT8* src) { UINT8 *buffer; int len = 0x10000; /* rearrange gfx */ - buffer = auto_alloc_array(machine, UINT8, len); + buffer = auto_alloc_array(machine(), UINT8, len); { int i; for (i = 0;i < len; i++) @@ -928,7 +928,7 @@ static void descramble_legionnaire_gfx(running_machine &machine, UINT8* src) 3,2,1,0)]; } memcpy(src,buffer,len); - auto_free(machine, buffer); + auto_free(machine(), buffer); } } @@ -2340,7 +2340,7 @@ DRIVER_INIT_MEMBER(legionna_state,denjinmk) DRIVER_INIT_MEMBER(legionna_state,legiongfx) { - descramble_legionnaire_gfx( machine(), machine().root_device().memregion("gfx5")->base() ); + descramble_legionnaire_gfx(machine().root_device().memregion("gfx5")->base() ); } diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c index a9776ca497c..23b5151b096 100644 --- a/src/mame/drivers/leland.c +++ b/src/mame/drivers/leland.c @@ -1978,28 +1978,27 @@ ROM_END * *************************************/ -static void init_master_ports(running_machine &machine, UINT8 mvram_base, UINT8 io_base) +void leland_state::init_master_ports(UINT8 mvram_base, UINT8 io_base) { - leland_state *state = machine.driver_data<leland_state>(); /* set up the master CPU VRAM I/O */ - machine.device("master")->memory().space(AS_IO).install_readwrite_handler(mvram_base, mvram_base + 0x1f, read8_delegate(FUNC(leland_state::leland_mvram_port_r),state), write8_delegate(FUNC(leland_state::leland_mvram_port_w),state)); + machine().device("master")->memory().space(AS_IO).install_readwrite_handler(mvram_base, mvram_base + 0x1f, read8_delegate(FUNC(leland_state::leland_mvram_port_r),this), write8_delegate(FUNC(leland_state::leland_mvram_port_w),this)); /* set up the master CPU I/O ports */ - machine.device("master")->memory().space(AS_IO).install_read_handler(io_base, io_base + 0x1f, read8_delegate(FUNC(leland_state::leland_master_input_r),state)); - machine.device("master")->memory().space(AS_IO).install_write_handler(io_base, io_base + 0x0f, write8_delegate(FUNC(leland_state::leland_master_output_w),state)); + machine().device("master")->memory().space(AS_IO).install_read_handler(io_base, io_base + 0x1f, read8_delegate(FUNC(leland_state::leland_master_input_r),this)); + machine().device("master")->memory().space(AS_IO).install_write_handler(io_base, io_base + 0x0f, write8_delegate(FUNC(leland_state::leland_master_output_w),this)); } DRIVER_INIT_MEMBER(leland_state,cerberus) { /* master CPU bankswitching */ - m_update_master_bank = cerberus_bankswitch; + m_update_master_bank = &leland_state::cerberus_bankswitch; membank("bank1")->set_base(memregion("master")->base() + 0x2000); membank("bank2")->set_base(memregion("master")->base() + 0xa000); membank("bank3")->set_base(memregion("slave")->base() + 0x2000); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x40, 0x80); + init_master_ports(0x40, 0x80); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0x80, 0x80, read8_delegate(FUNC(leland_state::cerberus_dial_1_r),this)); @@ -2010,40 +2009,40 @@ DRIVER_INIT_MEMBER(leland_state,cerberus) DRIVER_INIT_MEMBER(leland_state,mayhem) { /* master CPU bankswitching */ - m_update_master_bank = mayhem_bankswitch; + m_update_master_bank = &leland_state::mayhem_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); } DRIVER_INIT_MEMBER(leland_state,powrplay) { /* master CPU bankswitching */ - m_update_master_bank = mayhem_bankswitch; + m_update_master_bank = &leland_state::mayhem_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x40, 0x80); + init_master_ports(0x40, 0x80); } DRIVER_INIT_MEMBER(leland_state,wseries) { /* master CPU bankswitching */ - m_update_master_bank = mayhem_bankswitch; + m_update_master_bank = &leland_state::mayhem_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x40, 0x80); + init_master_ports(0x40, 0x80); } DRIVER_INIT_MEMBER(leland_state,alleymas) { /* master CPU bankswitching */ - m_update_master_bank = mayhem_bankswitch; + m_update_master_bank = &leland_state::mayhem_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); /* kludge warning: the game uses location E0CA to determine if the joysticks are available */ /* it gets cleared by the code, but there is no obvious way for the value to be set to a */ @@ -2055,20 +2054,20 @@ DRIVER_INIT_MEMBER(leland_state,alleymas) DRIVER_INIT_MEMBER(leland_state,upyoural) { /* master CPU bankswitching */ - m_update_master_bank = mayhem_bankswitch; + m_update_master_bank = &leland_state::mayhem_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); } DRIVER_INIT_MEMBER(leland_state,dangerz) { /* master CPU bankswitching */ - m_update_master_bank = dangerz_bankswitch; + m_update_master_bank = &leland_state::dangerz_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x40, 0x80); + init_master_ports(0x40, 0x80); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0xf4, 0xf4, read8_delegate(FUNC(leland_state::dangerz_input_upper_r),this)); @@ -2080,42 +2079,42 @@ DRIVER_INIT_MEMBER(leland_state,dangerz) DRIVER_INIT_MEMBER(leland_state,basebal2) { /* master CPU bankswitching */ - m_update_master_bank = basebal2_bankswitch; + m_update_master_bank = &leland_state::basebal2_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); } DRIVER_INIT_MEMBER(leland_state,dblplay) { /* master CPU bankswitching */ - m_update_master_bank = basebal2_bankswitch; + m_update_master_bank = &leland_state::basebal2_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x80, 0x40); + init_master_ports(0x80, 0x40); } DRIVER_INIT_MEMBER(leland_state,strkzone) { /* master CPU bankswitching */ - m_update_master_bank = basebal2_bankswitch; + m_update_master_bank = &leland_state::basebal2_bankswitch; /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0x40); + init_master_ports(0x00, 0x40); } DRIVER_INIT_MEMBER(leland_state,redlin2p) { /* master CPU bankswitching */ - m_update_master_bank = redline_bankswitch; + m_update_master_bank = &leland_state::redline_bankswitch; - leland_rotate_memory(machine(), "master"); + leland_rotate_memory("master"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0xc0, 0xc0, read8_delegate(FUNC(leland_state::redline_pedal_1_r),this)); @@ -2128,26 +2127,26 @@ DRIVER_INIT_MEMBER(leland_state,redlin2p) DRIVER_INIT_MEMBER(leland_state,quarterb) { /* master CPU bankswitching */ - m_update_master_bank = viper_bankswitch; + m_update_master_bank = &leland_state::viper_bankswitch; - leland_rotate_memory(machine(), "master"); + leland_rotate_memory("master"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x40, 0x80); + init_master_ports(0x40, 0x80); } DRIVER_INIT_MEMBER(leland_state,viper) { /* master CPU bankswitching */ - m_update_master_bank = viper_bankswitch; + m_update_master_bank = &leland_state::viper_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0xa4, 0xa4, read8_delegate(FUNC(leland_state::dangerz_input_upper_r),this)); @@ -2159,14 +2158,14 @@ DRIVER_INIT_MEMBER(leland_state,viper) DRIVER_INIT_MEMBER(leland_state,teamqb) { /* master CPU bankswitching */ - m_update_master_bank = viper_bankswitch; + m_update_master_bank = &leland_state::viper_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x40, 0x80); + init_master_ports(0x40, 0x80); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x7c, 0x7c, "IN4"); @@ -2177,14 +2176,14 @@ DRIVER_INIT_MEMBER(leland_state,teamqb) DRIVER_INIT_MEMBER(leland_state,aafb) { /* master CPU bankswitching */ - m_update_master_bank = viper_bankswitch; + m_update_master_bank = &leland_state::viper_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); + init_master_ports(0x00, 0xc0); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x7c, 0x7c, "IN4"); @@ -2195,14 +2194,14 @@ DRIVER_INIT_MEMBER(leland_state,aafb) DRIVER_INIT_MEMBER(leland_state,aafbb) { /* master CPU bankswitching */ - m_update_master_bank = viper_bankswitch; + m_update_master_bank = &leland_state::viper_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x80, 0x40); + init_master_ports(0x80, 0x40); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x7c, 0x7c, "IN4"); @@ -2213,14 +2212,14 @@ DRIVER_INIT_MEMBER(leland_state,aafbb) DRIVER_INIT_MEMBER(leland_state,aafbd2p) { /* master CPU bankswitching */ - m_update_master_bank = viper_bankswitch; + m_update_master_bank = &leland_state::viper_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0x40); + init_master_ports(0x00, 0x40); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x7c, 0x7c, "IN4"); @@ -2231,15 +2230,15 @@ DRIVER_INIT_MEMBER(leland_state,aafbd2p) DRIVER_INIT_MEMBER(leland_state,offroad) { /* master CPU bankswitching */ - m_update_master_bank = offroad_bankswitch; + m_update_master_bank = &leland_state::offroad_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0xc0); - init_master_ports(machine(), 0x40, 0x80); /* yes, this is intentional */ + init_master_ports(0x00, 0xc0); + init_master_ports(0x40, 0x80); /* yes, this is intentional */ /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(leland_state::offroad_wheel_3_r),this)); @@ -2251,14 +2250,14 @@ DRIVER_INIT_MEMBER(leland_state,offroad) DRIVER_INIT_MEMBER(leland_state,offroadt) { /* master CPU bankswitching */ - m_update_master_bank = offroad_bankswitch; + m_update_master_bank = &leland_state::offroad_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x80, 0x40); + init_master_ports(0x80, 0x40); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_handler(0xf8, 0xf8, read8_delegate(FUNC(leland_state::offroad_wheel_3_r),this)); @@ -2270,14 +2269,14 @@ DRIVER_INIT_MEMBER(leland_state,offroadt) DRIVER_INIT_MEMBER(leland_state,pigout) { /* master CPU bankswitching */ - m_update_master_bank = offroad_bankswitch; + m_update_master_bank = &leland_state::offroad_bankswitch; - leland_rotate_memory(machine(), "master"); - leland_rotate_memory(machine(), "slave"); - leland_rotate_memory(machine(), "slave"); + leland_rotate_memory("master"); + leland_rotate_memory("slave"); + leland_rotate_memory("slave"); /* set up the master CPU I/O ports */ - init_master_ports(machine(), 0x00, 0x40); + init_master_ports(0x00, 0x40); /* set up additional input ports */ machine().device("master")->memory().space(AS_IO).install_read_port(0x7f, 0x7f, "IN4"); diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index 02165f85e16..f8f8da75308 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -181,7 +181,7 @@ WRITE8_MEMBER(lordgun_state::lordgun_eeprom_w) // Update light guns positions for (i = 0; i < 2; i++) if ( (data & (0x04 << i)) && !(m_old & (0x04 << i)) ) - lordgun_update_gun(machine(), i); + lordgun_update_gun(i); // latch the bit eeprom->write_bit(data & 0x40); diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c index ec68623e821..9d7a7264869 100644 --- a/src/mame/drivers/lwings.c +++ b/src/mame/drivers/lwings.c @@ -131,9 +131,8 @@ WRITE8_MEMBER(lwings_state::avengers_prot_bank_w) m_palette_pen = data * 64; } -static int avengers_fetch_paldata( running_machine &machine ) +int lwings_state::avengers_fetch_paldata( ) { - lwings_state *state = machine.driver_data<lwings_state>(); static const char pal_data[] = /* page 1: 0x03,0x02,0x01,0x00 */ @@ -196,8 +195,8 @@ static int avengers_fetch_paldata( running_machine &machine ) "0000000000000000" "6474667676660100" "7696657575650423" "88A8647474645473" "0000000000000000" "0001070701050004" "0003060603040303" "0005050505040302"; - int bank = state->m_palette_pen / 64; - int offs = state->m_palette_pen % 64; + int bank = m_palette_pen / 64; + int offs = m_palette_pen % 64; int page = bank / 4; /* 0..7 */ int base = (3 - (bank & 3)); /* 0..3 */ int row = offs & 0xf; /* 0..15 */ @@ -218,8 +217,8 @@ static int avengers_fetch_paldata( running_machine &machine ) result = digit0 * 16 + digit1; - if ((state->m_palette_pen & 0x3f) != 0x3f) - state->m_palette_pen++; + if ((m_palette_pen & 0x3f) != 0x3f) + m_palette_pen++; return result; } @@ -236,7 +235,7 @@ READ8_MEMBER(lwings_state::avengers_protection_r) if (space.device().safe_pc() == 0x7c7) { /* palette data */ - return avengers_fetch_paldata(machine()); + return avengers_fetch_paldata(); } /* Point to Angle Function diff --git a/src/mame/includes/labyrunr.h b/src/mame/includes/labyrunr.h index 7a83b81ccc3..920091e9a8d 100644 --- a/src/mame/includes/labyrunr.h +++ b/src/mame/includes/labyrunr.h @@ -44,4 +44,5 @@ public: UINT32 screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(labyrunr_vblank_interrupt); INTERRUPT_GEN_MEMBER(labyrunr_timer_interrupt); + void set_pens( ); }; diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h index ef5d8c68964..874ebb6fb49 100644 --- a/src/mame/includes/ladybug.h +++ b/src/mame/includes/ladybug.h @@ -81,6 +81,7 @@ public: UINT32 screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); void screen_eof_sraider(screen_device &screen, bool state); void screen_eof_redclash(screen_device &screen, bool state); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; /*----------- defined in video/redclash.c -----------*/ diff --git a/src/mame/includes/ladyfrog.h b/src/mame/includes/ladyfrog.h index 131af1a941b..92defae4b17 100644 --- a/src/mame/includes/ladyfrog.h +++ b/src/mame/includes/ladyfrog.h @@ -60,4 +60,5 @@ public: DECLARE_VIDEO_START(ladyfrog_common); UINT32 screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(nmi_callback); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/lasso.h b/src/mame/includes/lasso.h index 069c6ab8c57..b10012b0652 100644 --- a/src/mame/includes/lasso.h +++ b/src/mame/includes/lasso.h @@ -68,4 +68,8 @@ public: UINT32 screen_update_lasso(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_chameleo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + rgb_t get_color( int data ); + void wwjgtin_set_last_four_colors( colortable_t *colortable ); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int reverse ); + void draw_lasso( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/lastduel.h b/src/mame/includes/lastduel.h index 48c6e5753d9..f1570ed0d4f 100644 --- a/src/mame/includes/lastduel.h +++ b/src/mame/includes/lastduel.h @@ -62,4 +62,5 @@ public: UINT32 screen_update_madgear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(lastduel_timer_cb); TIMER_DEVICE_CALLBACK_MEMBER(madgear_timer_cb); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); }; diff --git a/src/mame/includes/lazercmd.h b/src/mame/includes/lazercmd.h index 7d618c3eeb5..49a95ccb7e8 100644 --- a/src/mame/includes/lazercmd.h +++ b/src/mame/includes/lazercmd.h @@ -59,4 +59,6 @@ public: UINT32 screen_update_lazercmd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(lazercmd_timer); TIMER_DEVICE_CALLBACK_MEMBER(bbonk_timer); + int vert_scale(int data); + void plot_pattern( bitmap_ind16 &bitmap, int x, int y ); }; diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h index 0d4ddc85ffd..d725693f9c0 100644 --- a/src/mame/includes/legionna.h +++ b/src/mame/includes/legionna.h @@ -52,6 +52,8 @@ public: UINT32 screen_update_legionna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_grainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect); + void descramble_legionnaire_gfx(UINT8* src); }; /*----------- defined in video/legionna.c -----------*/ diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h index 111a685b4df..88be93977c1 100644 --- a/src/mame/includes/leland.h +++ b/src/mame/includes/leland.h @@ -50,7 +50,7 @@ public: UINT8 m_sound_port_bank; UINT8 m_alternate_bank; UINT8 m_master_bank; - void (*m_update_master_bank)(running_machine &machine); + void (leland_state::*m_update_master_bank)(); UINT32 m_xrom1_addr; UINT32 m_xrom2_addr; UINT8 m_battery_ram_enable; @@ -152,6 +152,25 @@ public: DECLARE_READ8_MEMBER(leland_sound_port_r); DECLARE_WRITE8_MEMBER(leland_sound_port_w); DECLARE_WRITE8_MEMBER(leland_gfx_port_w); + void leland_video_addr_w(address_space &space, int offset, int data, int num); + int leland_vram_port_r(address_space &space, int offset, int num); + void leland_vram_port_w(address_space &space, int offset, int data, int num); + int dial_compute_value(int new_val, int indx); + void update_dangerz_xy(); + void cerberus_bankswitch(); + void mayhem_bankswitch(); + void dangerz_bankswitch(); + void basebal2_bankswitch(); + void redline_bankswitch(); + void viper_bankswitch(); + void offroad_bankswitch(); + void ataxx_bankswitch(); + void leland_init_eeprom(UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type); + void ataxx_init_eeprom(const UINT16 *data); + int keycard_r(); + void keycard_w(int data); + void leland_rotate_memory(const char *cpuname); + void init_master_ports(UINT8 mvram_base, UINT8 io_base); }; @@ -163,15 +182,6 @@ public: #define SERIAL_TYPE_ENCRYPT 3 #define SERIAL_TYPE_ENCRYPT_XOR 4 -void cerberus_bankswitch(running_machine &machine); -void mayhem_bankswitch(running_machine &machine); -void dangerz_bankswitch(running_machine &machine); -void basebal2_bankswitch(running_machine &machine); -void redline_bankswitch(running_machine &machine); -void viper_bankswitch(running_machine &machine); -void offroad_bankswitch(running_machine &machine); -void ataxx_bankswitch(running_machine &machine); - void leland_init_eeprom(running_machine &machine, UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type); void ataxx_init_eeprom(running_machine &machine, const UINT16 *data); diff --git a/src/mame/includes/lemmings.h b/src/mame/includes/lemmings.h index 24770920d7c..bde3dcf646a 100644 --- a/src/mame/includes/lemmings.h +++ b/src/mame/includes/lemmings.h @@ -51,4 +51,5 @@ public: virtual void video_start(); UINT32 screen_update_lemmings(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void screen_eof_lemmings(screen_device &screen, bool state); + void lemmings_copy_bitmap(bitmap_rgb32& bitmap, bitmap_ind16& srcbitmap, int* xscroll, int* yscroll, const rectangle& cliprect); }; diff --git a/src/mame/includes/lethalj.h b/src/mame/includes/lethalj.h index 7d3a493ace9..6bb8e918a15 100644 --- a/src/mame/includes/lethalj.h +++ b/src/mame/includes/lethalj.h @@ -30,6 +30,7 @@ public: DECLARE_DRIVER_INIT(cclownz); virtual void video_start(); TIMER_CALLBACK_MEMBER(gen_ext1_int); + inline void get_crosshair_xy(int player, int *x, int *y); }; /*----------- defined in video/lethalj.c -----------*/ diff --git a/src/mame/includes/liberate.h b/src/mame/includes/liberate.h index 0bc79bd778e..56f56bd9903 100644 --- a/src/mame/includes/liberate.h +++ b/src/mame/includes/liberate.h @@ -69,4 +69,9 @@ public: UINT32 screen_update_prosoccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(deco16_interrupt); INTERRUPT_GEN_MEMBER(prosport_interrupt); + void debug_print(bitmap_ind16 &bitmap); + void liberate_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void prosport_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void boomrang_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ); + void prosoccr_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/lkage.h b/src/mame/includes/lkage.h index 1e842158b04..2b204eeac0f 100644 --- a/src/mame/includes/lkage.h +++ b/src/mame/includes/lkage.h @@ -84,4 +84,5 @@ public: virtual void video_start(); UINT32 screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(nmi_callback); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/lockon.h b/src/mame/includes/lockon.h index d12a7e6654e..10cabc65aab 100644 --- a/src/mame/includes/lockon.h +++ b/src/mame/includes/lockon.h @@ -109,4 +109,9 @@ public: void screen_eof_lockon(screen_device &screen, bool state); TIMER_CALLBACK_MEMBER(cursor_callback); TIMER_CALLBACK_MEMBER(bufend_callback); + void scene_draw( ); + void ground_draw( ); + void objects_draw( ); + void rotate_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void hud_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/lordgun.h b/src/mame/includes/lordgun.h index 0c524e50387..dcabed2512e 100644 --- a/src/mame/includes/lordgun.h +++ b/src/mame/includes/lordgun.h @@ -68,8 +68,12 @@ public: TILE_GET_INFO_MEMBER(get_tile_info_3); virtual void video_start(); UINT32 screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + inline void get_tile_info(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_); + inline void lordgun_vram_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _N_); + void lorddgun_calc_gun_scr(int i); + void lordgun_update_gun(int i); + void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect); }; /*----------- defined in video/lordgun.c -----------*/ float lordgun_crosshair_mapper(const ioport_field *field, float linear_value); -void lordgun_update_gun(running_machine &machine, int i); diff --git a/src/mame/includes/lsasquad.h b/src/mame/includes/lsasquad.h index b69cd072657..5d862433f18 100644 --- a/src/mame/includes/lsasquad.h +++ b/src/mame/includes/lsasquad.h @@ -62,4 +62,8 @@ public: UINT32 screen_update_lsasquad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_daikaiju(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_CALLBACK_MEMBER(nmi_callback); + void draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *scrollram ); + int draw_layer_daikaiju( bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int * previd, int type ); + void drawbg( bitmap_ind16 &bitmap, const rectangle &cliprect, int type ); + void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); }; diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h index d10954bb77c..2fdf6290a25 100644 --- a/src/mame/includes/lwings.h +++ b/src/mame/includes/lwings.h @@ -62,4 +62,8 @@ public: UINT32 screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(lwings_interrupt); INTERRUPT_GEN_MEMBER(avengers_interrupt); + inline int is_sprite_on( UINT8 *buffered_spriteram, int offs ); + void lwings_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + void trojan_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); + int avengers_fetch_paldata( ); }; diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index 07c051c2701..d95340e350f 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -44,13 +44,12 @@ * *************************************/ -static int dial_compute_value(running_machine &machine, int new_val, int indx) +int leland_state::dial_compute_value(int new_val, int indx) { - leland_state *state = machine.driver_data<leland_state>(); - int delta = new_val - (int)state->m_dial_last_input[indx]; - UINT8 result = state->m_dial_last_result[indx] & 0x80; + int delta = new_val - (int)m_dial_last_input[indx]; + UINT8 result = m_dial_last_result[indx] & 0x80; - state->m_dial_last_input[indx] = new_val; + m_dial_last_input[indx] = new_val; if (delta > 0x80) delta -= 0x100; @@ -67,9 +66,9 @@ static int dial_compute_value(running_machine &machine, int new_val, int indx) if (delta > 0x1f) delta = 0x1f; - result |= (state->m_dial_last_result[indx] + delta) & 0x1f; + result |= (m_dial_last_result[indx] + delta) & 0x1f; - state->m_dial_last_result[indx] = result; + m_dial_last_result[indx] = result; return result; } @@ -84,7 +83,7 @@ static int dial_compute_value(running_machine &machine, int new_val, int indx) READ8_MEMBER(leland_state::cerberus_dial_1_r) { int original = ioport("IN0")->read(); - int modified = dial_compute_value(machine(), ioport("AN0")->read(), 0); + int modified = dial_compute_value(ioport("AN0")->read(), 0); return (original & 0xc0) | ((modified & 0x80) >> 2) | (modified & 0x1f); } @@ -92,7 +91,7 @@ READ8_MEMBER(leland_state::cerberus_dial_1_r) READ8_MEMBER(leland_state::cerberus_dial_2_r) { int original = ioport("IN0")->read(); - int modified = dial_compute_value(machine(), ioport("AN1")->read(), 1); + int modified = dial_compute_value(ioport("AN1")->read(), 1); return (original & 0xc0) | ((modified & 0x80) >> 2) | (modified & 0x1f); } @@ -133,48 +132,47 @@ WRITE8_MEMBER(leland_state::alleymas_joystick_kludge) * *************************************/ -static void update_dangerz_xy(running_machine &machine) +void leland_state::update_dangerz_xy() { - leland_state *state = machine.driver_data<leland_state>(); - UINT8 newy = state->ioport("AN0")->read(); - UINT8 newx = state->ioport("AN1")->read(); - int deltay = newy - state->m_dial_last_input[0]; - int deltax = newx - state->m_dial_last_input[1]; + UINT8 newy = ioport("AN0")->read(); + UINT8 newx = ioport("AN1")->read(); + int deltay = newy - m_dial_last_input[0]; + int deltax = newx - m_dial_last_input[1]; if (deltay <= -128) deltay += 256; else if (deltay >= 128) deltay -= 256; if (deltax <= -128) deltax += 256; else if (deltax >= 128) deltax -= 256; - state->m_dangerz_y += deltay; - state->m_dangerz_x += deltax; - if (state->m_dangerz_y < 0) state->m_dangerz_y = 0; - else if (state->m_dangerz_y >= 1024) state->m_dangerz_y = 1023; - if (state->m_dangerz_x < 0) state->m_dangerz_x = 0; - else if (state->m_dangerz_x >= 1024) state->m_dangerz_x = 1023; + m_dangerz_y += deltay; + m_dangerz_x += deltax; + if (m_dangerz_y < 0) m_dangerz_y = 0; + else if (m_dangerz_y >= 1024) m_dangerz_y = 1023; + if (m_dangerz_x < 0) m_dangerz_x = 0; + else if (m_dangerz_x >= 1024) m_dangerz_x = 1023; - state->m_dial_last_input[0] = newy; - state->m_dial_last_input[1] = newx; + m_dial_last_input[0] = newy; + m_dial_last_input[1] = newx; } READ8_MEMBER(leland_state::dangerz_input_y_r) { - update_dangerz_xy(machine()); + update_dangerz_xy(); return m_dangerz_y & 0xff; } READ8_MEMBER(leland_state::dangerz_input_x_r) { - update_dangerz_xy(machine()); + update_dangerz_xy(); return m_dangerz_x & 0xff; } READ8_MEMBER(leland_state::dangerz_input_upper_r) { - update_dangerz_xy(machine()); + update_dangerz_xy(); return ((m_dangerz_y >> 2) & 0xc0) | ((m_dangerz_x >> 8) & 0x03); } @@ -204,13 +202,13 @@ READ8_MEMBER(leland_state::redline_pedal_2_r) READ8_MEMBER(leland_state::redline_wheel_1_r) { - return dial_compute_value(machine(), ioport("AN0")->read(), 0); + return dial_compute_value(ioport("AN0")->read(), 0); } READ8_MEMBER(leland_state::redline_wheel_2_r) { - return dial_compute_value(machine(), ioport("AN1")->read(), 1); + return dial_compute_value(ioport("AN1")->read(), 1); } @@ -223,19 +221,19 @@ READ8_MEMBER(leland_state::redline_wheel_2_r) READ8_MEMBER(leland_state::offroad_wheel_1_r) { - return dial_compute_value(machine(), ioport("AN3")->read(), 0); + return dial_compute_value(ioport("AN3")->read(), 0); } READ8_MEMBER(leland_state::offroad_wheel_2_r) { - return dial_compute_value(machine(), ioport("AN4")->read(), 1); + return dial_compute_value(ioport("AN4")->read(), 1); } READ8_MEMBER(leland_state::offroad_wheel_3_r) { - return dial_compute_value(machine(), ioport("AN5")->read(), 2); + return dial_compute_value(ioport("AN5")->read(), 2); } @@ -250,7 +248,7 @@ READ8_MEMBER(leland_state::ataxx_trackball_r) { static const char *const tracknames[] = { "AN0", "AN1", "AN2", "AN3" }; - return dial_compute_value(machine(), ioport(tracknames[offset])->read(), offset); + return dial_compute_value(ioport(tracknames[offset])->read(), offset); } @@ -265,7 +263,7 @@ READ8_MEMBER(leland_state::indyheat_wheel_r) { static const char *const tracknames[] = { "AN0", "AN1", "AN2" }; - return dial_compute_value(machine(), ioport(tracknames[offset])->read(), offset); + return dial_compute_value(ioport(tracknames[offset])->read(), offset); } @@ -355,7 +353,7 @@ MACHINE_RESET_MEMBER(leland_state,leland) /* initialize the master banks */ m_master_length = memregion("master")->bytes(); m_master_base = memregion("master")->base(); - (*m_update_master_bank)(machine()); + (this->*m_update_master_bank)(); /* initialize the slave banks */ m_slave_length = memregion("slave")->bytes(); @@ -399,7 +397,7 @@ MACHINE_RESET_MEMBER(leland_state,ataxx) /* initialize the master banks */ m_master_length = memregion("master")->bytes(); m_master_base = memregion("master")->base(); - ataxx_bankswitch(machine()); + ataxx_bankswitch(); /* initialize the slave banks */ m_slave_length = memregion("slave")->bytes(); @@ -466,7 +464,7 @@ WRITE8_MEMBER(leland_state::leland_master_alt_bankswitch_w) if ((m_alternate_bank ^ data) & 0x0f) logerror("%04X:alternate_bank = %02X\n", space.device().safe_pc(), data & 0x0f); m_alternate_bank = data & 15; - (*m_update_master_bank)(machine()); + (this->*m_update_master_bank)(); /* sound control is in the rest */ leland_80186_control_w(machine().device("custom"), space, offset, data); @@ -474,128 +472,121 @@ WRITE8_MEMBER(leland_state::leland_master_alt_bankswitch_w) /* bankswitching for Cerberus */ -void cerberus_bankswitch(running_machine &machine) +void leland_state::cerberus_bankswitch() { /* no bankswitching */ } /* bankswitching for Mayhem 2002, Power Play, World Series Baseball, and Alley Master */ -void mayhem_bankswitch(running_machine &machine) +void leland_state::mayhem_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); UINT8 *address; - state->m_battery_ram_enable = ((state->m_sound_port_bank & 0x24) == 0); + m_battery_ram_enable = ((m_sound_port_bank & 0x24) == 0); - address = (!(state->m_sound_port_bank & 0x04)) ? &state->m_master_base[0x10000] : &state->m_master_base[0x1c000]; - state->membank("bank1")->set_base(address); + address = (!(m_sound_port_bank & 0x04)) ? &m_master_base[0x10000] : &m_master_base[0x1c000]; + membank("bank1")->set_base(address); - address = state->m_battery_ram_enable ? state->m_battery_ram : &address[0x8000]; - state->membank("bank2")->set_base(address); + address = m_battery_ram_enable ? m_battery_ram : &address[0x8000]; + membank("bank2")->set_base(address); } /* bankswitching for Danger Zone */ -void dangerz_bankswitch(running_machine &machine) +void leland_state::dangerz_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); UINT8 *address; - state->m_battery_ram_enable = ((state->m_top_board_bank & 0x80) != 0); + m_battery_ram_enable = ((m_top_board_bank & 0x80) != 0); - address = (!(state->m_alternate_bank & 1)) ? &state->m_master_base[0x02000] : &state->m_master_base[0x12000]; - state->membank("bank1")->set_base(address); + address = (!(m_alternate_bank & 1)) ? &m_master_base[0x02000] : &m_master_base[0x12000]; + membank("bank1")->set_base(address); - address = state->m_battery_ram_enable ? state->m_battery_ram : &address[0x8000]; - state->membank("bank2")->set_base(address); + address = m_battery_ram_enable ? m_battery_ram : &address[0x8000]; + membank("bank2")->set_base(address); } /* bankswitching for Baseball the Season II, Super Baseball, and Strike Zone */ -void basebal2_bankswitch(running_machine &machine) +void leland_state::basebal2_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); UINT8 *address; - state->m_battery_ram_enable = (state->m_top_board_bank & 0x80); + m_battery_ram_enable = (m_top_board_bank & 0x80); - if (!state->m_battery_ram_enable) - address = (!(state->m_sound_port_bank & 0x04)) ? &state->m_master_base[0x10000] : &state->m_master_base[0x1c000]; + if (!m_battery_ram_enable) + address = (!(m_sound_port_bank & 0x04)) ? &m_master_base[0x10000] : &m_master_base[0x1c000]; else - address = (!(state->m_top_board_bank & 0x40)) ? &state->m_master_base[0x28000] : &state->m_master_base[0x30000]; - state->membank("bank1")->set_base(address); + address = (!(m_top_board_bank & 0x40)) ? &m_master_base[0x28000] : &m_master_base[0x30000]; + membank("bank1")->set_base(address); - address = state->m_battery_ram_enable ? state->m_battery_ram : &address[0x8000]; - state->membank("bank2")->set_base(address); + address = m_battery_ram_enable ? m_battery_ram : &address[0x8000]; + membank("bank2")->set_base(address); } /* bankswitching for Red Line Racer */ -void redline_bankswitch(running_machine &machine) +void leland_state::redline_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); static const UINT32 bank_list[] = { 0x10000, 0x18000, 0x02000, 0x02000 }; UINT8 *address; - state->m_battery_ram_enable = ((state->m_alternate_bank & 3) == 1); + m_battery_ram_enable = ((m_alternate_bank & 3) == 1); - address = &state->m_master_base[bank_list[state->m_alternate_bank & 3]]; - state->membank("bank1")->set_base(address); + address = &m_master_base[bank_list[m_alternate_bank & 3]]; + membank("bank1")->set_base(address); - address = state->m_battery_ram_enable ? state->m_battery_ram : &state->m_master_base[0xa000]; - state->membank("bank2")->set_base(address); + address = m_battery_ram_enable ? m_battery_ram : &m_master_base[0xa000]; + membank("bank2")->set_base(address); } /* bankswitching for Viper, Quarterback, Team Quarterback, and All American Football */ -void viper_bankswitch(running_machine &machine) +void leland_state::viper_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); static const UINT32 bank_list[] = { 0x02000, 0x10000, 0x18000, 0x02000 }; UINT8 *address; - state->m_battery_ram_enable = ((state->m_alternate_bank & 0x04) != 0); + m_battery_ram_enable = ((m_alternate_bank & 0x04) != 0); - address = &state->m_master_base[bank_list[state->m_alternate_bank & 3]]; - if (bank_list[state->m_alternate_bank & 3] >= state->m_master_length) + address = &m_master_base[bank_list[m_alternate_bank & 3]]; + if (bank_list[m_alternate_bank & 3] >= m_master_length) { - logerror("%s:Master bank %02X out of range!\n", machine.describe_context(), state->m_alternate_bank & 3); - address = &state->m_master_base[bank_list[0]]; + logerror("%s:Master bank %02X out of range!\n", machine().describe_context(), m_alternate_bank & 3); + address = &m_master_base[bank_list[0]]; } - state->membank("bank1")->set_base(address); + membank("bank1")->set_base(address); - address = state->m_battery_ram_enable ? state->m_battery_ram : &state->m_master_base[0xa000]; - state->membank("bank2")->set_base(address); + address = m_battery_ram_enable ? m_battery_ram : &m_master_base[0xa000]; + membank("bank2")->set_base(address); } /* bankswitching for Super Offroad, Super Offroad Track Pack, and Pig Out */ -void offroad_bankswitch(running_machine &machine) +void leland_state::offroad_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); static const UINT32 bank_list[] = { 0x02000, 0x02000, 0x10000, 0x18000, 0x20000, 0x28000, 0x30000, 0x38000 }; UINT8 *address; - state->m_battery_ram_enable = ((state->m_alternate_bank & 7) == 1); + m_battery_ram_enable = ((m_alternate_bank & 7) == 1); - address = &state->m_master_base[bank_list[state->m_alternate_bank & 7]]; - if (bank_list[state->m_alternate_bank & 7] >= state->m_master_length) + address = &m_master_base[bank_list[m_alternate_bank & 7]]; + if (bank_list[m_alternate_bank & 7] >= m_master_length) { - logerror("%s:Master bank %02X out of range!\n", machine.describe_context(), state->m_alternate_bank & 7); - address = &state->m_master_base[bank_list[0]]; + logerror("%s:Master bank %02X out of range!\n", machine().describe_context(), m_alternate_bank & 7); + address = &m_master_base[bank_list[0]]; } - state->membank("bank1")->set_base(address); + membank("bank1")->set_base(address); - address = state->m_battery_ram_enable ? state->m_battery_ram : &state->m_master_base[0xa000]; - state->membank("bank2")->set_base(address); + address = m_battery_ram_enable ? m_battery_ram : &m_master_base[0xa000]; + membank("bank2")->set_base(address); } /* bankswitching for Ataxx, WSF, Indy Heat, and Brute Force */ -void ataxx_bankswitch(running_machine &machine) +void leland_state::ataxx_bankswitch() { - leland_state *state = machine.driver_data<leland_state>(); static const UINT32 bank_list[] = { 0x02000, 0x18000, 0x20000, 0x28000, 0x30000, 0x38000, 0x40000, 0x48000, @@ -603,25 +594,25 @@ void ataxx_bankswitch(running_machine &machine) }; UINT8 *address; - state->m_battery_ram_enable = ((state->m_master_bank & 0x30) == 0x10); + m_battery_ram_enable = ((m_master_bank & 0x30) == 0x10); - address = &state->m_master_base[bank_list[state->m_master_bank & 15]]; - if (bank_list[state->m_master_bank & 15] >= state->m_master_length) + address = &m_master_base[bank_list[m_master_bank & 15]]; + if (bank_list[m_master_bank & 15] >= m_master_length) { - logerror("%s:Master bank %02X out of range!\n", machine.describe_context(), state->m_master_bank & 15); - address = &state->m_master_base[bank_list[0]]; + logerror("%s:Master bank %02X out of range!\n", machine().describe_context(), m_master_bank & 15); + address = &m_master_base[bank_list[0]]; } - state->membank("bank1")->set_base(address); + membank("bank1")->set_base(address); - if (state->m_battery_ram_enable) - address = state->m_battery_ram; - else if ((state->m_master_bank & 0x30) == 0x20) - address = &state->m_ataxx_qram[(state->m_master_bank & 0xc0) << 8]; + if (m_battery_ram_enable) + address = m_battery_ram; + else if ((m_master_bank & 0x30) == 0x20) + address = &m_ataxx_qram[(m_master_bank & 0xc0) << 8]; else - address = &state->m_master_base[0xa000]; - state->membank("bank2")->set_base(address); + address = &m_master_base[0xa000]; + membank("bank2")->set_base(address); - state->m_wcol_enable = ((state->m_master_bank & 0x30) == 0x30); + m_wcol_enable = ((m_master_bank & 0x30) == 0x30); } @@ -632,7 +623,7 @@ void ataxx_bankswitch(running_machine &machine) * *************************************/ -void leland_init_eeprom(running_machine &machine, UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type) +void leland_state::leland_init_eeprom(UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type) { UINT8 xorval = (serial_type == SERIAL_TYPE_ADD_XOR || serial_type == SERIAL_TYPE_ENCRYPT_XOR) ? 0xff : 0x00; UINT8 eeprom_data[64*2]; @@ -743,7 +734,7 @@ void leland_init_eeprom(running_machine &machine, UINT8 default_val, const UINT1 * *************************************/ -void ataxx_init_eeprom(running_machine &machine, const UINT16 *data) +void leland_state::ataxx_init_eeprom(const UINT16 *data) { UINT8 eeprom_data[128*2]; UINT8 serial_offset = 0; @@ -918,79 +909,77 @@ WRITE8_MEMBER(leland_state::ataxx_battery_ram_w) --------------------------------------------------------------------*/ -static int keycard_r(running_machine &machine) +int leland_state::keycard_r() { - leland_state *state = machine.driver_data<leland_state>(); int result = 0; - if (LOG_KEYCARDS_FULL) logerror(" (%s:keycard_r)\n", machine.describe_context()); + if (LOG_KEYCARDS_FULL) logerror(" (%s:keycard_r)\n", machine().describe_context()); /* if we have a valid keycard read state, we're reading from the keycard */ - if (state->m_keycard_state & 0x80) + if (m_keycard_state & 0x80) { /* clock in new data */ - if (state->m_keycard_bit == 1) + if (m_keycard_bit == 1) { - state->m_keycard_shift = 0xff; /* no data, but this is where we would clock it in */ - if (LOG_KEYCARDS) logerror(" (clocked in %02X)\n", state->m_keycard_shift); + m_keycard_shift = 0xff; /* no data, but this is where we would clock it in */ + if (LOG_KEYCARDS) logerror(" (clocked in %02X)\n", m_keycard_shift); } /* clock in the bit */ - result = (~state->m_keycard_shift & 1) << ((state->m_keycard_state >> 4) & 3); + result = (~m_keycard_shift & 1) << ((m_keycard_state >> 4) & 3); if (LOG_KEYCARDS) logerror(" (read %02X)\n", result); } return result; } -static void keycard_w(running_machine &machine, int data) +void leland_state::keycard_w(int data) { - leland_state *state = machine.driver_data<leland_state>(); int new_state = data & 0xb0; int new_clock = data & 0x40; - if (LOG_KEYCARDS_FULL) logerror(" (%s:keycard_w=%02X)\n", machine.describe_context(), data); + if (LOG_KEYCARDS_FULL) logerror(" (%s:keycard_w=%02X)\n", machine().describe_context(), data); /* check for going active */ - if (!state->m_keycard_state && new_state) + if (!m_keycard_state && new_state) { - state->m_keycard_command[0] = state->m_keycard_command[1] = state->m_keycard_command[2] = 0; + m_keycard_command[0] = m_keycard_command[1] = m_keycard_command[2] = 0; if (LOG_KEYCARDS) logerror("keycard going active (state=%02X)\n", new_state); } /* check for going inactive */ - else if (state->m_keycard_state && !new_state) + else if (m_keycard_state && !new_state) { - state->m_keycard_command[0] = state->m_keycard_command[1] = state->m_keycard_command[2] = 0; + m_keycard_command[0] = m_keycard_command[1] = m_keycard_command[2] = 0; if (LOG_KEYCARDS) logerror("keycard going inactive\n"); } /* check for clocks */ - else if (state->m_keycard_state == new_state) + else if (m_keycard_state == new_state) { /* work off of falling edge */ - if (!new_clock && state->m_keycard_clock) + if (!new_clock && m_keycard_clock) { - state->m_keycard_shift >>= 1; - state->m_keycard_bit = (state->m_keycard_bit + 1) & 7; + m_keycard_shift >>= 1; + m_keycard_bit = (m_keycard_bit + 1) & 7; } /* look for a bit write */ - else if (!new_clock && !state->m_keycard_clock && !(data & 0x80)) + else if (!new_clock && !m_keycard_clock && !(data & 0x80)) { if (LOG_KEYCARDS) logerror(" (write %02X)\n", data); - state->m_keycard_shift &= ~0x80; + m_keycard_shift &= ~0x80; if (data & (1 << ((new_state >> 4) & 3))) - state->m_keycard_shift |= 0x80; + m_keycard_shift |= 0x80; /* clock out the data on the last bit */ - if (state->m_keycard_bit == 7) + if (m_keycard_bit == 7) { - if (LOG_KEYCARDS) logerror(" (clocked out %02X)\n", state->m_keycard_shift); - state->m_keycard_command[0] = state->m_keycard_command[1]; - state->m_keycard_command[1] = state->m_keycard_command[2]; - state->m_keycard_command[2] = state->m_keycard_shift; - if (state->m_keycard_command[0] == 0x62 && state->m_keycard_command[1] == 0x00 && state->m_keycard_command[2] == 0x80) + if (LOG_KEYCARDS) logerror(" (clocked out %02X)\n", m_keycard_shift); + m_keycard_command[0] = m_keycard_command[1]; + m_keycard_command[1] = m_keycard_command[2]; + m_keycard_command[2] = m_keycard_shift; + if (m_keycard_command[0] == 0x62 && m_keycard_command[1] == 0x00 && m_keycard_command[2] == 0x80) { if (LOG_KEYCARDS) logerror(" (got command $62)\n"); } @@ -1002,12 +991,12 @@ static void keycard_w(running_machine &machine, int data) else { /* only an error if the selected bit changes; read/write transitions are okay */ - if ((new_state & 0x30) != (state->m_keycard_state & 0x30)) - if (LOG_KEYCARDS) logerror("ERROR: Caught keycard state transition %02X -> %02X\n", state->m_keycard_state, new_state); + if ((new_state & 0x30) != (m_keycard_state & 0x30)) + if (LOG_KEYCARDS) logerror("ERROR: Caught keycard state transition %02X -> %02X\n", m_keycard_state, new_state); } - state->m_keycard_state = new_state; - state->m_keycard_clock = new_clock; + m_keycard_state = new_state; + m_keycard_clock = new_clock; } @@ -1034,7 +1023,7 @@ READ8_MEMBER(leland_state::leland_master_analog_key_r) break; case 0x02: /* FF = keycard serial data read */ - result = keycard_r(machine()); + result = keycard_r(); /* bit 7 indicates the analog input is busy for some games */ result &= ~0x80; @@ -1062,11 +1051,11 @@ WRITE8_MEMBER(leland_state::leland_master_analog_key_w) if ((m_top_board_bank ^ data) & 0xc0) logerror("%04X:top_board_bank = %02X\n", space.device().safe_pc(), data & 0xc0); m_top_board_bank = data & 0xc0; - (*m_update_master_bank)(machine()); + (this->*m_update_master_bank)(); break; case 0x02: /* FF = keycard data write */ - keycard_w(machine(), data); + keycard_w(data); break; } } @@ -1201,7 +1190,7 @@ WRITE8_MEMBER(leland_state::ataxx_master_output_w) if ((m_master_bank ^ data) & 0xff) logerror("%04X:master_bank = %02X\n", space.device().safe_pc(), data & 0xff); m_master_bank = data; - ataxx_bankswitch(machine()); + ataxx_bankswitch(); break; case 0x05: /* /SLV0 */ @@ -1322,7 +1311,7 @@ WRITE8_MEMBER(leland_state::leland_sound_port_w) if ((m_sound_port_bank ^ data) & 0x24) logerror("%s:sound_port_bank = %02X\n", machine().describe_context(), data & 0x24); m_sound_port_bank = data & 0x24; - (*m_update_master_bank)(machine()); + (this->*m_update_master_bank)(); } @@ -1408,11 +1397,11 @@ READ8_MEMBER(leland_state::leland_raster_r) *************************************/ /* also called by Ataxx */ -void leland_rotate_memory(running_machine &machine, const char *cpuname) +void leland_state::leland_rotate_memory(const char *cpuname) { int startaddr = 0x10000; - int banks = (machine.root_device().memregion(cpuname)->bytes() - startaddr) / 0x8000; - UINT8 *ram = machine.root_device().memregion(cpuname)->base(); + int banks = (machine().root_device().memregion(cpuname)->bytes() - startaddr) / 0x8000; + UINT8 *ram = machine().root_device().memregion(cpuname)->base(); UINT8 temp[0x2000]; int i; diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c index 6e4cc427b30..1e48e1d3a18 100644 --- a/src/mame/video/labyrunr.c +++ b/src/mame/video/labyrunr.c @@ -41,18 +41,17 @@ void labyrunr_state::palette_init() } -static void set_pens( running_machine &machine ) +void labyrunr_state::set_pens( ) { - labyrunr_state *state = machine.driver_data<labyrunr_state>(); int i; for (i = 0x00; i < 0x100; i += 2) { - UINT16 data = state->m_paletteram[i | 1] | (state->m_paletteram[i] << 8); + UINT16 data = m_paletteram[i | 1] | (m_paletteram[i] << 8); rgb_t color = MAKE_RGB(pal5bit(data >> 0), pal5bit(data >> 5), pal5bit(data >> 10)); - colortable_palette_set_color(machine.colortable, i >> 1, color); + colortable_palette_set_color(machine().colortable, i >> 1, color); } } @@ -181,7 +180,7 @@ UINT32 labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind1 UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, space, 0); rectangle finalclip0, finalclip1; - set_pens(machine()); + set_pens(); machine().priority_bitmap.fill(0, cliprect); bitmap.fill(get_black_pen(machine()), cliprect); diff --git a/src/mame/video/ladybug.c b/src/mame/video/ladybug.c index fe026389ea2..fb6a947739e 100644 --- a/src/mame/video/ladybug.c +++ b/src/mame/video/ladybug.c @@ -224,13 +224,12 @@ VIDEO_START_MEMBER(ladybug_state,sraider) m_bg_tilemap->set_transparent_pen(0); } -static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void ladybug_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - ladybug_state *state = machine.driver_data<ladybug_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs; - for (offs = state->m_spriteram.bytes() - 2 * 0x40; offs >= 2 * 0x40; offs -= 0x40) + for (offs = m_spriteram.bytes() - 2 * 0x40; offs >= 2 * 0x40; offs -= 0x40) { int i = 0; @@ -257,14 +256,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const if (spriteram[offs + i] & 0x80) { if (spriteram[offs + i] & 0x40) /* 16x16 */ - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], (spriteram[offs + i + 1] >> 2) + 4 * (spriteram[offs + i + 2] & 0x10), spriteram[offs + i + 2] & 0x0f, spriteram[offs + i] & 0x20,spriteram[offs + i] & 0x10, spriteram[offs + i + 3], offs / 4 - 8 + (spriteram[offs + i] & 0x0f),0); else /* 8x8 */ - drawgfx_transpen(bitmap,cliprect,machine.gfx[2], + drawgfx_transpen(bitmap,cliprect,machine().gfx[2], spriteram[offs + i + 1] + 16 * (spriteram[offs + i + 2] & 0x10), spriteram[offs + i + 2] & 0x0f, spriteram[offs + i] & 0x20,spriteram[offs + i] & 0x10, @@ -294,7 +293,7 @@ UINT32 ladybug_state::screen_update_ladybug(screen_device &screen, bitmap_ind16 } m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_sprites(machine(), bitmap, cliprect); + draw_sprites(bitmap, cliprect); return 0; } @@ -357,7 +356,7 @@ UINT32 ladybug_state::screen_update_sraider(screen_device &screen, bitmap_ind16 m_bg_tilemap->draw(bitmap, cliprect, 0, flip_screen()); // now the sprites - draw_sprites(machine(), bitmap, cliprect); + draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/ladyfrog.c b/src/mame/video/ladyfrog.c index 964a69b034b..47b7ea5ffab 100644 --- a/src/mame/video/ladyfrog.c +++ b/src/mame/video/ladyfrog.c @@ -89,32 +89,31 @@ WRITE8_MEMBER(ladyfrog_state::ladyfrog_scrlram_w) m_bg_tilemap->set_scrolly(offset, data); } -static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void ladyfrog_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - ladyfrog_state *state = machine.driver_data<ladyfrog_state>(); int i; for (i = 0; i < 0x20; i++) { - int pr = state->m_spriteram[0x9f - i]; + int pr = m_spriteram[0x9f - i]; int offs = (pr & 0x1f) * 4; { int code, sx, sy, flipx, flipy, pal; - code = state->m_spriteram[offs + 2] + ((state->m_spriteram[offs + 1] & 0x10) << 4) + state->m_spritetilebase; - pal = state->m_spriteram[offs + 1] & 0x0f; - sx = state->m_spriteram[offs + 3]; - sy = 238 - state->m_spriteram[offs + 0]; - flipx = ((state->m_spriteram[offs + 1] & 0x40)>>6); - flipy = ((state->m_spriteram[offs + 1] & 0x80)>>7); - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + code = m_spriteram[offs + 2] + ((m_spriteram[offs + 1] & 0x10) << 4) + m_spritetilebase; + pal = m_spriteram[offs + 1] & 0x0f; + sx = m_spriteram[offs + 3]; + sy = 238 - m_spriteram[offs + 0]; + flipx = ((m_spriteram[offs + 1] & 0x40)>>6); + flipy = ((m_spriteram[offs + 1] & 0x80)>>7); + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, pal, flipx,flipy, sx,sy,15); - if (state->m_spriteram[offs + 3] > 240) + if (m_spriteram[offs + 3] > 240) { - sx = (state->m_spriteram[offs + 3] - 256); - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + sx = (m_spriteram[offs + 3] - 256); + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, pal, flipx,flipy, @@ -154,6 +153,6 @@ VIDEO_START_MEMBER(ladyfrog_state,toucheme) UINT32 ladyfrog_state::screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_sprites(machine(), bitmap, cliprect); + draw_sprites(bitmap, cliprect); return 0; } diff --git a/src/mame/video/lasso.c b/src/mame/video/lasso.c index 8a4462830b9..d23ac1865e3 100644 --- a/src/mame/video/lasso.c +++ b/src/mame/video/lasso.c @@ -38,7 +38,7 @@ ***************************************************************************/ -static rgb_t get_color( int data ) +rgb_t lasso_state::get_color( int data ) { int bit0, bit1, bit2; int r, g, b; @@ -104,14 +104,13 @@ PALETTE_INIT_MEMBER(lasso_state,wwjgtin) } -static void wwjgtin_set_last_four_colors( running_machine &machine, colortable_t *colortable ) +void lasso_state::wwjgtin_set_last_four_colors( colortable_t *colortable ) { - lasso_state *state = machine.driver_data<lasso_state>(); int i; /* the last palette entries can be changed */ for(i = 0; i < 3; i++) - colortable_palette_set_color(colortable, 0x3d + i, get_color(state->m_last_colors[i])); + colortable_palette_set_color(colortable, 0x3d + i, get_color(m_last_colors[i])); } @@ -260,22 +259,21 @@ WRITE8_MEMBER(lasso_state::pinbo_video_control_w) * *************************************/ -static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int reverse ) +void lasso_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int reverse ) { - lasso_state *state = machine.driver_data<lasso_state>(); const UINT8 *finish, *source; int inc; if (reverse) { - source = state->m_spriteram; - finish = state->m_spriteram + state->m_spriteram.bytes(); + source = m_spriteram; + finish = m_spriteram + m_spriteram.bytes(); inc = 4; } else { - source = state->m_spriteram + state->m_spriteram.bytes() - 4; - finish = state->m_spriteram - 4; + source = m_spriteram + m_spriteram.bytes() - 4; + finish = m_spriteram - 4; inc = -4; } @@ -289,13 +287,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const flipx = source[1] & 0x40; flipy = source[1] & 0x80; - if (state->flip_screen_x()) + if (flip_screen_x()) { sx = 240 - sx; flipx = !flipx; } - if (state->flip_screen_y()) + if (flip_screen_y()) flipy = !flipy; else sy = 240 - sy; @@ -303,8 +301,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const code = source[1] & 0x3f; color = source[2] & 0x0f; - drawgfx_transpen(bitmap, cliprect, machine.gfx[1], - code | ((UINT16)state->m_gfxbank << 6), + drawgfx_transpen(bitmap, cliprect, machine().gfx[1], + code | ((UINT16)m_gfxbank << 6), color, flipx, flipy, sx,sy,0); @@ -314,9 +312,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } -static void draw_lasso( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lasso_state::draw_lasso( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lasso_state *state = machine.driver_data<lasso_state>(); offs_t offs; pen_t pen = 0x3f; @@ -327,16 +324,16 @@ static void draw_lasso( running_machine &machine, bitmap_ind16 &bitmap, const re UINT8 x; UINT8 y = offs >> 5; - if (state->flip_screen_y()) + if (flip_screen_y()) y = ~y; if ((y < cliprect.min_y) || (y > cliprect.max_y)) continue; x = (offs & 0x1f) << 3; - data = state->m_bitmap_ram[offs]; + data = m_bitmap_ram[offs]; - if (state->flip_screen_x()) + if (flip_screen_x()) x = ~x; for (bit = 0; bit < 8; bit++) @@ -344,7 +341,7 @@ static void draw_lasso( running_machine &machine, bitmap_ind16 &bitmap, const re if ((data & 0x80) && (x >= cliprect.min_x) && (x <= cliprect.max_x)) bitmap.pix16(y, x) = pen; - if (state->flip_screen_x()) + if (flip_screen_x()) x = x - 1; else x = x + 1; @@ -361,8 +358,8 @@ UINT32 lasso_state::screen_update_lasso(screen_device &screen, bitmap_ind16 &bit bitmap.fill(0, cliprect); m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_lasso(machine(), bitmap, cliprect); - draw_sprites(machine(), bitmap, cliprect, 0); + draw_lasso(bitmap, cliprect); + draw_sprites(bitmap, cliprect, 0); return 0; } @@ -373,7 +370,7 @@ UINT32 lasso_state::screen_update_chameleo(screen_device &screen, bitmap_ind16 & bitmap.fill(0, cliprect); m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_sprites(machine(), bitmap, cliprect, 0); + draw_sprites(bitmap, cliprect, 0); return 0; } @@ -382,7 +379,7 @@ UINT32 lasso_state::screen_update_chameleo(screen_device &screen, bitmap_ind16 & UINT32 lasso_state::screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { colortable_palette_set_color(machine().colortable, 0, get_color(*m_back_color)); - wwjgtin_set_last_four_colors(machine(), machine().colortable); + wwjgtin_set_last_four_colors(machine().colortable); m_track_tilemap->set_scrollx(0, m_track_scroll[0] + m_track_scroll[1] * 256); m_track_tilemap->set_scrolly(0, m_track_scroll[2] + m_track_scroll[3] * 256); @@ -392,7 +389,7 @@ UINT32 lasso_state::screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &b else bitmap.fill(get_black_pen(machine()), cliprect); - draw_sprites(machine(), bitmap, cliprect, 1); // reverse order + draw_sprites(bitmap, cliprect, 1); // reverse order m_bg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; diff --git a/src/mame/video/lastduel.c b/src/mame/video/lastduel.c index dc40391217e..4ccde683063 100644 --- a/src/mame/video/lastduel.c +++ b/src/mame/video/lastduel.c @@ -197,14 +197,13 @@ WRITE16_MEMBER(lastduel_state::lastduel_palette_word_w) ***************************************************************************/ -static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) +void lastduel_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) { - lastduel_state *state = machine.driver_data<lastduel_state>(); - UINT16 *buffered_spriteram16 = state->m_spriteram->buffer(); + UINT16 *buffered_spriteram16 = m_spriteram->buffer(); int offs; - if (!state->m_sprite_pri_mask) + if (!m_sprite_pri_mask) if (pri == 1) return; /* only low priority sprites in lastduel */ @@ -213,11 +212,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const int attr, sy, sx, flipx, flipy, code, color; attr = buffered_spriteram16[offs + 1]; - if (state->m_sprite_pri_mask) /* only madgear seems to have this */ + if (m_sprite_pri_mask) /* only madgear seems to have this */ { - if (pri == 1 && (attr & state->m_sprite_pri_mask)) + if (pri == 1 && (attr & m_sprite_pri_mask)) continue; - if (pri == 0 && !(attr & state->m_sprite_pri_mask)) + if (pri == 0 && !(attr & m_sprite_pri_mask)) continue; } @@ -228,10 +227,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const sy -= 0x200; flipx = attr & 0x20; - flipy = attr & state->m_sprite_flipy_mask; /* 0x40 for lastduel, 0x80 for madgear */ + flipy = attr & m_sprite_flipy_mask; /* 0x40 for lastduel, 0x80 for madgear */ color = attr & 0x0f; - if (state->flip_screen()) + if (flip_screen()) { sx = 496 - sx; sy = 240 - sy; @@ -240,7 +239,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const } drawgfx_transpen(bitmap,cliprect, - machine.gfx[0], + machine().gfx[0], code, color, flipx,flipy, @@ -252,9 +251,9 @@ UINT32 lastduel_state::screen_update_lastduel(screen_device &screen, bitmap_ind1 { m_bg_tilemap->draw(bitmap, cliprect, 0, 0); m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - draw_sprites(machine(), bitmap, cliprect, 0); + draw_sprites(bitmap, cliprect, 0); m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - draw_sprites(machine(), bitmap, cliprect, 1); + draw_sprites(bitmap, cliprect, 1); m_tx_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -264,18 +263,18 @@ UINT32 lastduel_state::screen_update_madgear(screen_device &screen, bitmap_ind16 if (m_tilemap_priority) { m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0); - draw_sprites(machine(), bitmap, cliprect, 0); + draw_sprites(bitmap, cliprect, 0); m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); m_bg_tilemap->draw(bitmap, cliprect, 0, 0); - draw_sprites(machine(), bitmap, cliprect, 1); + draw_sprites(bitmap, cliprect, 1); } else { m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - draw_sprites(machine(), bitmap, cliprect, 0); + draw_sprites(bitmap, cliprect, 0); m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - draw_sprites(machine(), bitmap, cliprect, 1); + draw_sprites(bitmap, cliprect, 1); } m_tx_tilemap->draw(bitmap, cliprect, 0, 0); return 0; diff --git a/src/mame/video/lazercmd.c b/src/mame/video/lazercmd.c index 9b5d636b397..b7a10df56cd 100644 --- a/src/mame/video/lazercmd.c +++ b/src/mame/video/lazercmd.c @@ -16,7 +16,7 @@ /* 2 4 + 5 10 14 + 15 */ /* 3 6 + 7 11 16 + 17 */ /* 4 8 + 9 12 18 + 19 */ -static int vert_scale(int data) +int lazercmd_state::vert_scale(int data) { return ((data & 0x07) << 1) + ((data & 0xf8) >> 3) * VERT_CHR; } @@ -24,12 +24,12 @@ static int vert_scale(int data) /* plot a bitmap marker */ /* hardware has 2 marker sizes 2x2 and 4x2 selected by jumper */ /* meadows lanes normaly use 2x2 pixels and lazer command uses either */ -static void plot_pattern( running_machine &machine, bitmap_ind16 &bitmap, int x, int y ) +void lazercmd_state::plot_pattern( bitmap_ind16 &bitmap, int x, int y ) { int xbit, ybit, size; size = 2; - if (machine.root_device().ioport("DSW")->read() & 0x40) + if (machine().root_device().ioport("DSW")->read() & 0x40) { size = 4; } @@ -75,7 +75,7 @@ UINT32 lazercmd_state::screen_update_lazercmd(screen_device &screen, bitmap_ind1 x = m_marker_x - 1; /* normal video lags marker by 1 pixel */ y = vert_scale(m_marker_y) - VERT_CHR; /* first line used as scratch pad */ - plot_pattern(machine(), bitmap, x, y); + plot_pattern(bitmap, x, y); return 0; } diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c index 315e3f2c6da..1242d45e3ff 100644 --- a/src/mame/video/legionna.c +++ b/src/mame/video/legionna.c @@ -245,10 +245,9 @@ VIDEO_START_MEMBER(legionna_state,godzilla) *************************************************************************/ -static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const rectangle &cliprect) +void legionna_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) { - legionna_state *state = machine.driver_data<legionna_state>(); - UINT16 *spriteram16 = state->m_spriteram; + UINT16 *spriteram16 = m_spriteram; int offs,fx,fy,x,y,color,sprite,cur_pri; int dx,dy,ax,ay; int pri_mask; @@ -260,7 +259,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re pri_mask = 0; - if (state->m_has_extended_priority) + if (m_has_extended_priority) { cur_pri = (spriteram16[offs+1] & 0xc000) >> 14; @@ -310,7 +309,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re sprite &= 0x3fff; - if (state->m_has_extended_banking) + if (m_has_extended_banking) { if(data & 0x0040) { @@ -360,10 +359,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - pdrawgfx_transpen(bitmap,cliprect,machine.gfx[3], + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, - color,fx,fy,(x+ax*16)+state->m_sprite_xoffs,y+ay*16+state->m_sprite_yoffs, - machine.priority_bitmap,pri_mask, 15); + color,fx,fy,(x+ax*16)+m_sprite_xoffs,y+ay*16+m_sprite_yoffs, + machine().priority_bitmap,pri_mask, 15); } } else @@ -371,10 +370,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - pdrawgfx_transpen(bitmap,cliprect,machine.gfx[3], + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, - color,fx,fy,(x+ax*16)+state->m_sprite_xoffs,y+(dy-ay-1)*16+state->m_sprite_yoffs, - machine.priority_bitmap,pri_mask,15); + color,fx,fy,(x+ax*16)+m_sprite_xoffs,y+(dy-ay-1)*16+m_sprite_yoffs, + machine().priority_bitmap,pri_mask,15); } } } @@ -385,10 +384,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - pdrawgfx_transpen(bitmap,cliprect,machine.gfx[3], + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, - color,fx,fy,(x+(dx-ax-1)*16)+state->m_sprite_xoffs,y+ay*16+state->m_sprite_yoffs, - machine.priority_bitmap,pri_mask,15); + color,fx,fy,(x+(dx-ax-1)*16)+m_sprite_xoffs,y+ay*16+m_sprite_yoffs, + machine().priority_bitmap,pri_mask,15); } } else @@ -396,10 +395,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re for (ax=0; ax<dx; ax++) for (ay=0; ay<dy; ay++) { - pdrawgfx_transpen(bitmap,cliprect,machine.gfx[3], + pdrawgfx_transpen(bitmap,cliprect,machine().gfx[3], sprite++, - color,fx,fy,(x+(dx-ax-1)*16)+state->m_sprite_xoffs,y+(dy-ay-1)*16+state->m_sprite_yoffs, - machine.priority_bitmap,pri_mask, 15); + color,fx,fy,(x+(dx-ax-1)*16)+m_sprite_xoffs,y+(dy-ay-1)*16+m_sprite_yoffs, + machine().priority_bitmap,pri_mask, 15); } } } @@ -430,7 +429,7 @@ UINT32 legionna_state::screen_update_legionna(screen_device &screen, bitmap_ind1 if (!(m_layer_disable&0x0002)) m_background_layer->draw(bitmap, cliprect, 0, 1); if (!(m_layer_disable&0x0001)) m_text_layer->draw(bitmap, cliprect, 0, 2); - draw_sprites(machine(),bitmap,cliprect); + draw_sprites(bitmap,cliprect); return 0; @@ -460,7 +459,7 @@ UINT32 legionna_state::screen_update_godzilla(screen_device &screen, bitmap_ind1 if (!(m_layer_disable&0x0004)) m_foreground_layer->draw(bitmap, cliprect, 0,1); if (!(m_layer_disable&0x0008)) m_text_layer->draw(bitmap, cliprect, 0,2); - draw_sprites(machine(),bitmap,cliprect); + draw_sprites(bitmap,cliprect); return 0; } @@ -492,7 +491,7 @@ UINT32 legionna_state::screen_update_grainbow(screen_device &screen, bitmap_ind1 if(!(m_layer_disable & 8)) m_text_layer->draw(bitmap, cliprect, 0,8); - draw_sprites(machine(),bitmap,cliprect); + draw_sprites(bitmap,cliprect); return 0; } diff --git a/src/mame/video/leland.c b/src/mame/video/leland.c index e296ee05c66..06375f64a8a 100644 --- a/src/mame/video/leland.c +++ b/src/mame/video/leland.c @@ -129,10 +129,9 @@ WRITE8_MEMBER(leland_state::leland_gfx_port_w) * *************************************/ -static void leland_video_addr_w(address_space &space, int offset, int data, int num) +void leland_state::leland_video_addr_w(address_space &space, int offset, int data, int num) { - leland_state *drvstate = space.machine().driver_data<leland_state>(); - struct vram_state_data *state = drvstate->m_vram_state + num; + struct vram_state_data *state = m_vram_state + num; if (!offset) state->m_addr = (state->m_addr & 0xfe00) | ((data << 1) & 0x01fe); @@ -148,10 +147,9 @@ static void leland_video_addr_w(address_space &space, int offset, int data, int * *************************************/ -static int leland_vram_port_r(address_space &space, int offset, int num) +int leland_state::leland_vram_port_r(address_space &space, int offset, int num) { - leland_state *drvstate = space.machine().driver_data<leland_state>(); - struct vram_state_data *state = drvstate->m_vram_state + num; + struct vram_state_data *state = m_vram_state + num; int addr = state->m_addr; int inc = (offset >> 2) & 2; int ret; @@ -159,18 +157,18 @@ static int leland_vram_port_r(address_space &space, int offset, int num) switch (offset & 7) { case 3: /* read hi/lo (alternating) */ - ret = drvstate->m_video_ram[addr]; + ret = m_video_ram[addr]; addr += inc & (addr << 1); addr ^= 1; break; case 5: /* read hi */ - ret = drvstate->m_video_ram[addr | 1]; + ret = m_video_ram[addr | 1]; addr += inc; break; case 6: /* read lo */ - ret = drvstate->m_video_ram[addr & ~1]; + ret = m_video_ram[addr & ~1]; addr += inc; break; @@ -196,11 +194,10 @@ static int leland_vram_port_r(address_space &space, int offset, int num) * *************************************/ -static void leland_vram_port_w(address_space &space, int offset, int data, int num) +void leland_state::leland_vram_port_w(address_space &space, int offset, int data, int num) { - leland_state *drvstate = space.machine().driver_data<leland_state>(); - UINT8 *video_ram = drvstate->m_video_ram; - struct vram_state_data *state = drvstate->m_vram_state + num; + UINT8 *video_ram = m_video_ram; + struct vram_state_data *state = m_vram_state + num; int addr = state->m_addr; int inc = (offset >> 2) & 2; int trans = (offset >> 4) & num; diff --git a/src/mame/video/lemmings.c b/src/mame/video/lemmings.c index 00a35764f4f..128ca2e77e5 100644 --- a/src/mame/video/lemmings.c +++ b/src/mame/video/lemmings.c @@ -107,10 +107,10 @@ WRITE16_MEMBER(lemmings_state::lemmings_vram_w) } -void lemmings_copy_bitmap(running_machine &machine, bitmap_rgb32& bitmap, bitmap_ind16& srcbitmap, int* xscroll, int* yscroll, const rectangle& cliprect) +void lemmings_state::lemmings_copy_bitmap(bitmap_rgb32& bitmap, bitmap_ind16& srcbitmap, int* xscroll, int* yscroll, const rectangle& cliprect) { int y,x; - const pen_t *paldata = machine.pens; + const pen_t *paldata = machine().pens; for (y=cliprect.min_y; y<cliprect.max_y;y++) { @@ -144,17 +144,17 @@ UINT32 lemmings_state::screen_update_lemmings(screen_device &screen, bitmap_rgb3 /* Pixel layer can be windowed in hardware (two player mode) */ if ((m_control_data[6] & 2) == 0) { - lemmings_copy_bitmap(machine(), bitmap, m_bitmap0, &x1, &y, cliprect); + lemmings_copy_bitmap(bitmap, m_bitmap0, &x1, &y, cliprect); } else { rect.max_x = 159; rect.min_x = 0; - lemmings_copy_bitmap(machine(), bitmap, m_bitmap0, &x0, &y, rect); + lemmings_copy_bitmap(bitmap, m_bitmap0, &x0, &y, rect); rect.max_x = 319; rect.min_x = 160; - lemmings_copy_bitmap(machine(), bitmap, m_bitmap0, &x1, &y, rect); + lemmings_copy_bitmap(bitmap, m_bitmap0, &x1, &y, rect); } m_sprgen2->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0xff); diff --git a/src/mame/video/lethalj.c b/src/mame/video/lethalj.c index 850a560e9ec..36185f0df49 100644 --- a/src/mame/video/lethalj.c +++ b/src/mame/video/lethalj.c @@ -20,15 +20,15 @@ * *************************************/ -INLINE void get_crosshair_xy(running_machine &machine, int player, int *x, int *y) +inline void lethalj_state::get_crosshair_xy(int player, int *x, int *y) { static const char *const gunnames[] = { "LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIGHT1_Y" }; - const rectangle &visarea = machine.primary_screen->visible_area(); + const rectangle &visarea = machine().primary_screen->visible_area(); int width = visarea.width(); int height = visarea.height(); - *x = ((machine.root_device().ioport(gunnames[player * 2])->read_safe(0x00) & 0xff) * width) / 255; - *y = ((machine.root_device().ioport(gunnames[1 + player * 2])->read_safe(0x00) & 0xff) * height) / 255; + *x = ((machine().root_device().ioport(gunnames[player * 2])->read_safe(0x00) & 0xff) * width) / 255; + *y = ((machine().root_device().ioport(gunnames[1 + player * 2])->read_safe(0x00) & 0xff) * height) / 255; } @@ -49,7 +49,7 @@ READ16_MEMBER(lethalj_state::lethalj_gun_r) case 4: case 5: /* latch the crosshair position */ - get_crosshair_xy(machine(), offset - 4, &beamx, &beamy); + get_crosshair_xy(offset - 4, &beamx, &beamy); m_gunx = beamx; m_guny = beamy; m_blank_palette = 1; diff --git a/src/mame/video/liberate.c b/src/mame/video/liberate.c index c5e8613cb39..afaf02c140d 100644 --- a/src/mame/video/liberate.c +++ b/src/mame/video/liberate.c @@ -15,7 +15,7 @@ #include "includes/liberate.h" #if 0 -void debug_print(bitmap_ind16 &bitmap) +void liberate_state::debug_print(bitmap_ind16 &bitmap) { int i, j; char buf[20 * 16]; @@ -278,10 +278,9 @@ PALETTE_INIT_MEMBER(liberate_state,liberate) /***************************************************************************/ -static void liberate_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void liberate_state::liberate_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - liberate_state *state = machine.driver_data<liberate_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs; /* Sprites */ @@ -314,7 +313,7 @@ static void liberate_draw_sprites( running_machine &machine, bitmap_ind16 &bitma if (multi && fy == 0) sy -= 16; - if (state->flip_screen()) + if (flip_screen()) { sy = 240 - sy; sx = 240 - sx; @@ -333,13 +332,13 @@ static void liberate_draw_sprites( running_machine &machine, bitmap_ind16 &bitma sy2 = sy + 16; } - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, color, fx,fy, sx,sy,0); if (multi) - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code+1, color, fx,fy, @@ -347,11 +346,10 @@ static void liberate_draw_sprites( running_machine &machine, bitmap_ind16 &bitma } } -static void prosport_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void liberate_state::prosport_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - liberate_state *state = machine.driver_data<liberate_state>(); int offs, multi, fx, fy, sx, sy, sy2, code, code2, color, gfx_region; - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; for (offs = 0x000; offs < 0x800; offs += 4) { @@ -361,10 +359,10 @@ static void prosport_draw_sprites( running_machine &machine, bitmap_ind16 &bitma code = spriteram[offs + 1] + ((spriteram[offs + 0] & 0x3) << 8); code2 = code + 1; - if(state->m_io_ram[0] & 0x40) //dynamic ram-based gfxs for Pro Golf + if(m_io_ram[0] & 0x40) //dynamic ram-based gfxs for Pro Golf gfx_region = 3 + 4; else - gfx_region = ((state->m_io_ram[0] & 0x30) >> 4) + 4; + gfx_region = ((m_io_ram[0] & 0x30) >> 4) + 4; multi = spriteram[offs + 0] & 0x10; @@ -376,7 +374,7 @@ static void prosport_draw_sprites( running_machine &machine, bitmap_ind16 &bitma // sy = (240 - spriteram[offs + 2]);//-16; sy = 240 - sy; - color = 1;//(state->m_io_ram[4] & 2) + 1;//(spriteram[offs + 0] & 0x4) >> 2; + color = 1;//(m_io_ram[4] & 2) + 1;//(spriteram[offs + 0] & 0x4) >> 2; fy = spriteram[offs + 0] & 0x02; fx = spriteram[offs + 0] & 0x04; @@ -385,7 +383,7 @@ static void prosport_draw_sprites( running_machine &machine, bitmap_ind16 &bitma // if (multi) sy -= 16; if ((fy && multi) || (fx && multi)) { code2 = code; code++; } - if (state->flip_screen()) + if (flip_screen()) { sy = 240 - sy; sx = 240 - sx; @@ -398,13 +396,13 @@ static void prosport_draw_sprites( running_machine &machine, bitmap_ind16 &bitma sy2 = sy + 16; } - drawgfx_transpen(bitmap,cliprect,machine.gfx[gfx_region], + drawgfx_transpen(bitmap,cliprect,machine().gfx[gfx_region], code, color, fx,fy, sx,sy,0); if (multi) - drawgfx_transpen(bitmap,cliprect,machine.gfx[gfx_region], + drawgfx_transpen(bitmap,cliprect,machine().gfx[gfx_region], code2, color, fx,fy, @@ -412,10 +410,9 @@ static void prosport_draw_sprites( running_machine &machine, bitmap_ind16 &bitma } } -static void boomrang_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) +void liberate_state::boomrang_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) { - liberate_state *state = machine.driver_data<liberate_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs, multi, fx, fy, sx, sy, sy2, code, code2, color; for (offs = 0x000; offs < 0x800; offs += 4) @@ -446,7 +443,7 @@ static void boomrang_draw_sprites( running_machine &machine, bitmap_ind16 &bitma // if (multi) sy -= 16; if (fy && multi) { code2 = code; code++; } - if (state->flip_screen()) + if (flip_screen()) { sy = 240 - sy; sx = 240 - sx; @@ -459,13 +456,13 @@ static void boomrang_draw_sprites( running_machine &machine, bitmap_ind16 &bitma sy2 = sy + 16; } - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, color, fx,fy, sx,sy,0); if (multi) - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code2, color, fx,fy, @@ -473,10 +470,9 @@ static void boomrang_draw_sprites( running_machine &machine, bitmap_ind16 &bitma } } -static void prosoccr_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void liberate_state::prosoccr_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - liberate_state *state = machine.driver_data<liberate_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs, code, fx, fy, sx, sy; for (offs = 0x000; offs < 0x400; offs += 4) @@ -490,7 +486,7 @@ static void prosoccr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma fx = spriteram[offs + 0] & 4; fy = spriteram[offs + 0] & 2; - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, 0, fx,fy, @@ -511,7 +507,7 @@ UINT32 liberate_state::screen_update_prosoccr(screen_device &screen, bitmap_ind1 m_back_tilemap->draw(bitmap, cliprect, 0, 0); m_fix_tilemap->draw(bitmap, cliprect, 0, 0); - prosoccr_draw_sprites(machine(), bitmap, cliprect); + prosoccr_draw_sprites(bitmap, cliprect); return 0; } @@ -554,7 +550,7 @@ UINT32 liberate_state::screen_update_prosport(screen_device &screen, bitmap_ind1 tile, 1, 0, 0, 248 - 8 * mx, 8 * my, 0); } - prosport_draw_sprites(machine(), bitmap, cliprect); + prosport_draw_sprites(bitmap, cliprect); return 0; } @@ -569,11 +565,11 @@ UINT32 liberate_state::screen_update_boomrang(screen_device &screen, bitmap_ind1 else m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - boomrang_draw_sprites(machine(),bitmap,cliprect,8); + boomrang_draw_sprites(bitmap,cliprect,8); if (!m_background_disable) m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); - boomrang_draw_sprites(machine(), bitmap, cliprect, 0); + boomrang_draw_sprites(bitmap, cliprect, 0); m_fix_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -588,7 +584,7 @@ UINT32 liberate_state::screen_update_liberate(screen_device &screen, bitmap_ind1 else m_back_tilemap->draw(bitmap, cliprect, 0, 0); - liberate_draw_sprites(machine(), bitmap, cliprect); + liberate_draw_sprites(bitmap, cliprect); m_fix_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } diff --git a/src/mame/video/lkage.c b/src/mame/video/lkage.c index 83865384a83..40c848681a1 100644 --- a/src/mame/video/lkage.c +++ b/src/mame/video/lkage.c @@ -97,10 +97,9 @@ void lkage_state::video_start() } -static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lkage_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lkage_state *state = machine.driver_data<lkage_state>(); - const UINT8 *source = state->m_spriteram; + const UINT8 *source = m_spriteram; const UINT8 *finish = source + 0x60; while (source < finish) @@ -118,7 +117,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const int flipx = attributes & 0x01; int flipy = attributes & 0x02; int height = (attributes & 0x08) ? 2 : 1; - int sx = source[0] - 15 + state->m_sprite_dx; + int sx = source[0] - 15 + m_sprite_dx; int sy = 256 - 16 * height - source[1]; int sprite_number = source[3] + ((attributes & 0x04) << 6); int y; @@ -132,12 +131,12 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const priority_mask = 0xf0; } - if (state->flip_screen_x()) + if (flip_screen_x()) { sx = 239 - sx - 24; flipx = !flipx; } - if (state->flip_screen_y()) + if (flip_screen_y()) { sy = 254 - 16 * height - sy; flipy = !flipy; @@ -152,13 +151,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const pdrawgfx_transpen( bitmap, cliprect, - machine.gfx[1], + machine().gfx[1], sprite_number ^ y, color, flipx,flipy, sx&0xff, sy + 16*y, - machine.priority_bitmap, + machine().priority_bitmap, priority_mask,0 ); } source += 4; @@ -213,7 +212,7 @@ UINT32 lkage_state::screen_update_lkage(screen_device &screen, bitmap_ind16 &bit m_bg_tilemap->draw(bitmap, cliprect, 0, 1); m_fg_tilemap->draw(bitmap, cliprect, 0, (m_vreg[1] & 2) ? 2 : 4); m_tx_tilemap->draw(bitmap, cliprect, 0, 4); - draw_sprites(machine(), bitmap, cliprect); + draw_sprites(bitmap, cliprect); } else { diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index f803dc9a238..4a9613c8a12 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -163,13 +163,12 @@ WRITE16_MEMBER(lockon_state::lockon_scene_v_scr_w) m_scroll_v = data & 0x81ff; } -static void scene_draw( running_machine &machine ) +void lockon_state::scene_draw( ) { - lockon_state *state = machine.driver_data<lockon_state>(); UINT32 y; /* 3bpp characters */ - const UINT8 *const gfx1 = state->memregion("gfx2")->base(); + const UINT8 *const gfx1 = memregion("gfx2")->base(); const UINT8 *const gfx2 = gfx1 + 0x10000; const UINT8 *const gfx3 = gfx1 + 0x20000; const UINT8 *const clut = gfx1 + 0x30000; @@ -185,20 +184,20 @@ static void scene_draw( running_machine &machine ) UINT16 *bmpaddr; UINT32 ram_mask = 0x7ff; - y_offs = (y + state->m_scroll_v) & 0x1ff; + y_offs = (y + m_scroll_v) & 0x1ff; /* Clamp - stops tilemap wrapping when screen is rotated */ - if (BIT(state->m_scroll_v, 15) && y_offs & 0x100) + if (BIT(m_scroll_v, 15) && y_offs & 0x100) ram_mask = 0x7; - x_offs = (state->m_scroll_h - 8) & 0x1ff; + x_offs = (m_scroll_h - 8) & 0x1ff; y_gran = y_offs & 7; if (x_offs & 7) { UINT32 tileidx; UINT16 addr = ((y_offs & ~7) << 3) + ((x_offs >> 3) & 0x3f); - UINT16 ram_val = state->m_scene_ram[addr & ram_mask]; + UINT16 ram_val = m_scene_ram[addr & ram_mask]; colour = (clut[ram_val & 0x7fff] & 0x3f) << 3; tileidx = ((ram_val & 0x0fff) << 3) + y_gran; @@ -208,7 +207,7 @@ static void scene_draw( running_machine &machine ) d2 = *(gfx3 + tileidx); } - bmpaddr = &state->m_back_buffer->pix16(y); + bmpaddr = &m_back_buffer->pix16(y); for (x = 0; x < FRAMEBUFFER_MAX_X; ++x) { @@ -219,7 +218,7 @@ static void scene_draw( running_machine &machine ) { UINT32 tileidx; UINT16 addr = ((y_offs & ~7) << 3) + ((x_offs >> 3) & 0x3f); - UINT16 ram_val = state->m_scene_ram[addr & ram_mask]; + UINT16 ram_val = m_scene_ram[addr & ram_mask]; colour = (clut[ram_val & 0x7fff] & 0x3f) << 3; tileidx = ((ram_val & 0x0fff) << 3) + y_gran; @@ -299,25 +298,24 @@ TIMER_CALLBACK_MEMBER(lockon_state::bufend_callback) rom_data3 = gfx_rom[gfx_addr + 0x20000]; \ } -static void ground_draw( running_machine &machine ) +void lockon_state::ground_draw( ) { - lockon_state *state = machine.driver_data<lockon_state>(); /* ROM pointers */ - const UINT8 *const gfx_rom = state->memregion("gfx4")->base(); - const UINT8 *const lut_rom = gfx_rom + 0x30000 + ((state->m_ground_ctrl >> 2) & 0x3 ? 0x10000 : 0); + const UINT8 *const gfx_rom = memregion("gfx4")->base(); + const UINT8 *const lut_rom = gfx_rom + 0x30000 + ((m_ground_ctrl >> 2) & 0x3 ? 0x10000 : 0); const UINT8 *const clut_rom = gfx_rom + 0x50000; - UINT32 lut_a15_14 = (state->m_ground_ctrl & 0x3) << 14; - UINT32 clut_a14_12 = (state->m_ground_ctrl & 0x70) << 8; - UINT32 gfx_a15 = (state->m_ground_ctrl & 0x40) << 9; + UINT32 lut_a15_14 = (m_ground_ctrl & 0x3) << 14; + UINT32 clut_a14_12 = (m_ground_ctrl & 0x70) << 8; + UINT32 gfx_a15 = (m_ground_ctrl & 0x40) << 9; UINT32 offs = 3; UINT32 y; /* TODO: Clean up and emulate CS of GFX ROMs? */ for (y = 0; y < FRAMEBUFFER_MAX_Y; ++y) { - UINT16 *bmpaddr = &state->m_back_buffer->pix16(y); + UINT16 *bmpaddr = &m_back_buffer->pix16(y); UINT8 ls163; UINT32 clut_addr; UINT32 gfx_addr; @@ -328,20 +326,20 @@ static void ground_draw( running_machine &machine ) UINT32 x; /* Draw this line? */ - if (!(state->m_ground_ram[offs] & 0x8000)) + if (!(m_ground_ram[offs] & 0x8000)) { - UINT32 gfx_a2_0 = state->m_ground_ram[offs] & 0x0007; - UINT32 gfx_a6_5 = (state->m_ground_ram[offs] & 0x0018) << 2; - UINT32 clut_a4_3 = (state->m_ground_ram[offs] & 0x0018) >> 1; - UINT8 tz2213_x = state->m_ground_ram[offs + 1] & 0xff; - UINT8 tz2213_dx = state->m_ground_ram[offs + 2] & 0xff; - - UINT32 lut_address = lut_a15_14 + ((state->m_ground_ram[offs] & 0x7fe0) >> 1); - UINT32 cy = state->m_ground_ram[offs + 2] & 0x0100; + UINT32 gfx_a2_0 = m_ground_ram[offs] & 0x0007; + UINT32 gfx_a6_5 = (m_ground_ram[offs] & 0x0018) << 2; + UINT32 clut_a4_3 = (m_ground_ram[offs] & 0x0018) >> 1; + UINT8 tz2213_x = m_ground_ram[offs + 1] & 0xff; + UINT8 tz2213_dx = m_ground_ram[offs + 2] & 0xff; + + UINT32 lut_address = lut_a15_14 + ((m_ground_ram[offs] & 0x7fe0) >> 1); + UINT32 cy = m_ground_ram[offs + 2] & 0x0100; UINT32 color; UINT32 gpbal2_0_prev; - ls163 = state->m_ground_ram[offs + 1] >> 8; + ls163 = m_ground_ram[offs + 1] >> 8; gpbal2_0_prev = ((ls163 & 3) << 1) | BIT(tz2213_x, 7); @@ -379,9 +377,9 @@ static void ground_draw( running_machine &machine ) offs += 3; /* End of list marker */ - if (state->m_ground_ram[offs + 2] & 0x8000) + if (m_ground_ram[offs + 2] & 0x8000) { - state->m_bufend_timer->adjust(attotime::from_hz(FRAMEBUFFER_CLOCK) * (FRAMEBUFFER_MAX_X * y)); + m_bufend_timer->adjust(attotime::from_hz(FRAMEBUFFER_CLOCK) * (FRAMEBUFFER_MAX_X * y)); } } } @@ -418,7 +416,7 @@ do { \ if (px < FRAMEBUFFER_MAX_X) \ if (COLOR != 0xf) \ { \ - UINT8 clr = state->m_obj_pal_ram[(pal << 4) + COLOR]; \ + UINT8 clr = m_obj_pal_ram[(pal << 4) + COLOR]; \ UINT16 *pix = (line + px); \ if (!(clr == 0xff && ((*pix & 0xe00) == 0xa00))) \ *pix = 0x400 + clr; \ @@ -426,17 +424,16 @@ do { \ px = (px + 1) & 0x7ff; \ } while(0) -static void objects_draw( running_machine &machine ) +void lockon_state::objects_draw( ) { UINT32 offs; - lockon_state *state = machine.driver_data<lockon_state>(); - const UINT8 *const romlut = state->memregion("user1")->base(); - const UINT16 *const chklut = (UINT16*)state->memregion("user2")->base(); - const UINT8 *const gfxrom = state->memregion("gfx5")->base(); - const UINT8 *const sproms = state->memregion("proms")->base() + 0x800; + const UINT8 *const romlut = memregion("user1")->base(); + const UINT16 *const chklut = (UINT16*)memregion("user2")->base(); + const UINT8 *const gfxrom = memregion("gfx5")->base(); + const UINT8 *const sproms = memregion("proms")->base() + 0x800; - for (offs = 0; offs < state->m_object_ram.bytes(); offs += 4) + for (offs = 0; offs < m_object_ram.bytes(); offs += 4) { UINT32 y; UINT32 xpos; @@ -452,19 +449,19 @@ static void objects_draw( running_machine &machine ) UINT32 opsta15_8; /* Retrieve the object attributes */ - ypos = state->m_object_ram[offs] & 0x03ff; - xpos = state->m_object_ram[offs + 3] & 0x07ff; - ysize = (state->m_object_ram[offs] >> 10) & 0x3; - xsize = (state->m_object_ram[offs] >> 12) & 0x3; - yflip = BIT(state->m_object_ram[offs], 14); - xflip = BIT(state->m_object_ram[offs], 15); - scale = state->m_object_ram[offs + 1] & 0xff; - pal = (state->m_object_ram[offs + 1] >> 8) & 0x7f; - opsta = state->m_object_ram[offs + 2]; - - if (state->m_iden) + ypos = m_object_ram[offs] & 0x03ff; + xpos = m_object_ram[offs + 3] & 0x07ff; + ysize = (m_object_ram[offs] >> 10) & 0x3; + xsize = (m_object_ram[offs] >> 12) & 0x3; + yflip = BIT(m_object_ram[offs], 14); + xflip = BIT(m_object_ram[offs], 15); + scale = m_object_ram[offs + 1] & 0xff; + pal = (m_object_ram[offs + 1] >> 8) & 0x7f; + opsta = m_object_ram[offs + 2]; + + if (m_iden) { - state->m_obj_pal_ram[(pal << 4) + state->m_obj_pal_addr] = state->m_obj_pal_latch; + m_obj_pal_ram[(pal << 4) + m_obj_pal_addr] = m_obj_pal_latch; break; } @@ -484,7 +481,7 @@ static void objects_draw( running_machine &machine ) UINT32 tile; UINT8 cnt; UINT32 yidx; - UINT16 *line = &state->m_back_buffer->pix16(y); + UINT16 *line = &m_back_buffer->pix16(y); UINT32 px = xpos; /* Outside the limits? */ @@ -595,7 +592,7 @@ static void objects_draw( running_machine &machine ) } /* Check for the end of list marker */ - if (state->m_object_ram[offs + 1] & 0x8000) + if (m_object_ram[offs + 1] & 0x8000) return; } } @@ -607,7 +604,7 @@ WRITE16_MEMBER(lockon_state::lockon_tza112_w) { m_obj_pal_latch = data & 0xff; m_obj_pal_addr = offset & 0xf; - objects_draw(machine()); + objects_draw(); } } @@ -684,29 +681,28 @@ do { \ if (carry) --CNT; \ } while(0) -static void rotate_draw( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lockon_state::rotate_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lockon_state *state = machine.driver_data<lockon_state>(); UINT32 y; /* Counters */ - UINT32 cxy = state->m_xsal & 0xff; - UINT32 cyy = state->m_ysal & 0x1ff; + UINT32 cxy = m_xsal & 0xff; + UINT32 cyy = m_ysal & 0x1ff; /* Accumulator values and deltas */ - UINT8 axy = state->m_x0ll & 0xff; - UINT8 daxy = state->m_dx0ll & 0xff; - UINT8 ayy = state->m_y0ll & 0xff; - UINT8 dayy = state->m_dy0ll & 0xff; - UINT8 dayx = state->m_dyll & 0xff; - UINT8 daxx = state->m_dxll & 0xff; - - UINT32 xy_up = BIT(state->m_xsal, 8); - UINT32 yx_up = BIT(state->m_dyll, 9); - UINT32 axx_en = !BIT(state->m_dxll, 8); - UINT32 ayx_en = !BIT(state->m_dyll, 8); - UINT32 axy_en = !BIT(state->m_dx0ll, 8); - UINT32 ayy_en = !BIT(state->m_dy0ll, 8); + UINT8 axy = m_x0ll & 0xff; + UINT8 daxy = m_dx0ll & 0xff; + UINT8 ayy = m_y0ll & 0xff; + UINT8 dayy = m_dy0ll & 0xff; + UINT8 dayx = m_dyll & 0xff; + UINT8 daxx = m_dxll & 0xff; + + UINT32 xy_up = BIT(m_xsal, 8); + UINT32 yx_up = BIT(m_dyll, 9); + UINT32 axx_en = !BIT(m_dxll, 8); + UINT32 ayx_en = !BIT(m_dyll, 8); + UINT32 axy_en = !BIT(m_dx0ll, 8); + UINT32 ayy_en = !BIT(m_dy0ll, 8); for (y = 0; y <= cliprect.max_y; ++y) { @@ -725,7 +721,7 @@ static void rotate_draw( running_machine &machine, bitmap_ind16 &bitmap, const r cx &= 0x1ff; cy &= 0x1ff; - *dst++ = state->m_front_buffer->pix16(cy, cx); + *dst++ = m_front_buffer->pix16(cy, cx); if (axx_en) INCREMENT(axx, cx); @@ -789,13 +785,12 @@ static void rotate_draw( running_machine &machine, bitmap_ind16 &bitmap, const r *******************************************************************************************/ -static void hud_draw( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lockon_state::hud_draw( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lockon_state *state = machine.driver_data<lockon_state>(); - UINT8 *tile_rom = state->memregion("gfx3")->base(); + UINT8 *tile_rom = memregion("gfx3")->base(); UINT32 offs; - for (offs = 0x0; offs <= state->m_hud_ram.bytes(); offs += 2) + for (offs = 0x0; offs <= m_hud_ram.bytes(); offs += 2) { UINT32 y; UINT32 y_pos; @@ -808,14 +803,14 @@ static void hud_draw( running_machine &machine, bitmap_ind16 &bitmap, const rect UINT32 rom_a12_7; /* End of sprite list marker */ - if (state->m_hud_ram[offs + 1] & 0x8000) + if (m_hud_ram[offs + 1] & 0x8000) break; - y_pos = state->m_hud_ram[offs] & 0x1ff; - x_pos = state->m_hud_ram[offs + 1] & 0x1ff; - x_size = (state->m_hud_ram[offs + 1] >> 12) & 7; - code = (state->m_hud_ram[offs] >> 9) & 0x7f; - colour = 0x200 + ((state->m_hud_ram[offs + 1] >> 9) & 7); + y_pos = m_hud_ram[offs] & 0x1ff; + x_pos = m_hud_ram[offs + 1] & 0x1ff; + x_size = (m_hud_ram[offs + 1] >> 12) & 7; + code = (m_hud_ram[offs] >> 9) & 0x7f; + colour = 0x200 + ((m_hud_ram[offs + 1] >> 9) & 7); layout = (code >> 5) & 3; rom_a12_7 = (code & 0xfe) << 6; @@ -923,13 +918,13 @@ UINT32 lockon_state::screen_update_lockon(screen_device &screen, bitmap_ind16 &b } /* Scan out the frame buffer in rotated order */ - rotate_draw(machine(), bitmap, cliprect); + rotate_draw(bitmap, cliprect); /* Draw the character tilemap */ m_tilemap->draw(bitmap, cliprect, 0, 0); /* Draw the HUD */ - hud_draw(machine(), bitmap, cliprect); + hud_draw(bitmap, cliprect); return 0; } @@ -945,8 +940,8 @@ void lockon_state::screen_eof_lockon(screen_device &screen, bool state) m_back_buffer = tmp; /* Draw the frame buffer layers */ - scene_draw(machine()); - ground_draw(machine()); - objects_draw(machine()); + scene_draw(); + ground_draw(); + objects_draw(); } } diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c index 1a1d3be90fa..b0168f4404b 100644 --- a/src/mame/video/lordgun.c +++ b/src/mame/video/lordgun.c @@ -61,31 +61,29 @@ WRITE16_MEMBER(lordgun_state::lordgun_paletteram_w) ***************************************************************************/ -INLINE void get_tile_info(running_machine &machine, tile_data &tileinfo, tilemap_memory_index tile_index, int _N_) +inline void lordgun_state::get_tile_info(tile_data &tileinfo, tilemap_memory_index tile_index, int _N_) { - lordgun_state *state = machine.driver_data<lordgun_state>(); - UINT16 attr = state->m_vram[_N_][tile_index * 2 + 0 ]; - UINT16 code = state->m_vram[_N_][ tile_index * 2 + 1 ]; + UINT16 attr = m_vram[_N_][tile_index * 2 + 0 ]; + UINT16 code = m_vram[_N_][ tile_index * 2 + 1 ]; UINT16 pri = (attr & 0x0e00) >> 9; - SET_TILE_INFO( _N_, code, ((attr & 0x0030) >> 4) + 0x10 + 0x4 * ((_N_ + 1) & 3) + pri*0x800/0x40, TILE_FLIPXY(attr >> 14)); + SET_TILE_INFO_MEMBER( _N_, code, ((attr & 0x0030) >> 4) + 0x10 + 0x4 * ((_N_ + 1) & 3) + pri*0x800/0x40, TILE_FLIPXY(attr >> 14)); } -TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } -TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } -TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } -TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_0){ get_tile_info(tileinfo, tile_index, 0); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_1){ get_tile_info(tileinfo, tile_index, 1); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_2){ get_tile_info(tileinfo, tile_index, 2); } +TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_3){ get_tile_info(tileinfo, tile_index, 3); } -INLINE void lordgun_vram_w(address_space &space, offs_t offset, UINT16 data, UINT16 mem_mask, int _N_) +inline void lordgun_state::lordgun_vram_w(offs_t offset, UINT16 data, UINT16 mem_mask, int _N_) { - lordgun_state *state = space.machine().driver_data<lordgun_state>(); - COMBINE_DATA(&state->m_vram[_N_][offset]); - state->m_tilemap[_N_]->mark_tile_dirty(offset/2); + COMBINE_DATA(&m_vram[_N_][offset]); + m_tilemap[_N_]->mark_tile_dirty(offset/2); } -WRITE16_MEMBER(lordgun_state::lordgun_vram_0_w){ lordgun_vram_w(space, offset, data, mem_mask, 0); } -WRITE16_MEMBER(lordgun_state::lordgun_vram_1_w){ lordgun_vram_w(space, offset, data, mem_mask, 1); } -WRITE16_MEMBER(lordgun_state::lordgun_vram_2_w){ lordgun_vram_w(space, offset, data, mem_mask, 2); } -WRITE16_MEMBER(lordgun_state::lordgun_vram_3_w){ lordgun_vram_w(space, offset, data, mem_mask, 3); } +WRITE16_MEMBER(lordgun_state::lordgun_vram_0_w){ lordgun_vram_w(offset, data, mem_mask, 0); } +WRITE16_MEMBER(lordgun_state::lordgun_vram_1_w){ lordgun_vram_w(offset, data, mem_mask, 1); } +WRITE16_MEMBER(lordgun_state::lordgun_vram_2_w){ lordgun_vram_w(offset, data, mem_mask, 2); } +WRITE16_MEMBER(lordgun_state::lordgun_vram_3_w){ lordgun_vram_w(offset, data, mem_mask, 3); } /*************************************************************************** @@ -182,32 +180,30 @@ float lordgun_crosshair_mapper(ioport_field *field, float linear_value) return lordgun_gun_x_table[x] * 1.0f / 0x1BF; } -static void lorddgun_calc_gun_scr(running_machine &machine, int i) +void lordgun_state::lorddgun_calc_gun_scr(int i) { - lordgun_state *state = machine.driver_data<lordgun_state>(); -// popmessage("%03x, %02x", machine, "LIGHT0_X"), state->ioport("LIGHT0_Y")->read()); +// popmessage("%03x, %02x", machine, "LIGHT0_X"), ioport("LIGHT0_Y")->read()); - int x = state->ioport(gunnames[i])->read() - 0x3c; + int x = ioport(gunnames[i])->read() - 0x3c; if ( (x < 0) || (x > sizeof(lordgun_gun_x_table)/sizeof(lordgun_gun_x_table[0])) ) x = 0; - state->m_gun[i].scr_x = lordgun_gun_x_table[x]; - state->m_gun[i].scr_y = state->ioport(gunnames[i+2])->read(); + m_gun[i].scr_x = lordgun_gun_x_table[x]; + m_gun[i].scr_y = ioport(gunnames[i+2])->read(); } -void lordgun_update_gun(running_machine &machine, int i) +void lordgun_state::lordgun_update_gun(int i) { - lordgun_state *state = machine.driver_data<lordgun_state>(); - const rectangle &visarea = machine.primary_screen->visible_area(); + const rectangle &visarea = machine().primary_screen->visible_area(); - state->m_gun[i].hw_x = state->ioport(gunnames[i])->read(); - state->m_gun[i].hw_y = state->ioport(gunnames[i+2])->read(); + m_gun[i].hw_x = ioport(gunnames[i])->read(); + m_gun[i].hw_y = ioport(gunnames[i+2])->read(); - lorddgun_calc_gun_scr(machine, i); + lorddgun_calc_gun_scr(i); - if (!visarea.contains(state->m_gun[i].scr_x, state->m_gun[i].scr_y)) - state->m_gun[i].hw_x = state->m_gun[i].hw_y = 0; + if (!visarea.contains(m_gun[i].scr_x, m_gun[i].scr_y)) + m_gun[i].hw_x = m_gun[i].hw_y = 0; } @@ -235,11 +231,10 @@ void lordgun_update_gun(running_machine &machine, int i) ***************************************************************************/ -static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) +void lordgun_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) { - lordgun_state *state = machine.driver_data<lordgun_state>(); - UINT16 *s = state->m_spriteram; - UINT16 *end = state->m_spriteram + state->m_spriteram.bytes()/2; + UINT16 *s = m_spriteram; + UINT16 *end = m_spriteram + m_spriteram.bytes()/2; for ( ; s < end; s += 8/2 ) { @@ -278,7 +273,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r { for (x = x0; x != x1; x += dx) { - drawgfx_transpen( bitmap, cliprect, machine.gfx[4], + drawgfx_transpen( bitmap, cliprect, machine().gfx[4], code, color + pri * 0x800/0x40, flipx, flipy, sx + x * 0x10, sy + y * 0x10, @@ -373,7 +368,7 @@ UINT32 lordgun_state::screen_update_lordgun(screen_device &screen, bitmap_ind16 if (layers_ctrl & 2) m_tilemap[1]->draw(*m_bitmaps[1], cliprect, 0, 0); if (layers_ctrl & 4) m_tilemap[2]->draw(*m_bitmaps[2], cliprect, 0, 0); if (layers_ctrl & 8) m_tilemap[3]->draw(*m_bitmaps[3], cliprect, 0, 0); - if (layers_ctrl & 16) draw_sprites(machine(), *m_bitmaps[4], cliprect); + if (layers_ctrl & 16) draw_sprites(*m_bitmaps[4], cliprect); // copy to screen bitmap diff --git a/src/mame/video/lsasquad.c b/src/mame/video/lsasquad.c index 008a412668e..1586dbcbda1 100644 --- a/src/mame/video/lsasquad.c +++ b/src/mame/video/lsasquad.c @@ -1,9 +1,8 @@ #include "emu.h" #include "includes/lsasquad.h" -static void draw_layer( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *scrollram ) +void lsasquad_state::draw_layer( bitmap_ind16 &bitmap, const rectangle &cliprect, UINT8 *scrollram ) { - lsasquad_state *state = machine.driver_data<lsasquad_state>(); int offs, scrollx, scrolly; scrollx = scrollram[3]; @@ -15,7 +14,7 @@ static void draw_layer( running_machine &machine, bitmap_ind16 &bitmap, const re base = 64 * scrollram[offs + 1]; sx = 8 * (offs / 4) + scrollx; - if (state->flip_screen()) + if (flip_screen()) sx = 248 - sx; sx &= 0xff; @@ -25,62 +24,61 @@ static void draw_layer( running_machine &machine, bitmap_ind16 &bitmap, const re int attr; sy = 8 * y + scrolly; - if (state->flip_screen()) + if (flip_screen()) sy = 248 - sy; sy &= 0xff; - attr = state->m_videoram[base + 2 * y + 1]; - code = state->m_videoram[base + 2 * y] + ((attr & 0x0f) << 8); + attr = m_videoram[base + 2 * y + 1]; + code = m_videoram[base + 2 * y] + ((attr & 0x0f) << 8); color = attr >> 4; - drawgfx_transpen(bitmap,cliprect,machine.gfx[0], + drawgfx_transpen(bitmap,cliprect,machine().gfx[0], code, color, - state->flip_screen(),state->flip_screen(), + flip_screen(),flip_screen(), sx,sy,15); if (sx > 248) /* wraparound */ - drawgfx_transpen(bitmap,cliprect,machine.gfx[0], + drawgfx_transpen(bitmap,cliprect,machine().gfx[0], code, color, - state->flip_screen(),state->flip_screen(), + flip_screen(),flip_screen(), sx-256,sy,15); } } } -static int draw_layer_daikaiju( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int * previd, int type ) +int lsasquad_state::draw_layer_daikaiju( bitmap_ind16 &bitmap, const rectangle &cliprect, int offs, int * previd, int type ) { - lsasquad_state *state = machine.driver_data<lsasquad_state>(); int id, scrollx, scrolly, initoffs, globalscrollx; int stepx = 0; initoffs = offs; globalscrollx = 0; - id = state->m_scrollram[offs + 2]; + id = m_scrollram[offs + 2]; for( ; offs < 0x400; offs += 4) { int base, y, sx, sy, code, color; //id change - if (id != state->m_scrollram[offs + 2]) + if (id != m_scrollram[offs + 2]) { *previd = id; return offs; } else { - id = state->m_scrollram[offs + 2]; + id = m_scrollram[offs + 2]; } //skip empty (??) column, potential probs with 1st column in scrollram (scroll 0, tile 0, id 0) - if ((state->m_scrollram[offs + 0] | state->m_scrollram[offs + 1] | state->m_scrollram[offs + 2] | state->m_scrollram[offs + 3]) == 0) + if ((m_scrollram[offs + 0] | m_scrollram[offs + 1] | m_scrollram[offs + 2] | m_scrollram[offs + 3]) == 0) continue; //local scroll x/y - scrolly = -state->m_scrollram[offs + 0]; - scrollx = state->m_scrollram[offs + 3]; + scrolly = -m_scrollram[offs + 0]; + scrollx = m_scrollram[offs + 3]; //check for global x scroll used in bg layer in game (starts at offset 0 in scrollram // and game name/logo on title screen (starts in the middle of scrollram, but with different @@ -99,10 +97,10 @@ static int draw_layer_daikaiju( running_machine &machine, bitmap_ind16 &bitmap, } } - base = 64 * state->m_scrollram[offs + 1]; + base = 64 * m_scrollram[offs + 1]; sx = scrollx + stepx; - if (state->flip_screen()) + if (flip_screen()) sx = 248 - sx; sx &= 0xff; @@ -111,26 +109,26 @@ static int draw_layer_daikaiju( running_machine &machine, bitmap_ind16 &bitmap, int attr; sy = 8 * y + scrolly; - if (state->flip_screen()) + if (flip_screen()) sy = 248 - sy; sy &= 0xff; - attr = state->m_videoram[base + 2 * y + 1]; - code = state->m_videoram[base + 2 * y] + ((attr & 0x0f) << 8); + attr = m_videoram[base + 2 * y + 1]; + code = m_videoram[base + 2 * y] + ((attr & 0x0f) << 8); color = attr >> 4; if ((type == 0 && color != 0x0d) || (type != 0 && color == 0x0d)) { - drawgfx_transpen(bitmap,cliprect,machine.gfx[0], + drawgfx_transpen(bitmap,cliprect,machine().gfx[0], code, color, - state->flip_screen(),state->flip_screen(), + flip_screen(),flip_screen(), sx,sy,15); if (sx > 248) /* wraparound */ - drawgfx_transpen(bitmap,cliprect,machine.gfx[0], + drawgfx_transpen(bitmap,cliprect,machine().gfx[0], code, color, - state->flip_screen(),state->flip_screen(), + flip_screen(),flip_screen(), sx-256,sy,15); } } @@ -138,33 +136,31 @@ static int draw_layer_daikaiju( running_machine &machine, bitmap_ind16 &bitmap, return offs; } -static void drawbg( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int type ) +void lsasquad_state::drawbg( bitmap_ind16 &bitmap, const rectangle &cliprect, int type ) { - lsasquad_state *state = machine.driver_data<lsasquad_state>(); int i = 0; int id = -1; while (i < 0x400) { - if (!(state->m_scrollram[i + 2] & 1)) + if (!(m_scrollram[i + 2] & 1)) { - i = draw_layer_daikaiju(machine, bitmap, cliprect, i, &id, type); + i = draw_layer_daikaiju(bitmap, cliprect, i, &id, type); } else { - id = state->m_scrollram[i + 2]; + id = m_scrollram[i + 2]; i += 4; } } } -static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lsasquad_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lsasquad_state *state = machine.driver_data<lsasquad_state>(); - UINT8 *spriteram = state->m_spriteram; + UINT8 *spriteram = m_spriteram; int offs; - for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4) + for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4) { int sx, sy, attr, code, color, flipx, flipy; @@ -176,7 +172,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const flipx = attr & 0x40; flipy = attr & 0x80; - if (state->flip_screen()) + if (flip_screen()) { sx = 240 - sx; sy = 240 - sy; @@ -184,13 +180,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const flipy = !flipy; } - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, color, flipx,flipy, sx,sy,15); /* wraparound */ - drawgfx_transpen(bitmap,cliprect,machine.gfx[1], + drawgfx_transpen(bitmap,cliprect,machine().gfx[1], code, color, flipx,flipy, @@ -202,10 +198,10 @@ UINT32 lsasquad_state::screen_update_lsasquad(screen_device &screen, bitmap_ind1 { bitmap.fill(511, cliprect); - draw_layer(machine(), bitmap, cliprect, m_scrollram + 0x000); - draw_layer(machine(), bitmap, cliprect, m_scrollram + 0x080); - draw_sprites(machine(), bitmap, cliprect); - draw_layer(machine(), bitmap, cliprect, m_scrollram + 0x100); + draw_layer(bitmap, cliprect, m_scrollram + 0x000); + draw_layer(bitmap, cliprect, m_scrollram + 0x080); + draw_sprites(bitmap, cliprect); + draw_layer(bitmap, cliprect, m_scrollram + 0x100); return 0; } @@ -213,8 +209,8 @@ UINT32 lsasquad_state::screen_update_lsasquad(screen_device &screen, bitmap_ind1 UINT32 lsasquad_state::screen_update_daikaiju(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { bitmap.fill(511, cliprect); - drawbg(machine(), bitmap, cliprect, 0); // bottom - draw_sprites(machine(), bitmap, cliprect); - drawbg(machine(), bitmap, cliprect, 1); // top = palette $d ? + drawbg(bitmap, cliprect, 0); // bottom + draw_sprites(bitmap, cliprect); + drawbg(bitmap, cliprect, 1); // top = palette $d ? return 0; } diff --git a/src/mame/video/lwings.c b/src/mame/video/lwings.c index da81f0e3192..015ac256eca 100644 --- a/src/mame/video/lwings.c +++ b/src/mame/video/lwings.c @@ -157,7 +157,7 @@ WRITE8_MEMBER(lwings_state::trojan_bg2_image_w) ***************************************************************************/ -INLINE int is_sprite_on( UINT8 *buffered_spriteram, int offs ) +inline int lwings_state::is_sprite_on( UINT8 *buffered_spriteram, int offs ) { int sx, sy; @@ -167,13 +167,12 @@ INLINE int is_sprite_on( UINT8 *buffered_spriteram, int offs ) return sx || sy; } -static void lwings_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lwings_state::lwings_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lwings_state *state = machine.driver_data<lwings_state>(); - UINT8 *buffered_spriteram = state->m_spriteram->buffer(); + UINT8 *buffered_spriteram = m_spriteram->buffer(); int offs; - for (offs = state->m_spriteram->bytes() - 4; offs >= 0; offs -= 4) + for (offs = m_spriteram->bytes() - 4; offs >= 0; offs -= 4) { if (is_sprite_on(buffered_spriteram, offs)) { @@ -188,7 +187,7 @@ static void lwings_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, flipx = buffered_spriteram[offs + 1] & 0x02; flipy = buffered_spriteram[offs + 1] & 0x04; - if (state->flip_screen()) + if (flip_screen()) { sx = 240 - sx; sy = 240 - sy; @@ -196,7 +195,7 @@ static void lwings_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, flipy = !flipy; } - drawgfx_transpen(bitmap,cliprect,machine.gfx[2], + drawgfx_transpen(bitmap,cliprect,machine().gfx[2], code,color, flipx,flipy, sx,sy,15); @@ -204,13 +203,12 @@ static void lwings_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, } } -static void trojan_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) +void lwings_state::trojan_draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) { - lwings_state *state = machine.driver_data<lwings_state>(); - UINT8 *buffered_spriteram = state->m_spriteram->buffer(); + UINT8 *buffered_spriteram = m_spriteram->buffer(); int offs; - for (offs = state->m_spriteram->bytes() - 4; offs >= 0; offs -= 4) + for (offs = m_spriteram->bytes() - 4; offs >= 0; offs -= 4) { if (is_sprite_on(buffered_spriteram, offs)) { @@ -226,7 +224,7 @@ static void trojan_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, ((buffered_spriteram[offs + 1] & 0x80) << 3); color = (buffered_spriteram[offs + 1] & 0x0e) >> 1; - if (state->m_bg2_avenger_hw) + if (m_bg2_avenger_hw) { flipx = 0; /* Avengers */ flipy = ~buffered_spriteram[offs + 1] & 0x10; @@ -237,7 +235,7 @@ static void trojan_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, flipy = 1; } - if (state->flip_screen()) + if (flip_screen()) { sx = 240 - sx; sy = 240 - sy; @@ -245,7 +243,7 @@ static void trojan_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, flipy = !flipy; } - drawgfx_transpen(bitmap,cliprect,machine.gfx[2], + drawgfx_transpen(bitmap,cliprect,machine().gfx[2], code,color, flipx,flipy, sx,sy,15); @@ -256,7 +254,7 @@ static void trojan_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, UINT32 lwings_state::screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg1_tilemap->draw(bitmap, cliprect, 0, 0); - lwings_draw_sprites(machine(), bitmap, cliprect); + lwings_draw_sprites(bitmap, cliprect); m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; } @@ -265,7 +263,7 @@ UINT32 lwings_state::screen_update_trojan(screen_device &screen, bitmap_ind16 &b { m_bg2_tilemap->draw(bitmap, cliprect, 0, 0); m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0); - trojan_draw_sprites(machine(), bitmap, cliprect); + trojan_draw_sprites(bitmap, cliprect); m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0); m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; diff --git a/src/mame/video/redclash.c b/src/mame/video/redclash.c index 9c30f71d0c9..caadd993c9d 100644 --- a/src/mame/video/redclash.c +++ b/src/mame/video/redclash.c @@ -427,7 +427,7 @@ UINT32 ladybug_state::screen_update_redclash(screen_device &screen, bitmap_ind16 { bitmap.fill(get_black_pen(machine()), cliprect); redclash_draw_stars(machine(), bitmap, cliprect, 0x60, 0, 0x00, 0xff); - draw_sprites(machine(), bitmap, cliprect); + ::draw_sprites(machine(), bitmap, cliprect); draw_bullets(machine(), bitmap, cliprect); m_fg_tilemap->draw(bitmap, cliprect, 0, 0); return 0; |