115
116
SET_TILE_INFO(0, code, color, 0);
118
static void tile_mark_dirty(tceptor_state *state, int offset)
119
void tceptor_state::tile_mark_dirty(int offset)
141
state->m_tx_tilemap->mark_tile_dirty(x * 28 + y);
142
m_tx_tilemap->mark_tile_dirty(x * 28 + y);
145
WRITE8_HANDLER( tceptor_tile_ram_w )
146
WRITE8_MEMBER(tceptor_state::tceptor_tile_ram_w)
147
tceptor_state *state = space->machine().driver_data<tceptor_state>();
148
if (state->m_tile_ram[offset] != data)
148
if (m_tile_ram[offset] != data)
150
state->m_tile_ram[offset] = data;
151
tile_mark_dirty(state, offset);
150
m_tile_ram[offset] = data;
151
tile_mark_dirty(offset);
155
WRITE8_HANDLER( tceptor_tile_attr_w )
155
WRITE8_MEMBER(tceptor_state::tceptor_tile_attr_w)
157
tceptor_state *state = space->machine().driver_data<tceptor_state>();
158
if (state->m_tile_attr[offset] != data)
157
if (m_tile_attr[offset] != data)
160
state->m_tile_attr[offset] = data;
161
tile_mark_dirty(state, offset);
159
m_tile_attr[offset] = data;
160
tile_mark_dirty(offset);
185
184
SET_TILE_INFO(state->m_bg, code, color, 0);
188
WRITE8_HANDLER( tceptor_bg_ram_w )
187
WRITE8_MEMBER(tceptor_state::tceptor_bg_ram_w)
190
tceptor_state *state = space->machine().driver_data<tceptor_state>();
191
state->m_bg_ram[offset] = data;
189
m_bg_ram[offset] = data;
194
192
if (offset < 0x800)
195
state->m_bg1_tilemap->mark_tile_dirty(offset);
193
m_bg1_tilemap->mark_tile_dirty(offset);
197
state->m_bg2_tilemap->mark_tile_dirty(offset - 0x800);
195
m_bg2_tilemap->mark_tile_dirty(offset - 0x800);
200
WRITE8_HANDLER( tceptor_bg_scroll_w )
198
WRITE8_MEMBER(tceptor_state::tceptor_bg_scroll_w)
202
tceptor_state *state = space->machine().driver_data<tceptor_state>();
206
state->m_bg1_scroll_x &= 0xff;
207
state->m_bg1_scroll_x |= data << 8;
203
m_bg1_scroll_x &= 0xff;
204
m_bg1_scroll_x |= data << 8;
210
state->m_bg1_scroll_x &= 0xff00;
211
state->m_bg1_scroll_x |= data;
207
m_bg1_scroll_x &= 0xff00;
208
m_bg1_scroll_x |= data;
214
state->m_bg1_scroll_y = data;
211
m_bg1_scroll_y = data;
218
state->m_bg2_scroll_x &= 0xff;
219
state->m_bg2_scroll_x |= data << 8;
215
m_bg2_scroll_x &= 0xff;
216
m_bg2_scroll_x |= data << 8;
222
state->m_bg2_scroll_x &= 0xff00;
223
state->m_bg2_scroll_x |= data;
219
m_bg2_scroll_x &= 0xff00;
220
m_bg2_scroll_x |= data;
226
state->m_bg2_scroll_y = data;
223
m_bg2_scroll_y = data;
264
261
auto_free(machine, buffer);
266
263
/* decode the graphics */
267
machine.gfx[gfx_index] = gfx_element_alloc(machine, &bg_layout, machine.region(region)->base(), 64, 2048);
264
machine.gfx[gfx_index] = gfx_element_alloc(machine, &bg_layout, machine.root_device().memregion(region)->base(), 64, 2048);
270
267
static void decode_sprite(running_machine &machine, int gfx_index, const gfx_layout *layout, const void *data)
297
UINT8 *src = machine.region(region)->base();
298
int len = machine.region(region)->bytes();
294
UINT8 *src = machine.root_device().memregion(region)->base();
295
int len = machine.root_device().memregion(region)->bytes();
349
UINT8 *src = machine.region(region)->base();
350
int len = machine.region(region)->bytes();
346
UINT8 *src = machine.root_device().memregion(region)->base();
347
int len = machine.root_device().memregion(region)->bytes();
351
348
int total = spr32_layout.total;
352
349
int size = spr32_layout.charincrement / 8;