77
WRITE8_HANDLER( snk6502_videoram_w )
79
snk6502_state *state = space->machine().driver_data<snk6502_state>();
81
state->m_videoram[offset] = data;
82
state->m_bg_tilemap->mark_tile_dirty(offset);
85
WRITE8_HANDLER( snk6502_videoram2_w )
87
snk6502_state *state = space->machine().driver_data<snk6502_state>();
89
state->m_videoram2[offset] = data;
90
state->m_fg_tilemap->mark_tile_dirty(offset);
93
WRITE8_HANDLER( snk6502_colorram_w )
95
snk6502_state *state = space->machine().driver_data<snk6502_state>();
97
state->m_colorram[offset] = data;
98
state->m_bg_tilemap->mark_tile_dirty(offset);
99
state->m_fg_tilemap->mark_tile_dirty(offset);
102
WRITE8_HANDLER( snk6502_charram_w )
104
snk6502_state *state = space->machine().driver_data<snk6502_state>();
106
if (state->m_charram[offset] != data)
78
WRITE8_MEMBER(snk6502_state::snk6502_videoram_w)
81
m_videoram[offset] = data;
82
m_bg_tilemap->mark_tile_dirty(offset);
85
WRITE8_MEMBER(snk6502_state::snk6502_videoram2_w)
88
m_videoram2[offset] = data;
89
m_fg_tilemap->mark_tile_dirty(offset);
92
WRITE8_MEMBER(snk6502_state::snk6502_colorram_w)
95
m_colorram[offset] = data;
96
m_bg_tilemap->mark_tile_dirty(offset);
97
m_fg_tilemap->mark_tile_dirty(offset);
100
WRITE8_MEMBER(snk6502_state::snk6502_charram_w)
103
if (m_charram[offset] != data)
108
state->m_charram[offset] = data;
109
gfx_element_mark_dirty(space->machine().gfx[0], (offset/8) % 256);
105
m_charram[offset] = data;
106
gfx_element_mark_dirty(machine().gfx[0], (offset/8) % 256);
114
WRITE8_HANDLER( snk6502_flipscreen_w )
111
WRITE8_MEMBER(snk6502_state::snk6502_flipscreen_w)
116
snk6502_state *state = space->machine().driver_data<snk6502_state>();
119
115
/* bits 0-2 select background color */
121
if (state->m_backcolor != (data & 7))
117
if (m_backcolor != (data & 7))
125
state->m_backcolor = data & 7;
121
m_backcolor = data & 7;
127
123
for (i = 0;i < 32;i += 4)
128
palette_set_color(space->machine(), COLOR(space->machine(), 1, i), state->m_palette[4 * state->m_backcolor + 0x20]);
124
palette_set_color(machine(), COLOR(machine(), 1, i), m_palette[4 * m_backcolor + 0x20]);
131
127
/* bit 3 selects char bank */
133
129
bank = (~data & 0x08) >> 3;
135
if (state->m_charbank != bank)
131
if (m_charbank != bank)
137
state->m_charbank = bank;
138
space->machine().tilemap().mark_all_dirty();
134
machine().tilemap().mark_all_dirty();
141
137
/* bit 7 flips screen */
143
if (flip_screen_get(space->machine()) != (data & 0x80))
139
if (flip_screen() != (data & 0x80))
145
flip_screen_set(space->machine(), data & 0x80);
146
space->machine().tilemap().mark_all_dirty();
141
flip_screen_set(data & 0x80);
142
machine().tilemap().mark_all_dirty();
150
WRITE8_HANDLER( snk6502_scrollx_w )
146
WRITE8_MEMBER(snk6502_state::snk6502_scrollx_w)
152
snk6502_state *state = space->machine().driver_data<snk6502_state>();
154
state->m_bg_tilemap->set_scrollx(0, data);
149
m_bg_tilemap->set_scrollx(0, data);
157
WRITE8_HANDLER( snk6502_scrolly_w )
152
WRITE8_MEMBER(snk6502_state::snk6502_scrolly_w)
159
snk6502_state *state = space->machine().driver_data<snk6502_state>();
161
state->m_bg_tilemap->set_scrolly(0, data);
155
m_bg_tilemap->set_scrolly(0, data);
269
WRITE8_HANDLER( satansat_b002_w )
264
WRITE8_MEMBER(snk6502_state::satansat_b002_w)
271
snk6502_state *state = space->machine().driver_data<snk6502_state>();
272
266
/* bit 0 flips screen */
274
if (flip_screen_get(space->machine()) != (data & 0x01))
268
if (flip_screen() != (data & 0x01))
276
flip_screen_set(space->machine(), data & 0x01);
277
space->machine().tilemap().mark_all_dirty();
270
flip_screen_set(data & 0x01);
271
machine().tilemap().mark_all_dirty();
280
274
/* bit 1 enables interrupts */
281
state->m_irq_mask = data & 2;
275
m_irq_mask = data & 2;
283
277
/* other bits unused */
286
WRITE8_HANDLER( satansat_backcolor_w )
280
WRITE8_MEMBER(snk6502_state::satansat_backcolor_w)
288
snk6502_state *state = space->machine().driver_data<snk6502_state>();
290
283
/* bits 0-1 select background color. Other bits unused. */
292
if (state->m_backcolor != (data & 0x03))
285
if (m_backcolor != (data & 0x03))
296
state->m_backcolor = data & 0x03;
289
m_backcolor = data & 0x03;
298
291
for (i = 0; i < 16; i += 4)
299
palette_set_color(space->machine(), COLOR(space->machine(), 1, i), state->m_palette[state->m_backcolor + 0x10]);
292
palette_set_color(machine(), COLOR(machine(), 1, i), m_palette[m_backcolor + 0x10]);