diff options
Diffstat (limited to 'src/mame/video/speedspn.c')
-rw-r--r-- | src/mame/video/speedspn.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/mame/video/speedspn.c b/src/mame/video/speedspn.c index 7b5de0be6a0..e3a53e166da 100644 --- a/src/mame/video/speedspn.c +++ b/src/mame/video/speedspn.c @@ -4,7 +4,7 @@ #include "includes/speedspn.h" -TILE_GET_INFO_MEMBER(speedspn_state::get_speedspn_tile_info) +TILE_GET_INFO_MEMBER(speedspn_state::get_tile_info) { int code = m_vidram[tile_index*2+1] | (m_vidram[tile_index*2] << 8); int attr = m_attram[tile_index^0x400]; @@ -14,11 +14,17 @@ TILE_GET_INFO_MEMBER(speedspn_state::get_speedspn_tile_info) void speedspn_state::video_start() { - m_vidram = auto_alloc_array(machine(), UINT8, 0x1000 * 2); - m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(speedspn_state::get_speedspn_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32); + m_display_disable = false; + m_bank_vidram = 0; + m_vidram.resize_and_clear(0x1000 * 2); + m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(speedspn_state::get_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32); + + save_item(NAME(m_display_disable)); + save_item(NAME(m_bank_vidram)); + save_item(NAME(m_vidram)); } -WRITE8_MEMBER(speedspn_state::speedspn_vidram_w) +WRITE8_MEMBER(speedspn_state::vidram_w) { m_vidram[offset + m_bank_vidram] = data; @@ -26,26 +32,26 @@ WRITE8_MEMBER(speedspn_state::speedspn_vidram_w) m_tilemap->mark_tile_dirty(offset/2); } -WRITE8_MEMBER(speedspn_state::speedspn_attram_w) +WRITE8_MEMBER(speedspn_state::attram_w) { m_attram[offset] = data; m_tilemap->mark_tile_dirty(offset^0x400); } -READ8_MEMBER(speedspn_state::speedspn_vidram_r) +READ8_MEMBER(speedspn_state::vidram_r) { return m_vidram[offset + m_bank_vidram]; } -WRITE8_MEMBER(speedspn_state::speedspn_banked_vidram_change) +WRITE8_MEMBER(speedspn_state::vidram_bank_w) { // logerror("VidRam Bank: %04x\n", data); m_bank_vidram = data & 1; m_bank_vidram *= 0x1000; } -WRITE8_MEMBER(speedspn_state::speedspn_global_display_w) +WRITE8_MEMBER(speedspn_state::display_disable_w) { // logerror("Global display: %u\n", data); m_display_disable = data & 1; @@ -85,7 +91,7 @@ void speedspn_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec } -UINT32 speedspn_state::screen_update_speedspn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +UINT32 speedspn_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { if (m_display_disable) { |