209
210
***************************************************************************/
211
WRITE8_HANDLER( galivan_videoram_w )
212
WRITE8_MEMBER(galivan_state::galivan_videoram_w)
213
galivan_state *state = space->machine().driver_data<galivan_state>();
214
state->m_videoram[offset] = data;
215
state->m_tx_tilemap->mark_tile_dirty(offset & 0x3ff);
214
m_videoram[offset] = data;
215
m_tx_tilemap->mark_tile_dirty(offset & 0x3ff);
218
218
/* Written through port 40 */
219
WRITE8_HANDLER( galivan_gfxbank_w )
219
WRITE8_MEMBER(galivan_state::galivan_gfxbank_w)
221
galivan_state *state = space->machine().driver_data<galivan_state>();
223
222
/* bits 0 and 1 coin counters */
224
coin_counter_w(space->machine(), 0,data & 1);
225
coin_counter_w(space->machine(), 1,data & 2);
223
coin_counter_w(machine(), 0,data & 1);
224
coin_counter_w(machine(), 1,data & 2);
227
226
/* bit 2 flip screen */
228
state->m_flipscreen = data & 0x04;
229
state->m_bg_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
230
state->m_tx_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
227
m_flipscreen = data & 0x04;
228
m_bg_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
229
m_tx_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
232
231
/* bit 7 selects one of two ROM banks for c000-dfff */
233
memory_set_bank(space->machine(), "bank1", (data & 0x80) >> 7);
232
membank("bank1")->set_entry((data & 0x80) >> 7);
235
/* logerror("Address: %04X - port 40 = %02x\n", cpu_get_pc(&space->device()), data); */
234
/* logerror("Address: %04X - port 40 = %02x\n", cpu_get_pc(&space.device()), data); */
238
WRITE8_HANDLER( ninjemak_gfxbank_w )
237
WRITE8_MEMBER(galivan_state::ninjemak_gfxbank_w)
240
galivan_state *state = space->machine().driver_data<galivan_state>();
242
240
/* bits 0 and 1 coin counters */
243
coin_counter_w(space->machine(), 0,data & 1);
244
coin_counter_w(space->machine(), 1,data & 2);
241
coin_counter_w(machine(), 0,data & 1);
242
coin_counter_w(machine(), 1,data & 2);
246
244
/* bit 2 flip screen */
247
state->m_flipscreen = data & 0x04;
248
state->m_bg_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
249
state->m_tx_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
245
m_flipscreen = data & 0x04;
246
m_bg_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
247
m_tx_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
251
249
/* bit 3 unknown */
253
251
/* bit 4 background disable flag */
254
state->m_ninjemak_dispdisable = data & 0x10;
252
m_ninjemak_dispdisable = data & 0x10;
256
254
/* bit 5 sprite flag ??? */
258
256
/* bit 6, 7 ROM bank select */
259
memory_set_bank(space->machine(), "bank1", (data & 0xc0) >> 6);
257
membank("bank1")->set_entry((data & 0xc0) >> 6);
277
275
/* Written through port 41-42 */
278
WRITE8_HANDLER( galivan_scrollx_w )
276
WRITE8_MEMBER(galivan_state::galivan_scrollx_w)
280
galivan_state *state = space->machine().driver_data<galivan_state>();
284
state->m_write_layers = 1;
285
else if (state->m_write_layers)
282
else if (m_write_layers)
287
state->m_layers = data & 0x60;
288
state->m_write_layers = 0;
284
m_layers = data & 0x60;
291
state->m_galivan_scrollx[offset] = data;
288
m_galivan_scrollx[offset] = data;
294
291
/* Written through port 43-44 */
295
WRITE8_HANDLER( galivan_scrolly_w )
292
WRITE8_MEMBER(galivan_state::galivan_scrolly_w)
297
galivan_state *state = space->machine().driver_data<galivan_state>();
298
state->m_galivan_scrolly[offset] = data;
294
m_galivan_scrolly[offset] = data;
309
305
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
311
307
galivan_state *state = machine.driver_data<galivan_state>();
312
const UINT8 *spritepalettebank = machine.region("user1")->base();
308
const UINT8 *spritepalettebank = state->memregion("user1")->base();
313
309
UINT8 *spriteram = state->m_spriteram;
316
312
/* draw the sprites */
317
for (offs = 0; offs < state->m_spriteram_size; offs += 4)
313
for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4)
320
316
int attr = spriteram[offs + 2];