80
80
***************************************************************************/
82
WRITE8_HANDLER( superqix_videoram_w )
84
superqix_state *state = space->machine().driver_data<superqix_state>();
85
state->m_videoram[offset] = data;
86
state->m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
89
WRITE8_HANDLER( superqix_bitmapram_w )
91
superqix_state *state = space->machine().driver_data<superqix_state>();
92
if (state->m_bitmapram[offset] != data)
94
int x = 2 * (offset % 128);
95
int y = offset / 128 + 16;
97
state->m_bitmapram[offset] = data;
99
state->m_fg_bitmap[0]->pix16(y, x) = data >> 4;
100
state->m_fg_bitmap[0]->pix16(y, x + 1) = data & 0x0f;
104
WRITE8_HANDLER( superqix_bitmapram2_w )
106
superqix_state *state = space->machine().driver_data<superqix_state>();
107
if (data != state->m_bitmapram2[offset])
109
int x = 2 * (offset % 128);
110
int y = offset / 128 + 16;
112
state->m_bitmapram2[offset] = data;
114
state->m_fg_bitmap[1]->pix16(y, x) = data >> 4;
115
state->m_fg_bitmap[1]->pix16(y, x + 1) = data & 0x0f;
119
WRITE8_HANDLER( pbillian_0410_w )
121
superqix_state *state = space->machine().driver_data<superqix_state>();
82
WRITE8_MEMBER(superqix_state::superqix_videoram_w)
84
m_videoram[offset] = data;
85
m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
88
WRITE8_MEMBER(superqix_state::superqix_bitmapram_w)
90
if (m_bitmapram[offset] != data)
92
int x = 2 * (offset % 128);
93
int y = offset / 128 + 16;
95
m_bitmapram[offset] = data;
97
m_fg_bitmap[0]->pix16(y, x) = data >> 4;
98
m_fg_bitmap[0]->pix16(y, x + 1) = data & 0x0f;
102
WRITE8_MEMBER(superqix_state::superqix_bitmapram2_w)
104
if (data != m_bitmapram2[offset])
106
int x = 2 * (offset % 128);
107
int y = offset / 128 + 16;
109
m_bitmapram2[offset] = data;
111
m_fg_bitmap[1]->pix16(y, x) = data >> 4;
112
m_fg_bitmap[1]->pix16(y, x + 1) = data & 0x0f;
116
WRITE8_MEMBER(superqix_state::pbillian_0410_w)
123
119
-------0 ? [not used]
124
120
------1- coin counter 1
128
124
--5----- flip screen
131
coin_counter_w(space->machine(), 0,data & 0x02);
132
coin_counter_w(space->machine(), 1,data & 0x04);
134
memory_set_bank(space->machine(), "bank1", (data & 0x08) >> 3);
136
state->m_nmi_mask = data & 0x10;
137
flip_screen_set(space->machine(), data & 0x20);
127
coin_counter_w(machine(), 0,data & 0x02);
128
coin_counter_w(machine(), 1,data & 0x04);
130
membank("bank1")->set_entry((data & 0x08) >> 3);
132
m_nmi_mask = data & 0x10;
133
flip_screen_set(data & 0x20);
140
WRITE8_HANDLER( superqix_0410_w )
136
WRITE8_MEMBER(superqix_state::superqix_0410_w)
142
superqix_state *state = space->machine().driver_data<superqix_state>();
143
138
/* bits 0-1 select the tile bank */
144
if (state->m_gfxbank != (data & 0x03))
139
if (m_gfxbank != (data & 0x03))
146
state->m_gfxbank = data & 0x03;
147
state->m_bg_tilemap->mark_all_dirty();
141
m_gfxbank = data & 0x03;
142
m_bg_tilemap->mark_all_dirty();
150
145
/* bit 2 selects which of the two bitmaps to display (for 2 players game) */
151
state->m_show_bitmap = (data & 0x04) >> 2;
146
m_show_bitmap = (data & 0x04) >> 2;
153
148
/* bit 3 enables NMI */
154
state->m_nmi_mask = data & 0x08;
149
m_nmi_mask = data & 0x08;
156
151
/* bits 4-5 control ROM bank */
157
memory_set_bank(space->machine(), "bank1", (data & 0x30) >> 4);
152
membank("bank1")->set_entry((data & 0x30) >> 4);
188
183
drawgfx_transpen(bitmap,cliprect, machine.gfx[1],
191
flip_screen_get(machine), flip_screen_get(machine),
186
state->flip_screen(), state->flip_screen(),
239
234
superqix_state *state = screen.machine().driver_data<superqix_state>();
240
235
state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
241
copybitmap_trans(bitmap,*state->m_fg_bitmap[state->m_show_bitmap],flip_screen_get(screen.machine()),flip_screen_get(screen.machine()),0,0,cliprect,0);
236
copybitmap_trans(bitmap,*state->m_fg_bitmap[state->m_show_bitmap],state->flip_screen(),state->flip_screen(),0,0,cliprect,0);
242
237
superqix_draw_sprites(screen.machine(), bitmap,cliprect);
243
238
state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);