remove space from k007121_device::ctrlram_r (nw)

This commit is contained in:
smf- 2017-12-21 01:15:41 +00:00
parent 80cad1e412
commit b459a270ca
11 changed files with 83 additions and 97 deletions

View File

@ -31,8 +31,7 @@ Dip locations and factory settings verified with manual
INTERRUPT_GEN_MEMBER(contra_state::contra_interrupt) INTERRUPT_GEN_MEMBER(contra_state::contra_interrupt)
{ {
address_space &space = generic_space(); if (m_k007121_1->ctrlram_r(7) & 0x02)
if (m_k007121_1->ctrlram_r(space, 7) & 0x02)
device.execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE); device.execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
} }

View File

@ -25,10 +25,9 @@ TIMER_DEVICE_CALLBACK_MEMBER(fastlane_state::fastlane_scanline)
{ {
int scanline = param; int scanline = param;
address_space &space = generic_space(); if(scanline == 240 && m_k007121->ctrlram_r(7) & 0x02) // vblank irq
if(scanline == 240 && m_k007121->ctrlram_r(space, 7) & 0x02) // vblank irq
m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE); m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
else if(((scanline % 32) == 0) && m_k007121->ctrlram_r(space, 7) & 0x01) // timer irq else if(((scanline % 32) == 0) && m_k007121->ctrlram_r(7) & 0x01) // timer irq
m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
} }

View File

@ -23,15 +23,13 @@
INTERRUPT_GEN_MEMBER(labyrunr_state::labyrunr_vblank_interrupt) INTERRUPT_GEN_MEMBER(labyrunr_state::labyrunr_vblank_interrupt)
{ {
address_space &space = generic_space(); if (m_k007121->ctrlram_r(7) & 0x02)
if (m_k007121->ctrlram_r(space, 7) & 0x02)
device.execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE); device.execute().set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
} }
INTERRUPT_GEN_MEMBER(labyrunr_state::labyrunr_timer_interrupt) INTERRUPT_GEN_MEMBER(labyrunr_state::labyrunr_timer_interrupt)
{ {
address_space &space = generic_space(); if (m_k007121->ctrlram_r(7) & 0x01)
if (m_k007121->ctrlram_r(space, 7) & 0x01)
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
} }

View File

@ -95,7 +95,7 @@ PALETTE_INIT_MEMBER(combatsc_state,combatscb)
TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0) TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0)
{ {
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
uint8_t attributes = m_page[0][tile_index]; uint8_t attributes = m_page[0][tile_index];
int bank = 4 * ((m_vreg & 0x0f) - 1); int bank = 4 * ((m_vreg & 0x0f) - 1);
int number, color; int number, color;
@ -128,7 +128,7 @@ TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info0)
TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info1) TILE_GET_INFO_MEMBER(combatsc_state::get_tile_info1)
{ {
uint8_t ctrl_6 = m_k007121_2->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_2->ctrlram_r(6);
uint8_t attributes = m_page[1][tile_index]; uint8_t attributes = m_page[1][tile_index];
int bank = 4 * ((m_vreg >> 4) - 1); int bank = 4 * ((m_vreg >> 4) - 1);
int number, color; int number, color;
@ -363,8 +363,7 @@ WRITE8_MEMBER(combatsc_state::combatsc_scrollram_w)
void combatsc_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t *source, int circuit, bitmap_ind8 &priority_bitmap, uint32_t pri_mask ) void combatsc_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, const uint8_t *source, int circuit, bitmap_ind8 &priority_bitmap, uint32_t pri_mask )
{ {
k007121_device *k007121 = circuit ? m_k007121_2 : m_k007121_1; k007121_device *k007121 = circuit ? m_k007121_2 : m_k007121_1;
address_space &space = machine().dummy_space(); int base_color = (circuit * 4) * 16 + (k007121->ctrlram_r(6) & 0x10) * 2;
int base_color = (circuit * 4) * 16 + (k007121->ctrlram_r(space, 6) & 0x10) * 2;
k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(circuit), *m_palette, source, base_color, 0, 0, priority_bitmap, pri_mask); k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(circuit), *m_palette, source, base_color, 0, 0, priority_bitmap, pri_mask);
} }
@ -374,8 +373,7 @@ uint32_t combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_in
{ {
int i; int i;
address_space &space = machine().dummy_space(); if (m_k007121_1->ctrlram_r(1) & 0x02)
if (m_k007121_1->ctrlram_r(space, 1) & 0x02)
{ {
m_bg_tilemap[0]->set_scroll_rows(32); m_bg_tilemap[0]->set_scroll_rows(32);
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++)
@ -384,10 +382,10 @@ uint32_t combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_in
else else
{ {
m_bg_tilemap[0]->set_scroll_rows(1); m_bg_tilemap[0]->set_scroll_rows(1);
m_bg_tilemap[0]->set_scrollx(0, m_k007121_1->ctrlram_r(space, 0) | ((m_k007121_1->ctrlram_r(space, 1) & 0x01) << 8)); m_bg_tilemap[0]->set_scrollx(0, m_k007121_1->ctrlram_r(0) | ((m_k007121_1->ctrlram_r(1) & 0x01) << 8));
} }
if (m_k007121_2->ctrlram_r(space, 1) & 0x02) if (m_k007121_2->ctrlram_r(1) & 0x02)
{ {
m_bg_tilemap[1]->set_scroll_rows(32); m_bg_tilemap[1]->set_scroll_rows(32);
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++)
@ -396,11 +394,11 @@ uint32_t combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_in
else else
{ {
m_bg_tilemap[1]->set_scroll_rows(1); m_bg_tilemap[1]->set_scroll_rows(1);
m_bg_tilemap[1]->set_scrollx(0, m_k007121_2->ctrlram_r(space, 0) | ((m_k007121_2->ctrlram_r(space, 1) & 0x01) << 8)); m_bg_tilemap[1]->set_scrollx(0, m_k007121_2->ctrlram_r(0) | ((m_k007121_2->ctrlram_r(1) & 0x01) << 8));
} }
m_bg_tilemap[0]->set_scrolly(0, m_k007121_1->ctrlram_r(space, 2)); m_bg_tilemap[0]->set_scrolly(0, m_k007121_1->ctrlram_r(2));
m_bg_tilemap[1]->set_scrolly(0, m_k007121_2->ctrlram_r(space, 2)); m_bg_tilemap[1]->set_scrolly(0, m_k007121_2->ctrlram_r(2));
screen.priority().fill(0, cliprect); screen.priority().fill(0, cliprect);
@ -430,7 +428,7 @@ uint32_t combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_in
m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 8); m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 8);
} }
//if (m_k007121_1->ctrlram_r(space, 1) & 0x08) //if (m_k007121_1->ctrlram_r(1) & 0x08)
{ {
rectangle clip; rectangle clip;
clip = cliprect; clip = cliprect;
@ -447,12 +445,12 @@ uint32_t combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_in
clip.max_y = clip.min_y + 7; clip.max_y = clip.min_y + 7;
// bit 3 of reg [1] selects if tiles are opaque or have transparent pen. // bit 3 of reg [1] selects if tiles are opaque or have transparent pen.
m_textlayer->draw(screen, bitmap, clip, m_k007121_1->ctrlram_r(space, 1) & 0x08 ? TILEMAP_DRAW_OPAQUE : 0, 0); m_textlayer->draw(screen, bitmap, clip, m_k007121_1->ctrlram_r(1) & 0x08 ? TILEMAP_DRAW_OPAQUE : 0, 0);
} }
} }
/* chop the extreme columns if necessary */ /* chop the extreme columns if necessary */
if (m_k007121_1->ctrlram_r(space, 3) & 0x40) if (m_k007121_1->ctrlram_r(3) & 0x40)
{ {
rectangle clip; rectangle clip;

View File

@ -60,10 +60,10 @@ PALETTE_INIT_MEMBER(contra_state, contra)
TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info) TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info)
{ {
uint8_t ctrl_3 = m_k007121_1->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121_1->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121_1->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121_1->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121_1->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121_1->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
int attr = m_fg_cram[tile_index]; int attr = m_fg_cram[tile_index];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03;
@ -87,10 +87,10 @@ TILE_GET_INFO_MEMBER(contra_state::get_fg_tile_info)
TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info) TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info)
{ {
uint8_t ctrl_3 = m_k007121_2->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121_2->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121_2->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121_2->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121_2->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121_2->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121_2->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_2->ctrlram_r(6);
int attr = m_bg_cram[tile_index]; int attr = m_bg_cram[tile_index];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03;
@ -115,8 +115,8 @@ TILE_GET_INFO_MEMBER(contra_state::get_bg_tile_info)
TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info) TILE_GET_INFO_MEMBER(contra_state::get_tx_tile_info)
{ {
uint8_t ctrl_5 = m_k007121_1->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121_1->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
int attr = m_tx_cram[tile_index]; int attr = m_tx_cram[tile_index];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03;
@ -210,7 +210,7 @@ WRITE8_MEMBER(contra_state::contra_text_cram_w)
WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w) WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w)
{ {
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(space, 6); uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
if (offset == 3) if (offset == 3)
{ {
@ -234,7 +234,7 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_0_w)
WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w) WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w)
{ {
uint8_t ctrl_6 = m_k007121_2->ctrlram_r(space, 6); uint8_t ctrl_6 = m_k007121_2->ctrlram_r(6);
if (offset == 3) if (offset == 3)
{ {
@ -265,8 +265,7 @@ WRITE8_MEMBER(contra_state::contra_K007121_ctrl_1_w)
void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int bank ) void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, int bank )
{ {
k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1; k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1;
address_space &space = machine().dummy_space(); int base_color = (k007121->ctrlram_r(6) & 0x30) * 2;
int base_color = (k007121->ctrlram_r(space, 6) & 0x30) * 2;
const uint8_t *source; const uint8_t *source;
if (bank == 0) if (bank == 0)
@ -279,11 +278,10 @@ void contra_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect,
uint32_t contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) uint32_t contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
address_space &space = machine().dummy_space(); uint8_t ctrl_1_0 = m_k007121_1->ctrlram_r(0);
uint8_t ctrl_1_0 = m_k007121_1->ctrlram_r(space, 0); uint8_t ctrl_1_2 = m_k007121_1->ctrlram_r(2);
uint8_t ctrl_1_2 = m_k007121_1->ctrlram_r(space, 2); uint8_t ctrl_2_0 = m_k007121_2->ctrlram_r(0);
uint8_t ctrl_2_0 = m_k007121_2->ctrlram_r(space, 0); uint8_t ctrl_2_2 = m_k007121_2->ctrlram_r(2);
uint8_t ctrl_2_2 = m_k007121_2->ctrlram_r(space, 2);
rectangle bg_finalclip = m_bg_clip; rectangle bg_finalclip = m_bg_clip;
rectangle fg_finalclip = m_fg_clip; rectangle fg_finalclip = m_fg_clip;
rectangle tx_finalclip = m_tx_clip; rectangle tx_finalclip = m_tx_clip;

View File

@ -31,9 +31,9 @@ PALETTE_INIT_MEMBER(fastlane_state, fastlane)
TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0) TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0)
{ {
uint8_t ctrl_3 = m_k007121->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121->ctrlram_r(5);
int attr = m_videoram1[tile_index]; int attr = m_videoram1[tile_index];
int code = m_videoram1[tile_index + 0x400]; int code = m_videoram1[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
@ -58,9 +58,9 @@ TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info0)
TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1) TILE_GET_INFO_MEMBER(fastlane_state::get_tile_info1)
{ {
uint8_t ctrl_3 = m_k007121->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121->ctrlram_r(5);
int attr = m_videoram2[tile_index]; int attr = m_videoram2[tile_index];
int code = m_videoram2[tile_index + 0x400]; int code = m_videoram2[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
@ -139,12 +139,11 @@ uint32_t fastlane_state::screen_update_fastlane(screen_device &screen, bitmap_in
finalclip1 &= cliprect; finalclip1 &= cliprect;
/* set scroll registers */ /* set scroll registers */
address_space &space = machine().dummy_space(); xoffs = m_k007121->ctrlram_r(0);
xoffs = m_k007121->ctrlram_r(space, 0);
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++)
m_layer0->set_scrollx(i, m_k007121_regs[0x20 + i] + xoffs - 40); m_layer0->set_scrollx(i, m_k007121_regs[0x20 + i] + xoffs - 40);
m_layer0->set_scrolly(0, m_k007121->ctrlram_r(space, 2)); m_layer0->set_scrolly(0, m_k007121->ctrlram_r(2));
m_layer0->draw(screen, bitmap, finalclip0, 0, 0); m_layer0->draw(screen, bitmap, finalclip0, 0, 0);
m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram, 0, 40, 0, screen.priority(), (uint32_t)-1); m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram, 0, 40, 0, screen.priority(), (uint32_t)-1);

View File

@ -18,11 +18,11 @@
TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_A) TILE_GET_INFO_MEMBER(flkatck_state::get_tile_info_A)
{ {
uint8_t ctrl_0 = m_k007121->ctrlram_r(generic_space(), 0); uint8_t ctrl_0 = m_k007121->ctrlram_r(0);
uint8_t ctrl_2 = m_k007121->ctrlram_r(generic_space(), 2); uint8_t ctrl_2 = m_k007121->ctrlram_r(2);
uint8_t ctrl_3 = m_k007121->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121->ctrlram_r(5);
int attr = m_k007121_ram[tile_index]; int attr = m_k007121_ram[tile_index];
int code = m_k007121_ram[tile_index + 0x400]; int code = m_k007121_ram[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
@ -97,7 +97,7 @@ WRITE8_MEMBER(flkatck_state::flkatck_k007121_regs_w)
switch (offset) switch (offset)
{ {
case 0x04: /* ROM bank select */ case 0x04: /* ROM bank select */
if (data != m_k007121->ctrlram_r(space, 4)) if (data != m_k007121->ctrlram_r(4))
machine().tilemap().mark_all_dirty(); machine().tilemap().mark_all_dirty();
break; break;
@ -130,7 +130,6 @@ uint32_t flkatck_state::screen_update_flkatck(screen_device &screen, bitmap_ind1
rectangle clip[2]; rectangle clip[2];
const rectangle &visarea = screen.visible_area(); const rectangle &visarea = screen.visible_area();
address_space &space = machine().dummy_space();
if (m_flipscreen) if (m_flipscreen)
{ {
clip[0] = visarea; clip[0] = visarea;
@ -139,8 +138,8 @@ uint32_t flkatck_state::screen_update_flkatck(screen_device &screen, bitmap_ind1
clip[1] = visarea; clip[1] = visarea;
clip[1].min_x = clip[1].max_x - 40; clip[1].min_x = clip[1].max_x - 40;
m_k007121_tilemap[0]->set_scrollx(0, m_k007121->ctrlram_r(space, 0) - 56 ); m_k007121_tilemap[0]->set_scrollx(0, m_k007121->ctrlram_r(0) - 56 );
m_k007121_tilemap[0]->set_scrolly(0, m_k007121->ctrlram_r(space, 2)); m_k007121_tilemap[0]->set_scrolly(0, m_k007121->ctrlram_r(2));
m_k007121_tilemap[1]->set_scrollx(0, -16); m_k007121_tilemap[1]->set_scrollx(0, -16);
} }
else else
@ -152,8 +151,8 @@ uint32_t flkatck_state::screen_update_flkatck(screen_device &screen, bitmap_ind1
clip[1].max_x = 39; clip[1].max_x = 39;
clip[1].min_x = 0; clip[1].min_x = 0;
m_k007121_tilemap[0]->set_scrollx(0, m_k007121->ctrlram_r(space, 0) - 40 ); m_k007121_tilemap[0]->set_scrollx(0, m_k007121->ctrlram_r(0) - 40 );
m_k007121_tilemap[0]->set_scrolly(0, m_k007121->ctrlram_r(space, 2)); m_k007121_tilemap[0]->set_scrolly(0, m_k007121->ctrlram_r(2));
m_k007121_tilemap[1]->set_scrollx(0, 0); m_k007121_tilemap[1]->set_scrollx(0, 0);
} }

View File

@ -56,8 +56,8 @@ TILEMAP_MAPPER_MEMBER(hcastle_state::tilemap_scan)
TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info) TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info)
{ {
uint8_t ctrl_5 = m_k007121_1->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121_1->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121_1->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_1->ctrlram_r(6);
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03;
int bit2 = (ctrl_5 >> 4) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03;
@ -79,8 +79,8 @@ TILE_GET_INFO_MEMBER(hcastle_state::get_fg_tile_info)
TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info) TILE_GET_INFO_MEMBER(hcastle_state::get_bg_tile_info)
{ {
uint8_t ctrl_5 = m_k007121_2->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121_2->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121_2->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121_2->ctrlram_r(6);
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
int bit1 = (ctrl_5 >> 2) & 0x03; int bit1 = (ctrl_5 >> 2) & 0x03;
int bit2 = (ctrl_5 >> 4) & 0x03; int bit2 = (ctrl_5 >> 4) & 0x03;
@ -183,8 +183,7 @@ WRITE8_MEMBER(hcastle_state::hcastle_pf2_control_w)
void hcastle_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, uint8_t *sbank, int bank ) void hcastle_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, uint8_t *sbank, int bank )
{ {
k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1; k007121_device *k007121 = bank ? m_k007121_2 : m_k007121_1;
address_space &space = machine().dummy_space(); int base_color = (k007121->ctrlram_r(6) & 0x30) * 2;
int base_color = (k007121->ctrlram_r(space, 6) & 0x30) * 2;
int bank_base = (bank == 0) ? 0x4000 * (m_gfx_bank & 1) : 0; int bank_base = (bank == 0) ? 0x4000 * (m_gfx_bank & 1) : 0;
k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(bank), *m_palette, sbank, base_color, 0, bank_base, priority_bitmap, (uint32_t)-1); k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(bank), *m_palette, sbank, base_color, 0, bank_base, priority_bitmap, (uint32_t)-1);
@ -194,16 +193,14 @@ void hcastle_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
uint32_t hcastle_state::screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) uint32_t hcastle_state::screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
address_space &space = machine().dummy_space(); uint8_t ctrl_1_0 = m_k007121_1->ctrlram_r(0);
uint8_t ctrl_1_1 = m_k007121_1->ctrlram_r(1);
uint8_t ctrl_1_0 = m_k007121_1->ctrlram_r(space, 0); uint8_t ctrl_1_2 = m_k007121_1->ctrlram_r(2);
uint8_t ctrl_1_1 = m_k007121_1->ctrlram_r(space, 1); uint8_t ctrl_1_3 = m_k007121_1->ctrlram_r(3);
uint8_t ctrl_1_2 = m_k007121_1->ctrlram_r(space, 2); uint8_t ctrl_2_0 = m_k007121_2->ctrlram_r(0);
uint8_t ctrl_1_3 = m_k007121_1->ctrlram_r(space, 3); uint8_t ctrl_2_1 = m_k007121_2->ctrlram_r(1);
uint8_t ctrl_2_0 = m_k007121_2->ctrlram_r(space, 0); uint8_t ctrl_2_2 = m_k007121_2->ctrlram_r(2);
uint8_t ctrl_2_1 = m_k007121_2->ctrlram_r(space, 1); uint8_t ctrl_2_3 = m_k007121_2->ctrlram_r(3);
uint8_t ctrl_2_2 = m_k007121_2->ctrlram_r(space, 2);
uint8_t ctrl_2_3 = m_k007121_2->ctrlram_r(space, 3);
m_pf1_bankbase = 0x0000; m_pf1_bankbase = 0x0000;
m_pf2_bankbase = 0x4000 * ((m_gfx_bank & 2) >> 1); m_pf2_bankbase = 0x4000 * ((m_gfx_bank & 2) >> 1);

View File

@ -157,7 +157,7 @@ void k007121_device::device_reset()
DEVICE HANDLERS DEVICE HANDLERS
*****************************************************************************/ *****************************************************************************/
READ8_MEMBER( k007121_device::ctrlram_r ) uint8_t k007121_device::ctrlram_r(int offset)
{ {
assert(offset < 8); assert(offset < 8);

View File

@ -13,7 +13,7 @@ public:
static void static_set_palette_tag(device_t &device, const char *tag); static void static_set_palette_tag(device_t &device, const char *tag);
DECLARE_READ8_MEMBER( ctrlram_r ); uint8_t ctrlram_r(int offset);
DECLARE_WRITE8_MEMBER( ctrl_w ); DECLARE_WRITE8_MEMBER( ctrl_w );
/* shall we move source in the interface? */ /* shall we move source in the interface? */

View File

@ -49,10 +49,10 @@ PALETTE_INIT_MEMBER(labyrunr_state, labyrunr)
TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0) TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0)
{ {
uint8_t ctrl_3 = m_k007121->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121->ctrlram_r(6);
int attr = m_videoram1[tile_index]; int attr = m_videoram1[tile_index];
int code = m_videoram1[tile_index + 0x400]; int code = m_videoram1[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
@ -78,10 +78,10 @@ TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0)
TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1) TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1)
{ {
uint8_t ctrl_3 = m_k007121->ctrlram_r(generic_space(), 3); uint8_t ctrl_3 = m_k007121->ctrlram_r(3);
uint8_t ctrl_4 = m_k007121->ctrlram_r(generic_space(), 4); uint8_t ctrl_4 = m_k007121->ctrlram_r(4);
uint8_t ctrl_5 = m_k007121->ctrlram_r(generic_space(), 5); uint8_t ctrl_5 = m_k007121->ctrlram_r(5);
uint8_t ctrl_6 = m_k007121->ctrlram_r(generic_space(), 6); uint8_t ctrl_6 = m_k007121->ctrlram_r(6);
int attr = m_videoram2[tile_index]; int attr = m_videoram2[tile_index];
int code = m_videoram2[tile_index + 0x400]; int code = m_videoram2[tile_index + 0x400];
int bit0 = (ctrl_5 >> 0) & 0x03; int bit0 = (ctrl_5 >> 0) & 0x03;
@ -159,14 +159,13 @@ WRITE8_MEMBER(labyrunr_state::labyrunr_vram2_w)
uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
address_space &space = machine().dummy_space(); uint8_t ctrl_0 = m_k007121->ctrlram_r(0);
uint8_t ctrl_0 = m_k007121->ctrlram_r(space, 0);
rectangle finalclip0, finalclip1; rectangle finalclip0, finalclip1;
screen.priority().fill(0, cliprect); screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->black_pen(), cliprect); bitmap.fill(m_palette->black_pen(), cliprect);
if (~m_k007121->ctrlram_r(space, 3) & 0x20) if (~m_k007121->ctrlram_r(3) & 0x20)
{ {
int i; int i;
@ -182,14 +181,14 @@ uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_in
for(i = 0; i < 32; i++) for(i = 0; i < 32; i++)
{ {
/* enable colscroll */ /* enable colscroll */
if((m_k007121->ctrlram_r(space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's if((m_k007121->ctrlram_r(1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
m_layer0->set_scrolly((i + 2) & 0x1f, m_k007121->ctrlram_r(space, 2) + m_scrollram[i]); m_layer0->set_scrolly((i + 2) & 0x1f, m_k007121->ctrlram_r(2) + m_scrollram[i]);
else else
m_layer0->set_scrolly((i + 2) & 0x1f, m_k007121->ctrlram_r(space, 2)); m_layer0->set_scrolly((i + 2) & 0x1f, m_k007121->ctrlram_r(2));
} }
m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(0), 0); m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(0), 0);
m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram,(m_k007121->ctrlram_r(space, 6) & 0x30) * 2, 40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5); m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram,(m_k007121->ctrlram_r(6) & 0x30) * 2, 40,0,screen.priority(),(m_k007121->ctrlram_r(3) & 0x40) >> 5);
m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(1), 0); m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(1), 0);
/* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */ /* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */
m_layer1->draw(screen, bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0); m_layer1->draw(screen, bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
@ -203,7 +202,7 @@ uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_in
finalclip0.min_y = finalclip1.min_y = cliprect.min_y; finalclip0.min_y = finalclip1.min_y = cliprect.min_y;
finalclip0.max_y = finalclip1.max_y = cliprect.max_y; finalclip0.max_y = finalclip1.max_y = cliprect.max_y;
if(m_k007121->ctrlram_r(space, 1) & 1) if(m_k007121->ctrlram_r(1) & 1)
{ {
finalclip0.min_x = cliprect.max_x - ctrl_0 + 8; finalclip0.min_x = cliprect.max_x - ctrl_0 + 8;
finalclip0.max_x = cliprect.max_x; finalclip0.max_x = cliprect.max_x;
@ -256,7 +255,7 @@ uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_in
if(use_clip3[0]) if(use_clip3[0])
m_layer0->draw(screen, bitmap, finalclip3, TILEMAP_DRAW_CATEGORY(0), 0); m_layer0->draw(screen, bitmap, finalclip3, TILEMAP_DRAW_CATEGORY(0), 0);
m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram, (m_k007121->ctrlram_r(space, 6) & 0x30) * 2,40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5); m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram, (m_k007121->ctrlram_r(6) & 0x30) * 2,40,0,screen.priority(),(m_k007121->ctrlram_r(3) & 0x40) >> 5);
m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_CATEGORY(1), 0); m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_CATEGORY(1), 0);
if(use_clip3[0]) if(use_clip3[0])