66
66
***************************************************************************/
68
WRITE8_HANDLER( gng_fgvideoram_w )
70
gng_state *state = space->machine().driver_data<gng_state>();
71
state->m_fgvideoram[offset] = data;
72
state->m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
75
WRITE8_HANDLER( gng_bgvideoram_w )
77
gng_state *state = space->machine().driver_data<gng_state>();
78
state->m_bgvideoram[offset] = data;
79
state->m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
83
WRITE8_HANDLER( gng_bgscrollx_w )
85
gng_state *state = space->machine().driver_data<gng_state>();
86
state->m_scrollx[offset] = data;
87
state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0] + 256 * state->m_scrollx[1]);
90
WRITE8_HANDLER( gng_bgscrolly_w )
92
gng_state *state = space->machine().driver_data<gng_state>();
93
state->m_scrolly[offset] = data;
94
state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0] + 256 * state->m_scrolly[1]);
98
WRITE8_HANDLER( gng_flipscreen_w )
100
flip_screen_set(space->machine(), ~data & 1);
68
WRITE8_MEMBER(gng_state::gng_fgvideoram_w)
70
m_fgvideoram[offset] = data;
71
m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
74
WRITE8_MEMBER(gng_state::gng_bgvideoram_w)
76
m_bgvideoram[offset] = data;
77
m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
81
WRITE8_MEMBER(gng_state::gng_bgscrollx_w)
83
m_scrollx[offset] = data;
84
m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
87
WRITE8_MEMBER(gng_state::gng_bgscrolly_w)
89
m_scrolly[offset] = data;
90
m_bg_tilemap->set_scrolly(0, m_scrolly[0] + 256 * m_scrolly[1]);
94
WRITE8_MEMBER(gng_state::gng_flipscreen_w)
96
flip_screen_set(~data & 1);
111
107
static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect )
113
UINT8 *buffered_spriteram = machine.generic.buffered_spriteram.u8;
109
gng_state *state = machine.driver_data<gng_state>();
110
UINT8 *buffered_spriteram = state->m_spriteram->buffer();
114
111
const gfx_element *gfx = machine.gfx[2];
118
for (offs = machine.generic.spriteram_size - 4; offs >= 0; offs -= 4)
115
for (offs = state->m_spriteram->bytes() - 4; offs >= 0; offs -= 4)
120
117
UINT8 attributes = buffered_spriteram[offs + 1];
121
118
int sx = buffered_spriteram[offs + 3] - 0x100 * (attributes & 0x01);
149
146
state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
158
address_space *space = screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
160
buffer_spriteram_w(space, 0, 0);