williams.cpp, wmg.cpp : Simplify handlers

This commit is contained in:
cam900 2019-03-31 14:01:11 +09:00
parent f86c3204dd
commit 60e62c62be
5 changed files with 76 additions and 77 deletions

View File

@ -3185,7 +3185,7 @@ void williams_state::init_mayday()
CONFIGURE_BLITTER(WILLIAMS_BLITTER_NONE, 0x0000); CONFIGURE_BLITTER(WILLIAMS_BLITTER_NONE, 0x0000);
/* install a handler to catch protection checks */ /* install a handler to catch protection checks */
m_maincpu->space(AS_PROGRAM).install_read_handler(0xa190, 0xa191, read8_delegate(FUNC(williams_state::mayday_protection_r),this)); m_maincpu->space(AS_PROGRAM).install_read_handler(0xa190, 0xa191, read8sm_delegate(FUNC(williams_state::mayday_protection_r),this));
m_mayday_protection = m_videoram + 0xa190; m_mayday_protection = m_videoram + 0xa190;
} }
@ -3220,7 +3220,7 @@ void williams_state::init_bubbles()
CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC1, 0xc000); CONFIGURE_BLITTER(WILLIAMS_BLITTER_SC1, 0xc000);
/* bubbles has a full 8-bit-wide CMOS */ /* bubbles has a full 8-bit-wide CMOS */
m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc00, 0xcfff, write8_delegate(FUNC(williams_state::bubbles_cmos_w),this)); m_maincpu->space(AS_PROGRAM).install_write_handler(0xcc00, 0xcfff, write8sm_delegate(FUNC(williams_state::bubbles_cmos_w),this));
} }

View File

@ -100,15 +100,15 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(wmg_mux_r); DECLARE_CUSTOM_INPUT_MEMBER(wmg_mux_r);
private: private:
DECLARE_READ8_MEMBER(wmg_nvram_r); u8 wmg_nvram_r(offs_t offset);
DECLARE_WRITE8_MEMBER(wmg_nvram_w); void wmg_nvram_w(offs_t offset, u8 data);
DECLARE_READ8_MEMBER(wmg_pia_0_r); u8 wmg_pia_0_r(offs_t offset);
DECLARE_WRITE8_MEMBER(wmg_c400_w); void wmg_c400_w(u8 data);
DECLARE_WRITE8_MEMBER(wmg_d000_w); void wmg_d000_w(u8 data);
DECLARE_WRITE8_MEMBER(wmg_blitter_w); DECLARE_WRITE8_MEMBER(wmg_blitter_w);
DECLARE_WRITE_LINE_MEMBER(wmg_port_select_w); DECLARE_WRITE_LINE_MEMBER(wmg_port_select_w);
DECLARE_WRITE8_MEMBER(wmg_sound_reset_w); void wmg_sound_reset_w(u8 data);
DECLARE_WRITE8_MEMBER(wmg_vram_select_w); void wmg_vram_select_w(u8 data);
void wmg_cpu1(address_map &map); void wmg_cpu1(address_map &map);
void wmg_cpu2(address_map &map); void wmg_cpu2(address_map &map);
@ -325,12 +325,12 @@ INPUT_PORTS_END
* NVRAM (8k x 8), banked * NVRAM (8k x 8), banked
* *
*************************************/ *************************************/
READ8_MEMBER( wmg_state::wmg_nvram_r ) u8 wmg_state::wmg_nvram_r(offs_t offset)
{ {
return m_p_ram[offset+(m_wmg_c400<<10)]; return m_p_ram[offset+(m_wmg_c400<<10)];
} }
WRITE8_MEMBER( wmg_state::wmg_nvram_w ) void wmg_state::wmg_nvram_w(offs_t offset, u8 data)
{ {
m_p_ram[offset+(m_wmg_c400<<10)] = data; m_p_ram[offset+(m_wmg_c400<<10)] = data;
} }
@ -355,7 +355,7 @@ WRITE8_MEMBER( wmg_state::wmg_blitter_w )
/* switches the banks around when given a game number. /* switches the banks around when given a game number.
The hardware has a lock feature, so that once a bank is selected, the next choice must be the menu */ The hardware has a lock feature, so that once a bank is selected, the next choice must be the menu */
WRITE8_MEMBER( wmg_state::wmg_c400_w ) void wmg_state::wmg_c400_w(u8 data)
{ {
data &= 7; data &= 7;
if (m_wmg_c400 == data) if (m_wmg_c400 == data)
@ -364,7 +364,7 @@ WRITE8_MEMBER( wmg_state::wmg_c400_w )
if ((data == 0) || (m_wmg_c400 == 0)) // we must be going to/from the menu if ((data == 0) || (m_wmg_c400 == 0)) // we must be going to/from the menu
{ {
m_wmg_c400 = data; m_wmg_c400 = data;
wmg_d000_w( space, 0, 0); // select i/o wmg_d000_w(0); // select i/o
m_mainbank->set_entry(m_wmg_vram_bank ? (1+m_wmg_c400) : 0); // Gfx etc m_mainbank->set_entry(m_wmg_vram_bank ? (1+m_wmg_c400) : 0); // Gfx etc
m_codebank->set_entry(data); // Code m_codebank->set_entry(data); // Code
m_soundbank->set_entry(data); // Sound m_soundbank->set_entry(data); // Sound
@ -372,13 +372,13 @@ WRITE8_MEMBER( wmg_state::wmg_c400_w )
} }
} }
WRITE8_MEMBER( wmg_state::wmg_sound_reset_w ) void wmg_state::wmg_sound_reset_w(u8 data)
{ {
/* This resets the sound card when bit 0 is low */ /* This resets the sound card when bit 0 is low */
if (!BIT(data, 0)) m_soundcpu->reset(); if (!BIT(data, 0)) m_soundcpu->reset();
} }
WRITE8_MEMBER( wmg_state::wmg_vram_select_w ) void wmg_state::wmg_vram_select_w(u8 data)
{ {
/* VRAM/ROM banking from bit 0 */ /* VRAM/ROM banking from bit 0 */
m_wmg_vram_bank = BIT(data, 0); m_wmg_vram_bank = BIT(data, 0);
@ -390,7 +390,7 @@ WRITE8_MEMBER( wmg_state::wmg_vram_select_w )
// if defender, choose a rom, else enable i/o // if defender, choose a rom, else enable i/o
WRITE8_MEMBER( wmg_state::wmg_d000_w ) void wmg_state::wmg_d000_w(u8 data)
{ {
data &= 15; data &= 15;
if (m_wmg_d000 == data) if (m_wmg_d000 == data)
@ -446,12 +446,11 @@ void wmg_state::machine_start()
void wmg_state::machine_reset() void wmg_state::machine_reset()
{ {
address_space &space1 = m_maincpu->space(AS_PROGRAM);
m_wmg_c400=0xff; m_wmg_c400=0xff;
m_wmg_d000=0xff; m_wmg_d000=0xff;
m_wmg_port_select=0; m_wmg_port_select=0;
m_wmg_vram_bank=0; m_wmg_vram_bank=0;
wmg_c400_w( space1, 0, 0); wmg_c400_w(0);
m_maincpu->reset(); m_maincpu->reset();
} }
@ -482,7 +481,7 @@ CUSTOM_INPUT_MEMBER(wmg_state::wmg_mux_r)
} }
} }
READ8_MEMBER( wmg_state::wmg_pia_0_r ) u8 wmg_state::wmg_pia_0_r(offs_t offset)
{ {
/* if player presses P1 and P2 in a game, return to the menu. /* if player presses P1 and P2 in a game, return to the menu.
Since there is no code in rom to handle this, it must be a hardware feature Since there is no code in rom to handle this, it must be a hardware feature
@ -492,7 +491,7 @@ READ8_MEMBER( wmg_state::wmg_pia_0_r )
if ((m_wmg_c400) && (offset == 0) && ((data & 0x30) == 0x30)) // P1 and P2 pressed if ((m_wmg_c400) && (offset == 0) && ((data & 0x30) == 0x30)) // P1 and P2 pressed
{ {
wmg_c400_w( space, 0, 0); wmg_c400_w(0);
m_maincpu->reset(); m_maincpu->reset();
} }

View File

@ -68,10 +68,10 @@ public:
void init_robotron(); void init_robotron();
void init_bubbles(); void init_bubbles();
DECLARE_READ8_MEMBER(williams_49way_port_0_r); u8 williams_49way_port_0_r();
DECLARE_WRITE8_MEMBER(williams_snd_cmd_w); void williams_snd_cmd_w(u8 data);
DECLARE_WRITE8_MEMBER(defender_video_control_w); void defender_video_control_w(u8 data);
DECLARE_READ8_MEMBER(williams_video_counter_r); u8 williams_video_counter_r();
DECLARE_WRITE8_MEMBER(williams_watchdog_reset_w); DECLARE_WRITE8_MEMBER(williams_watchdog_reset_w);
TIMER_DEVICE_CALLBACK_MEMBER(williams_va11_callback); TIMER_DEVICE_CALLBACK_MEMBER(williams_va11_callback);
@ -109,12 +109,12 @@ protected:
uint8_t m_blitter_remap_index; uint8_t m_blitter_remap_index;
const uint8_t *m_blitter_remap; const uint8_t *m_blitter_remap;
std::unique_ptr<uint8_t[]> m_blitter_remap_lookup; std::unique_ptr<uint8_t[]> m_blitter_remap_lookup;
DECLARE_WRITE8_MEMBER(williams_vram_select_w); void williams_vram_select_w(u8 data);
DECLARE_WRITE8_MEMBER(williams_cmos_w); void williams_cmos_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER(bubbles_cmos_w); void bubbles_cmos_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER(defender_bank_select_w); void defender_bank_select_w(u8 data);
DECLARE_READ8_MEMBER(mayday_protection_r); u8 mayday_protection_r(offs_t offset);
DECLARE_WRITE8_MEMBER(sinistar_vram_select_w); void sinistar_vram_select_w(u8 data);
DECLARE_WRITE8_MEMBER(williams_blitter_w); DECLARE_WRITE8_MEMBER(williams_blitter_w);
DECLARE_MACHINE_START(defender); DECLARE_MACHINE_START(defender);
@ -124,7 +124,7 @@ protected:
TIMER_CALLBACK_MEMBER(williams_deferred_snd_cmd_w); TIMER_CALLBACK_MEMBER(williams_deferred_snd_cmd_w);
DECLARE_WRITE8_MEMBER(playball_snd_cmd_w); void playball_snd_cmd_w(u8 data);
DECLARE_WRITE_LINE_MEMBER(lottofun_coin_lock_w); DECLARE_WRITE_LINE_MEMBER(lottofun_coin_lock_w);
@ -197,12 +197,12 @@ private:
uint8_t m_vram_bank; uint8_t m_vram_bank;
uint8_t m_rom_bank; uint8_t m_rom_bank;
DECLARE_WRITE8_MEMBER(blaster_vram_select_w); void blaster_vram_select_w(u8 data);
DECLARE_WRITE8_MEMBER(blaster_bank_select_w); void blaster_bank_select_w(u8 data);
DECLARE_WRITE8_MEMBER(blaster_remap_select_w); void blaster_remap_select_w(u8 data);
DECLARE_WRITE8_MEMBER(blaster_video_control_w); void blaster_video_control_w(u8 data);
TIMER_CALLBACK_MEMBER(blaster_deferred_snd_cmd_w); TIMER_CALLBACK_MEMBER(blaster_deferred_snd_cmd_w);
DECLARE_WRITE8_MEMBER(blaster_snd_cmd_w); void blaster_snd_cmd_w(u8 data);
DECLARE_MACHINE_START(blaster); DECLARE_MACHINE_START(blaster);
DECLARE_VIDEO_START(blaster); DECLARE_VIDEO_START(blaster);
@ -244,20 +244,20 @@ protected:
uint8_t m_williams2_tilemap_config; uint8_t m_williams2_tilemap_config;
TILE_GET_INFO_MEMBER(get_tile_info); TILE_GET_INFO_MEMBER(get_tile_info);
DECLARE_WRITE8_MEMBER(williams2_bank_select_w); void williams2_bank_select_w(u8 data);
DECLARE_WRITE8_MEMBER(williams2_watchdog_reset_w); DECLARE_WRITE8_MEMBER(williams2_watchdog_reset_w);
DECLARE_WRITE8_MEMBER(williams2_7segment_w); void williams2_7segment_w(u8 data);
DECLARE_WRITE8_MEMBER(williams2_paletteram_w); void williams2_paletteram_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER(williams2_fg_select_w); void williams2_fg_select_w(u8 data);
DECLARE_WRITE8_MEMBER(williams2_bg_select_w); void williams2_bg_select_w(u8 data);
DECLARE_WRITE8_MEMBER(williams2_tileram_w); void williams2_tileram_w(offs_t offset, u8 data);
DECLARE_WRITE8_MEMBER(williams2_xscroll_low_w); void williams2_xscroll_low_w(u8 data);
DECLARE_WRITE8_MEMBER(williams2_xscroll_high_w); void williams2_xscroll_high_w(u8 data);
DECLARE_WRITE8_MEMBER(williams2_blit_window_enable_w); void williams2_blit_window_enable_w(u8 data);
TIMER_DEVICE_CALLBACK_MEMBER(williams2_va11_callback); TIMER_DEVICE_CALLBACK_MEMBER(williams2_va11_callback);
TIMER_DEVICE_CALLBACK_MEMBER(williams2_endscreen_callback); TIMER_DEVICE_CALLBACK_MEMBER(williams2_endscreen_callback);
TIMER_CALLBACK_MEMBER(williams2_deferred_snd_cmd_w); TIMER_CALLBACK_MEMBER(williams2_deferred_snd_cmd_w);
DECLARE_WRITE8_MEMBER(williams2_snd_cmd_w); void williams2_snd_cmd_w(u8 data);
DECLARE_MACHINE_START(williams2); DECLARE_MACHINE_START(williams2);
DECLARE_MACHINE_RESET(williams2); DECLARE_MACHINE_RESET(williams2);
@ -290,7 +290,7 @@ public:
private: private:
DECLARE_WRITE_LINE_MEMBER(maxvol_w); DECLARE_WRITE_LINE_MEMBER(maxvol_w);
DECLARE_WRITE8_MEMBER(lamp_w); void lamp_w(u8 data);
DECLARE_MACHINE_START(tshoot); DECLARE_MACHINE_START(tshoot);

View File

@ -105,7 +105,7 @@ MACHINE_START_MEMBER(williams2_state,williams2)
MACHINE_RESET_MEMBER(williams2_state,williams2) MACHINE_RESET_MEMBER(williams2_state,williams2)
{ {
/* make sure our banking is reset */ /* make sure our banking is reset */
williams2_bank_select_w(machine().dummy_space(), 0, 0); williams2_bank_select_w(0);
} }
@ -116,7 +116,7 @@ MACHINE_RESET_MEMBER(williams2_state,williams2)
* *
*************************************/ *************************************/
WRITE8_MEMBER(williams_state::williams_vram_select_w) void williams_state::williams_vram_select_w(u8 data)
{ {
/* VRAM/ROM banking from bit 0 */ /* VRAM/ROM banking from bit 0 */
m_mainbank->set_entry(data & 0x01); m_mainbank->set_entry(data & 0x01);
@ -126,7 +126,7 @@ WRITE8_MEMBER(williams_state::williams_vram_select_w)
} }
WRITE8_MEMBER(williams2_state::williams2_bank_select_w) void williams2_state::williams2_bank_select_w(u8 data)
{ {
/* the low two bits control the paging */ /* the low two bits control the paging */
switch (data & 0x03) switch (data & 0x03)
@ -166,13 +166,13 @@ TIMER_CALLBACK_MEMBER(williams_state::williams_deferred_snd_cmd_w)
m_pia[2]->cb1_w((param == 0xff) ? 0 : 1); m_pia[2]->cb1_w((param == 0xff) ? 0 : 1);
} }
WRITE8_MEMBER(williams_state::williams_snd_cmd_w) void williams_state::williams_snd_cmd_w(u8 data)
{ {
/* the high two bits are set externally, and should be 1 */ /* the high two bits are set externally, and should be 1 */
machine().scheduler().synchronize(timer_expired_delegate(FUNC(williams_state::williams_deferred_snd_cmd_w),this), data | 0xc0); machine().scheduler().synchronize(timer_expired_delegate(FUNC(williams_state::williams_deferred_snd_cmd_w),this), data | 0xc0);
} }
WRITE8_MEMBER(williams_state::playball_snd_cmd_w) void williams_state::playball_snd_cmd_w(u8 data)
{ {
machine().scheduler().synchronize(timer_expired_delegate(FUNC(williams_state::williams_deferred_snd_cmd_w),this), data); machine().scheduler().synchronize(timer_expired_delegate(FUNC(williams_state::williams_deferred_snd_cmd_w),this), data);
} }
@ -182,7 +182,7 @@ TIMER_CALLBACK_MEMBER(williams2_state::williams2_deferred_snd_cmd_w)
m_pia[2]->write_porta(param); m_pia[2]->write_porta(param);
} }
WRITE8_MEMBER(williams2_state::williams2_snd_cmd_w) void williams2_state::williams2_snd_cmd_w(u8 data)
{ {
machine().scheduler().synchronize(timer_expired_delegate(FUNC(williams2_state::williams2_deferred_snd_cmd_w),this), data); machine().scheduler().synchronize(timer_expired_delegate(FUNC(williams2_state::williams2_deferred_snd_cmd_w),this), data);
} }
@ -214,7 +214,7 @@ WRITE8_MEMBER(williams2_state::williams2_snd_cmd_w)
* 1000 = right/down full * 1000 = right/down full
*/ */
READ8_MEMBER(williams_state::williams_49way_port_0_r) u8 williams_state::williams_49way_port_0_r()
{ {
static const uint8_t translate49[7] = { 0x0, 0x4, 0x6, 0x7, 0xb, 0x9, 0x8 }; static const uint8_t translate49[7] = { 0x0, 0x4, 0x6, 0x7, 0xb, 0x9, 0x8 };
return (translate49[ioport("49WAYX")->read() >> 4] << 4) | translate49[ioport("49WAYY")->read() >> 4]; return (translate49[ioport("49WAYX")->read() >> 4] << 4) | translate49[ioport("49WAYY")->read() >> 4];
@ -228,14 +228,14 @@ READ8_MEMBER(williams_state::williams_49way_port_0_r)
* *
*************************************/ *************************************/
WRITE8_MEMBER(williams_state::williams_cmos_w) void williams_state::williams_cmos_w(offs_t offset, u8 data)
{ {
/* only 4 bits are valid */ /* only 4 bits are valid */
m_nvram[offset] = data | 0xf0; m_nvram[offset] = data | 0xf0;
} }
WRITE8_MEMBER(williams_state::bubbles_cmos_w) void williams_state::bubbles_cmos_w(offs_t offset, u8 data)
{ {
/* bubbles has additional CMOS for a full 8 bits */ /* bubbles has additional CMOS for a full 8 bits */
m_nvram[offset] = data; m_nvram[offset] = data;
@ -272,7 +272,7 @@ WRITE8_MEMBER(williams2_state::williams2_watchdog_reset_w)
* *
*************************************/ *************************************/
WRITE8_MEMBER(williams2_state::williams2_7segment_w) void williams2_state::williams2_7segment_w(u8 data)
{ {
int n; int n;
char dot; char dot;
@ -320,17 +320,17 @@ MACHINE_START_MEMBER(williams_state,defender)
MACHINE_RESET_MEMBER(williams_state,defender) MACHINE_RESET_MEMBER(williams_state,defender)
{ {
defender_bank_select_w(machine().dummy_space(), 0, 0); defender_bank_select_w(0);
} }
WRITE8_MEMBER(williams_state::defender_video_control_w) void williams_state::defender_video_control_w(u8 data)
{ {
m_cocktail = data & 0x01; m_cocktail = data & 0x01;
} }
WRITE8_MEMBER(williams_state::defender_bank_select_w) void williams_state::defender_bank_select_w(u8 data)
{ {
m_bankc000->set_bank(data & 0x0f); m_bankc000->set_bank(data & 0x0f);
} }
@ -343,7 +343,7 @@ WRITE8_MEMBER(williams_state::defender_bank_select_w)
* *
*************************************/ *************************************/
READ8_MEMBER(williams_state::mayday_protection_r) u8 williams_state::mayday_protection_r(offs_t offset)
{ {
/* Mayday does some kind of protection check that is not currently understood */ /* Mayday does some kind of protection check that is not currently understood */
/* However, the results of that protection check are stored at $a190 and $a191 */ /* However, the results of that protection check are stored at $a190 and $a191 */
@ -361,10 +361,10 @@ READ8_MEMBER(williams_state::mayday_protection_r)
* *
*************************************/ *************************************/
WRITE8_MEMBER(williams_state::sinistar_vram_select_w) void williams_state::sinistar_vram_select_w(u8 data)
{ {
/* low two bits are standard */ /* low two bits are standard */
williams_vram_select_w(space, offset, data); williams_vram_select_w(data);
/* window enable from bit 2 (clips to 0x7400) */ /* window enable from bit 2 (clips to 0x7400) */
m_blitter_window_enable = data & 0x04; m_blitter_window_enable = data & 0x04;
@ -400,7 +400,7 @@ inline void blaster_state::update_blaster_banking()
} }
WRITE8_MEMBER(blaster_state::blaster_vram_select_w) void blaster_state::blaster_vram_select_w(u8 data)
{ {
/* VRAM/ROM banking from bit 0 */ /* VRAM/ROM banking from bit 0 */
m_vram_bank = data & 0x01; m_vram_bank = data & 0x01;
@ -414,7 +414,7 @@ WRITE8_MEMBER(blaster_state::blaster_vram_select_w)
} }
WRITE8_MEMBER(blaster_state::blaster_bank_select_w) void blaster_state::blaster_bank_select_w(u8 data)
{ {
m_rom_bank = data & 0x0f; m_rom_bank = data & 0x0f;
update_blaster_banking(); update_blaster_banking();
@ -431,7 +431,7 @@ TIMER_CALLBACK_MEMBER(blaster_state::blaster_deferred_snd_cmd_w)
} }
WRITE8_MEMBER(blaster_state::blaster_snd_cmd_w) void blaster_state::blaster_snd_cmd_w(u8 data)
{ {
machine().scheduler().synchronize(timer_expired_delegate(FUNC(blaster_state::blaster_deferred_snd_cmd_w),this), data); machine().scheduler().synchronize(timer_expired_delegate(FUNC(blaster_state::blaster_deferred_snd_cmd_w),this), data);
} }
@ -481,7 +481,7 @@ WRITE_LINE_MEMBER(tshoot_state::maxvol_w)
} }
WRITE8_MEMBER(tshoot_state::lamp_w) void tshoot_state::lamp_w(u8 data)
{ {
/* set the grenade lamp */ /* set the grenade lamp */
m_grenade_lamp = BIT(~data, 2); m_grenade_lamp = BIT(~data, 2);

View File

@ -340,7 +340,7 @@ void williams_state::williams_palette(palette_device &palette) const
WRITE8_MEMBER(williams2_state::williams2_paletteram_w) void williams2_state::williams2_paletteram_w(offs_t offset, u8 data)
{ {
static const uint8_t ztable[16] = static const uint8_t ztable[16] =
{ {
@ -365,7 +365,7 @@ WRITE8_MEMBER(williams2_state::williams2_paletteram_w)
} }
WRITE8_MEMBER(williams2_state::williams2_fg_select_w) void williams2_state::williams2_fg_select_w(u8 data)
{ {
m_williams2_fg_color = data & 0x3f; m_williams2_fg_color = data & 0x3f;
} }
@ -378,7 +378,7 @@ WRITE8_MEMBER(williams2_state::williams2_fg_select_w)
* *
*************************************/ *************************************/
READ8_MEMBER(williams_state::williams_video_counter_r) u8 williams_state::williams_video_counter_r()
{ {
if (m_screen->vpos() < 0x100) if (m_screen->vpos() < 0x100)
return m_screen->vpos() & 0xfc; return m_screen->vpos() & 0xfc;
@ -428,7 +428,7 @@ TILE_GET_INFO_MEMBER(williams2_state::get_tile_info)
} }
WRITE8_MEMBER(williams2_state::williams2_bg_select_w) void williams2_state::williams2_bg_select_w(u8 data)
{ {
/* based on the tilemap config, only certain bits are used */ /* based on the tilemap config, only certain bits are used */
/* the rest are determined by other factors */ /* the rest are determined by other factors */
@ -453,21 +453,21 @@ WRITE8_MEMBER(williams2_state::williams2_bg_select_w)
} }
WRITE8_MEMBER(williams2_state::williams2_tileram_w) void williams2_state::williams2_tileram_w(offs_t offset, u8 data)
{ {
m_williams2_tileram[offset] = data; m_williams2_tileram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset); m_bg_tilemap->mark_tile_dirty(offset);
} }
WRITE8_MEMBER(williams2_state::williams2_xscroll_low_w) void williams2_state::williams2_xscroll_low_w(u8 data)
{ {
m_tilemap_xscroll = (m_tilemap_xscroll & ~0x00f) | ((data & 0x80) >> 4) | (data & 0x07); m_tilemap_xscroll = (m_tilemap_xscroll & ~0x00f) | ((data & 0x80) >> 4) | (data & 0x07);
m_bg_tilemap->set_scrollx(0, (m_tilemap_xscroll & 7) + ((m_tilemap_xscroll >> 3) * 6)); m_bg_tilemap->set_scrollx(0, (m_tilemap_xscroll & 7) + ((m_tilemap_xscroll >> 3) * 6));
} }
WRITE8_MEMBER(williams2_state::williams2_xscroll_high_w) void williams2_state::williams2_xscroll_high_w(u8 data)
{ {
m_tilemap_xscroll = (m_tilemap_xscroll & 0x00f) | (data << 4); m_tilemap_xscroll = (m_tilemap_xscroll & 0x00f) | (data << 4);
m_bg_tilemap->set_scrollx(0, (m_tilemap_xscroll & 7) + ((m_tilemap_xscroll >> 3) * 6)); m_bg_tilemap->set_scrollx(0, (m_tilemap_xscroll & 7) + ((m_tilemap_xscroll >> 3) * 6));
@ -481,14 +481,14 @@ WRITE8_MEMBER(williams2_state::williams2_xscroll_high_w)
* *
*************************************/ *************************************/
WRITE8_MEMBER(blaster_state::blaster_remap_select_w) void blaster_state::blaster_remap_select_w(u8 data)
{ {
m_blitter_remap_index = data; m_blitter_remap_index = data;
m_blitter_remap = m_blitter_remap_lookup.get() + data * 256; m_blitter_remap = m_blitter_remap_lookup.get() + data * 256;
} }
WRITE8_MEMBER(blaster_state::blaster_video_control_w) void blaster_state::blaster_video_control_w(u8 data)
{ {
m_blaster_video_control = data; m_blaster_video_control = data;
} }
@ -575,7 +575,7 @@ WRITE8_MEMBER(williams_state::williams_blitter_w)
} }
WRITE8_MEMBER(williams2_state::williams2_blit_window_enable_w) void williams2_state::williams2_blit_window_enable_w(u8 data)
{ {
m_blitter_window_enable = data & 0x01; m_blitter_window_enable = data & 0x01;
} }