mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
Merge pull request #6525 from cam900/nmk16_scrolldx
Use scrolldx for tilemap shifting in some NMK hardwares
This commit is contained in:
commit
d2da768f1f
@ -205,6 +205,7 @@ TILE_GET_INFO_MEMBER(ddealer_state::get_back_tile_info)
|
|||||||
void ddealer_state::video_start()
|
void ddealer_state::video_start()
|
||||||
{
|
{
|
||||||
m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddealer_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
|
m_back_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ddealer_state::get_back_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
|
||||||
|
m_back_tilemap->set_scrolldx(64,64);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ddealer_state::draw_video_layer(uint16_t* vreg_base, uint16_t* top, uint16_t* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy)
|
void ddealer_state::draw_video_layer(uint16_t* vreg_base, uint16_t* top, uint16_t* bottom, bitmap_ind16 &bitmap, const rectangle &cliprect, int flipy)
|
||||||
@ -292,7 +293,6 @@ void ddealer_state::draw_video_layer(uint16_t* vreg_base, uint16_t* top, uint16_
|
|||||||
|
|
||||||
uint32_t ddealer_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
uint32_t ddealer_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_back_tilemap->set_scrollx(0, -64);
|
|
||||||
m_back_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
m_back_tilemap->draw(screen, bitmap, cliprect, 0, 0);
|
||||||
|
|
||||||
/* the fg tilemap handling is a little hacky right now,
|
/* the fg tilemap handling is a little hacky right now,
|
||||||
@ -586,33 +586,9 @@ static INPUT_PORTS_START( ddealer )
|
|||||||
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
PORT_BIT( 0xff00, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static const gfx_layout charlayout =
|
|
||||||
{
|
|
||||||
8,8,
|
|
||||||
RGN_FRAC(1,1),
|
|
||||||
4,
|
|
||||||
{ 0, 1, 2, 3 },
|
|
||||||
{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
|
|
||||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
|
|
||||||
32*8
|
|
||||||
};
|
|
||||||
|
|
||||||
static const gfx_layout tilelayout =
|
|
||||||
{
|
|
||||||
16,16,
|
|
||||||
RGN_FRAC(1,1),
|
|
||||||
4,
|
|
||||||
{ 0, 1, 2, 3 },
|
|
||||||
{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
|
|
||||||
16*32+0*4, 16*32+1*4, 16*32+2*4, 16*32+3*4, 16*32+4*4, 16*32+5*4, 16*32+6*4, 16*32+7*4 },
|
|
||||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
|
|
||||||
8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
|
|
||||||
32*32
|
|
||||||
};
|
|
||||||
|
|
||||||
static GFXDECODE_START( gfx_ddealer )
|
static GFXDECODE_START( gfx_ddealer )
|
||||||
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0x000, 16 )
|
GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x4_packed_msb, 0x000, 16 )
|
||||||
GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0x100, 16 )
|
GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x100, 16 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
void ddealer_state::machine_start()
|
void ddealer_state::machine_start()
|
||||||
|
@ -383,7 +383,7 @@ void nmk16_state::scroll_w(offs_t offset, u8 data)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_bg_tilemap[Layer]->set_scrollx(0,((m_scroll[Layer][0] << 8) | m_scroll[Layer][1]) - m_videoshift);
|
m_bg_tilemap[Layer]->set_scrollx(0,(m_scroll[Layer][0] << 8) | m_scroll[Layer][1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,22 +262,9 @@ static INPUT_PORTS_START( patapata )
|
|||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
|
||||||
static const gfx_layout tilelayout =
|
|
||||||
{
|
|
||||||
16,16,
|
|
||||||
RGN_FRAC(1,1),
|
|
||||||
4,
|
|
||||||
{ 0, 1, 2, 3 },
|
|
||||||
{ 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4,
|
|
||||||
16*32+0*4, 16*32+1*4, 16*32+2*4, 16*32+3*4, 16*32+4*4, 16*32+5*4, 16*32+6*4, 16*32+7*4 },
|
|
||||||
{ 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
|
|
||||||
8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
|
|
||||||
32*32
|
|
||||||
};
|
|
||||||
|
|
||||||
static GFXDECODE_START( gfx_patapata )
|
static GFXDECODE_START( gfx_patapata )
|
||||||
GFXDECODE_ENTRY( "tilesa", 0, tilelayout, 0x000, 16 )
|
GFXDECODE_ENTRY( "tilesa", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x000, 16 )
|
||||||
GFXDECODE_ENTRY( "tilesb", 0, tilelayout, 0x100, 16 )
|
GFXDECODE_ENTRY( "tilesb", 0, gfx_8x8x4_col_2x2_group_packed_msb, 0x100, 16 )
|
||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline)
|
TIMER_DEVICE_CALLBACK_MEMBER(patapata_state::scanline)
|
||||||
|
@ -196,7 +196,7 @@ void quizpani_state::quizpani(machine_config &config)
|
|||||||
screen.set_refresh_hz(60);
|
screen.set_refresh_hz(60);
|
||||||
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||||
screen.set_size(64*8, 32*8);
|
screen.set_size(64*8, 32*8);
|
||||||
screen.set_visarea(0*8, 48*8-1, 0*8, 28*8-1);
|
screen.set_visarea(0*8, 48*8-1, 2*8, 30*8-1);
|
||||||
screen.set_screen_update(FUNC(quizpani_state::screen_update));
|
screen.set_screen_update(FUNC(quizpani_state::screen_update));
|
||||||
screen.set_palette("palette");
|
screen.set_palette("palette");
|
||||||
|
|
||||||
|
@ -117,15 +117,12 @@ protected:
|
|||||||
optional_ioport_array<2> m_dsw_io;
|
optional_ioport_array<2> m_dsw_io;
|
||||||
optional_ioport_array<3> m_in_io;
|
optional_ioport_array<3> m_in_io;
|
||||||
|
|
||||||
int m_sprclk;
|
|
||||||
int m_sprlimit;
|
|
||||||
int m_tilerambank;
|
int m_tilerambank;
|
||||||
int m_sprdma_base;
|
int m_sprdma_base;
|
||||||
int mask[4*2];
|
int mask[4*2];
|
||||||
std::unique_ptr<u16[]> m_spriteram_old;
|
std::unique_ptr<u16[]> m_spriteram_old;
|
||||||
std::unique_ptr<u16[]> m_spriteram_old2;
|
std::unique_ptr<u16[]> m_spriteram_old2;
|
||||||
int m_bgbank;
|
int m_bgbank;
|
||||||
int m_videoshift;
|
|
||||||
int m_bioship_background_bank;
|
int m_bioship_background_bank;
|
||||||
tilemap_t *m_bg_tilemap[2];
|
tilemap_t *m_bg_tilemap[2];
|
||||||
tilemap_t *m_tx_tilemap;
|
tilemap_t *m_tx_tilemap;
|
||||||
|
@ -77,9 +77,7 @@ void nmk16_state::video_init()
|
|||||||
m_spriteram_old = make_unique_clear<u16[]>(0x1000/2);
|
m_spriteram_old = make_unique_clear<u16[]>(0x1000/2);
|
||||||
m_spriteram_old2 = make_unique_clear<u16[]>(0x1000/2);
|
m_spriteram_old2 = make_unique_clear<u16[]>(0x1000/2);
|
||||||
|
|
||||||
m_videoshift = 0; /* 256x224 screen, no shift */
|
|
||||||
m_tilerambank = 0;
|
m_tilerambank = 0;
|
||||||
m_sprclk = 0;
|
|
||||||
|
|
||||||
save_pointer(NAME(m_spriteram_old), 0x1000/2);
|
save_pointer(NAME(m_spriteram_old), 0x1000/2);
|
||||||
save_pointer(NAME(m_spriteram_old2), 0x1000/2);
|
save_pointer(NAME(m_spriteram_old2), 0x1000/2);
|
||||||
@ -89,13 +87,11 @@ void nmk16_state::video_init()
|
|||||||
save_item(NAME(m_scroll[1]));
|
save_item(NAME(m_scroll[1]));
|
||||||
save_item(NAME(m_vscroll));
|
save_item(NAME(m_vscroll));
|
||||||
save_item(NAME(m_tilerambank));
|
save_item(NAME(m_tilerambank));
|
||||||
save_item(NAME(m_sprclk));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VIDEO_START_MEMBER(nmk16_state, bioship)
|
VIDEO_START_MEMBER(nmk16_state, bioship)
|
||||||
{
|
{
|
||||||
m_sprlimit = 384 * 263;
|
|
||||||
// ROM Based Tilemap
|
// ROM Based Tilemap
|
||||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bioship_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bioship_get_bg_tile_info)), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
||||||
m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<1, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<1, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
||||||
@ -111,7 +107,6 @@ VIDEO_START_MEMBER(nmk16_state, bioship)
|
|||||||
|
|
||||||
VIDEO_START_MEMBER(nmk16_state,macross)
|
VIDEO_START_MEMBER(nmk16_state,macross)
|
||||||
{
|
{
|
||||||
m_sprlimit = 384 * 263;
|
|
||||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
||||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
|
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
|
||||||
|
|
||||||
@ -131,14 +126,15 @@ VIDEO_START_MEMBER(nmk16_state,strahl)
|
|||||||
|
|
||||||
VIDEO_START_MEMBER(nmk16_state,macross2)
|
VIDEO_START_MEMBER(nmk16_state,macross2)
|
||||||
{
|
{
|
||||||
m_sprlimit = 512 * 263; // not verified
|
|
||||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, NAME((&nmk16_state::common_get_bg_tile_info<0, 1>))), tilemap_mapper_delegate(*this, FUNC(nmk16_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
||||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
|
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
|
||||||
|
|
||||||
m_tx_tilemap->set_transparent_pen(15);
|
m_tx_tilemap->set_transparent_pen(15);
|
||||||
|
|
||||||
video_init();
|
video_init();
|
||||||
m_videoshift = 64; // 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
|
// 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
|
||||||
|
m_bg_tilemap[0]->set_scrolldx(64,64);
|
||||||
|
m_tx_tilemap->set_scrolldx(64,64);
|
||||||
}
|
}
|
||||||
|
|
||||||
VIDEO_START_MEMBER(nmk16_state,gunnail)
|
VIDEO_START_MEMBER(nmk16_state,gunnail)
|
||||||
@ -149,11 +145,11 @@ VIDEO_START_MEMBER(nmk16_state,gunnail)
|
|||||||
|
|
||||||
VIDEO_START_MEMBER(nmk16_state, bjtwin)
|
VIDEO_START_MEMBER(nmk16_state, bjtwin)
|
||||||
{
|
{
|
||||||
m_sprlimit = 512 * 263; // not verified
|
|
||||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bjtwin_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
|
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(nmk16_state::bjtwin_get_bg_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 64, 32);
|
||||||
|
|
||||||
video_init();
|
video_init();
|
||||||
m_videoshift = 64; // 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
|
// 384x224 screen, leftmost 64 pixels have to be retrieved from the other side of the tilemap (!)
|
||||||
|
m_bg_tilemap[0]->set_scrolldx(64,64);
|
||||||
}
|
}
|
||||||
|
|
||||||
void nmk16_state::mustang_scroll_w(u16 data)
|
void nmk16_state::mustang_scroll_w(u16 data)
|
||||||
@ -180,7 +176,7 @@ void nmk16_state::mustang_scroll_w(u16 data)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bg_tilemap[0]->set_scrollx(0,m_mustang_bg_xscroll - m_videoshift);
|
m_bg_tilemap[0]->set_scrollx(0,m_mustang_bg_xscroll);
|
||||||
}
|
}
|
||||||
|
|
||||||
void nmk16_state::bjtwin_scroll_w(offs_t offset, u8 data)
|
void nmk16_state::bjtwin_scroll_w(offs_t offset, u8 data)
|
||||||
@ -214,7 +210,7 @@ void nmk16_state::manybloc_scroll_w(offs_t offset, u16 data, u16 mem_mask)
|
|||||||
{
|
{
|
||||||
COMBINE_DATA(&m_gunnail_scrollram[offset]);
|
COMBINE_DATA(&m_gunnail_scrollram[offset]);
|
||||||
|
|
||||||
m_bg_tilemap[0]->set_scrollx(0,m_gunnail_scrollram[0x82/2]-m_videoshift);
|
m_bg_tilemap[0]->set_scrollx(0,m_gunnail_scrollram[0x82/2]);
|
||||||
m_bg_tilemap[0]->set_scrolly(0,m_gunnail_scrollram[0xc2/2]);
|
m_bg_tilemap[0]->set_scrolly(0,m_gunnail_scrollram[0xc2/2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,7 +317,7 @@ void nmk16_state::bg_update(screen_device &screen, bitmap_ind16 &bitmap, const r
|
|||||||
m_bg_tilemap[layer]->set_scroll_rows(512);
|
m_bg_tilemap[layer]->set_scroll_rows(512);
|
||||||
|
|
||||||
m_bg_tilemap[layer]->set_scrolly(0, yscroll);
|
m_bg_tilemap[layer]->set_scrolly(0, yscroll);
|
||||||
m_bg_tilemap[layer]->set_scrollx((i + yscroll) & 0x1ff, m_gunnail_scrollram[0] + m_gunnail_scrollram[i] - m_videoshift);
|
m_bg_tilemap[layer]->set_scrollx((i + yscroll) & 0x1ff, m_gunnail_scrollram[0] + m_gunnail_scrollram[i]);
|
||||||
|
|
||||||
m_bg_tilemap[layer]->draw(screen, bitmap, bgclip, 0, 1);
|
m_bg_tilemap[layer]->draw(screen, bitmap, bgclip, 0, 1);
|
||||||
|
|
||||||
@ -337,7 +333,6 @@ void nmk16_state::bg_update(screen_device &screen, bitmap_ind16 &bitmap, const r
|
|||||||
|
|
||||||
void nmk16_state::tx_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
void nmk16_state::tx_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_tx_tilemap->set_scrollx(0,-m_videoshift);
|
|
||||||
m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 2);
|
m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,8 +380,6 @@ u32 nmk16_state::screen_update_strahl(screen_device &screen, bitmap_ind16 &bitma
|
|||||||
u32 nmk16_state::screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
u32 nmk16_state::screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
screen.priority().fill(0, cliprect);
|
screen.priority().fill(0, cliprect);
|
||||||
m_bg_tilemap[0]->set_scrollx(0,-m_videoshift);
|
|
||||||
|
|
||||||
bg_update(screen, bitmap, cliprect, 0);
|
bg_update(screen, bitmap, cliprect, 0);
|
||||||
draw_sprites(screen, bitmap, cliprect);
|
draw_sprites(screen, bitmap, cliprect);
|
||||||
return 0;
|
return 0;
|
||||||
@ -409,7 +402,6 @@ TILE_GET_INFO_MEMBER(afega_state::get_bg_tile_info_8bit)
|
|||||||
|
|
||||||
VIDEO_START_MEMBER(afega_state,grdnstrm)
|
VIDEO_START_MEMBER(afega_state,grdnstrm)
|
||||||
{
|
{
|
||||||
m_sprlimit = 384 * 263;
|
|
||||||
// 8bpp Tilemap
|
// 8bpp Tilemap
|
||||||
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::get_bg_tile_info_8bit)), tilemap_mapper_delegate(*this, FUNC(afega_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::get_bg_tile_info_8bit)), tilemap_mapper_delegate(*this, FUNC(afega_state::tilemap_scan_pages)), 16, 16, 256, 32);
|
||||||
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
|
m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(afega_state::common_get_tx_tile_info)), TILEMAP_SCAN_COLS, 8, 8, 32, 32);
|
||||||
|
@ -157,6 +157,9 @@ void powerins_state::video_start()
|
|||||||
save_item(NAME(m_tile_bank));
|
save_item(NAME(m_tile_bank));
|
||||||
save_pointer(NAME(m_spritebuffer[0]), 0x1000/2);
|
save_pointer(NAME(m_spritebuffer[0]), 0x1000/2);
|
||||||
save_pointer(NAME(m_spritebuffer[1]), 0x1000/2);
|
save_pointer(NAME(m_spritebuffer[1]), 0x1000/2);
|
||||||
|
// fixed offset
|
||||||
|
m_tilemap[0]->set_scrolldx(32,32);
|
||||||
|
m_tilemap[1]->set_scrolldx(32,32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -231,10 +234,8 @@ uint32_t powerins_state::screen_update(screen_device &screen, bitmap_ind16 &bitm
|
|||||||
int scrollx = (m_vctrl_0[2/2]&0xff) | ((m_vctrl_0[0/2]&0xff)<<8);
|
int scrollx = (m_vctrl_0[2/2]&0xff) | ((m_vctrl_0[0/2]&0xff)<<8);
|
||||||
int scrolly = (m_vctrl_0[6/2]&0xff) | ((m_vctrl_0[4/2]&0xff)<<8);
|
int scrolly = (m_vctrl_0[6/2]&0xff) | ((m_vctrl_0[4/2]&0xff)<<8);
|
||||||
|
|
||||||
m_tilemap[0]->set_scrollx(0, scrollx - 0x20);
|
m_tilemap[0]->set_scrollx(0, scrollx);
|
||||||
m_tilemap[0]->set_scrolly(0, scrolly );
|
m_tilemap[0]->set_scrolly(0, scrolly);
|
||||||
|
|
||||||
m_tilemap[1]->set_scrollx(0, -0x20); // fixed offset
|
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
if (machine().input().code_pressed(KEYCODE_Z))
|
if (machine().input().code_pressed(KEYCODE_Z))
|
||||||
|
@ -74,14 +74,16 @@ void quizpani_state::video_start()
|
|||||||
|
|
||||||
save_item(NAME(m_bgbank));
|
save_item(NAME(m_bgbank));
|
||||||
save_item(NAME(m_txtbank));
|
save_item(NAME(m_txtbank));
|
||||||
|
m_bg_tilemap->set_scrolldx(64,64);
|
||||||
|
m_txt_tilemap->set_scrolldx(64,64);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t quizpani_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
uint32_t quizpani_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
m_bg_tilemap->set_scrollx(0, m_scrollreg[0] - 64);
|
m_bg_tilemap->set_scrollx(0, m_scrollreg[0]);
|
||||||
m_bg_tilemap->set_scrolly(0, m_scrollreg[1] + 16);
|
m_bg_tilemap->set_scrolly(0, m_scrollreg[1]);
|
||||||
m_txt_tilemap->set_scrollx(0, m_scrollreg[2] - 64);
|
m_txt_tilemap->set_scrollx(0, m_scrollreg[2]);
|
||||||
m_txt_tilemap->set_scrolly(0, m_scrollreg[3] + 16);
|
m_txt_tilemap->set_scrolly(0, m_scrollreg[3]);
|
||||||
|
|
||||||
m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
||||||
m_txt_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
m_txt_tilemap->draw(screen, bitmap, cliprect, 0,0);
|
||||||
|
Loading…
Reference in New Issue
Block a user