bigstrkb.c, warpsped.c, wiz.c: added / enabled save state support (nw)

This commit is contained in:
Ivan Vangelista 2015-04-01 18:18:47 +02:00
parent 8490857fa8
commit d6c211b159
5 changed files with 77 additions and 73 deletions

View File

@ -48,9 +48,9 @@ static ADDRESS_MAP_START( bigstrkb_map, AS_PROGRAM, 16, bigstrkb_state )
AM_RANGE(0x0D0000, 0x0dffff) AM_RAM // 0xd2000 - 0xd3fff? 0xd8000? AM_RANGE(0x0D0000, 0x0dffff) AM_RAM // 0xd2000 - 0xd3fff? 0xd8000?
AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM_WRITE(bsb_videoram2_w) AM_SHARE("videoram2") AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2")
AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(bsb_videoram3_w) AM_SHARE("videoram3") AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(videoram3_w) AM_SHARE("videoram3")
AM_RANGE(0x0ec000, 0x0effff) AM_RAM_WRITE(bsb_videoram_w) AM_SHARE("videoram") AM_RANGE(0x0ec000, 0x0effff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM
AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8) MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update_bigstrkb) MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_PALETTE_ADD("palette", 0x400) MCFG_PALETTE_ADD("palette", 0x400)
@ -292,5 +292,5 @@ ROM_END
/* GAME drivers */ /* GAME drivers */
GAME( 1992, bigstrkb, bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) GAME( 1992, bigstrkb, bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )
GAME( 1992, bigstrkba,bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg w/Italian teams)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL ) GAME( 1992, bigstrkba,bigstrik, bigstrkb, bigstrkb, driver_device, 0, ROT0, "bootleg", "Big Striker (bootleg w/Italian teams)", GAME_IMPERFECT_SOUND | GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE )

View File

@ -105,29 +105,32 @@ public:
tilemap_t *m_text_tilemap; tilemap_t *m_text_tilemap;
tilemap_t *m_starfield_tilemap; tilemap_t *m_starfield_tilemap;
UINT8 m_regs[0x28]; UINT8 m_regs[0x28];
DECLARE_WRITE8_MEMBER(warpspeed_hardware_w);
DECLARE_WRITE8_MEMBER(warpspeed_vidram_w); DECLARE_WRITE8_MEMBER(hardware_w);
DECLARE_DRIVER_INIT(warpspeed); DECLARE_WRITE8_MEMBER(vidram_w);
TILE_GET_INFO_MEMBER(get_warpspeed_text_tile_info);
TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info); TILE_GET_INFO_MEMBER(get_text_tile_info);
TILE_GET_INFO_MEMBER(get_starfield_tile_info);
virtual void video_start(); virtual void video_start();
DECLARE_PALETTE_INIT(warpspeed); DECLARE_PALETTE_INIT(warpspeed);
UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_circles(bitmap_ind16 &bitmap); void draw_circles(bitmap_ind16 &bitmap);
}; };
WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w) WRITE8_MEMBER(warpspeed_state::hardware_w)
{ {
m_regs[offset] = data; m_regs[offset] = data;
} }
TILE_GET_INFO_MEMBER(warpspeed_state::get_warpspeed_text_tile_info) TILE_GET_INFO_MEMBER(warpspeed_state::get_text_tile_info)
{ {
UINT8 code = m_videoram[tile_index] & 0x3f; UINT8 code = m_videoram[tile_index] & 0x3f;
SET_TILE_INFO_MEMBER(0, code, 0, 0); SET_TILE_INFO_MEMBER(0, code, 0, 0);
} }
TILE_GET_INFO_MEMBER(warpspeed_state::get_warpspeed_starfield_tile_info) TILE_GET_INFO_MEMBER(warpspeed_state::get_starfield_tile_info)
{ {
UINT8 code = 0x3f; UINT8 code = 0x3f;
if ( tile_index & 1 ) if ( tile_index & 1 )
@ -137,7 +140,7 @@ TILE_GET_INFO_MEMBER(warpspeed_state::get_warpspeed_starfield_tile_info)
SET_TILE_INFO_MEMBER(1, code, 0, 0); SET_TILE_INFO_MEMBER(1, code, 0, 0);
} }
WRITE8_MEMBER(warpspeed_state::warpspeed_vidram_w) WRITE8_MEMBER(warpspeed_state::vidram_w)
{ {
m_videoram[offset] = data; m_videoram[offset] = data;
m_text_tilemap->mark_tile_dirty(offset); m_text_tilemap->mark_tile_dirty(offset);
@ -145,10 +148,12 @@ WRITE8_MEMBER(warpspeed_state::warpspeed_vidram_w)
void warpspeed_state::video_start() void warpspeed_state::video_start()
{ {
m_text_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_text_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_text_tilemap->set_transparent_pen(0); m_text_tilemap->set_transparent_pen(0);
m_starfield_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_warpspeed_starfield_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_starfield_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(warpspeed_state::get_starfield_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
m_starfield_tilemap->mark_all_dirty(); m_starfield_tilemap->mark_all_dirty();
save_item(NAME(m_regs));
} }
static void draw_circle_line(bitmap_ind16 &bitmap, int x, int y, int l, int color) static void draw_circle_line(bitmap_ind16 &bitmap, int x, int y, int l, int color)
@ -170,7 +175,7 @@ static void draw_circle_line(bitmap_ind16 &bitmap, int x, int y, int l, int colo
} }
} }
static void warpspeed_draw_circle(bitmap_ind16 &bitmap, INT16 cx, INT16 cy, UINT16 radius, UINT8 color ) static void draw_circle(bitmap_ind16 &bitmap, INT16 cx, INT16 cy, UINT16 radius, UINT8 color )
{ {
/* Bresenham's circle algorithm */ /* Bresenham's circle algorithm */
@ -210,11 +215,11 @@ void warpspeed_state::draw_circles(bitmap_ind16 &bitmap)
{ {
continue; continue;
} }
warpspeed_draw_circle(bitmap, midx + 128 + 16, midy + 128 + 16, radius, (m_regs[i*8 + 6] & 0x07) + 2); draw_circle(bitmap, midx + 128 + 16, midy + 128 + 16, radius, (m_regs[i*8 + 6] & 0x07) + 2);
} }
} }
UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 warpspeed_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
m_starfield_tilemap->draw(screen, bitmap, cliprect, 0, 0); m_starfield_tilemap->draw(screen, bitmap, cliprect, 0, 0);
draw_circles(bitmap); draw_circles(bitmap);
@ -224,7 +229,7 @@ UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_in
static ADDRESS_MAP_START( warpspeed_map, AS_PROGRAM, 8, warpspeed_state ) static ADDRESS_MAP_START( warpspeed_map, AS_PROGRAM, 8, warpspeed_state )
AM_RANGE(0x0000, 0x0dff) AM_ROM AM_RANGE(0x0000, 0x0dff) AM_ROM
AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(warpspeed_vidram_w ) AM_SHARE("videoram") AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(vidram_w ) AM_SHARE("videoram")
AM_RANGE(0x1c00, 0x1cff) AM_RAM AM_SHARE("workram") AM_RANGE(0x1c00, 0x1cff) AM_RAM AM_SHARE("workram")
ADDRESS_MAP_END ADDRESS_MAP_END
@ -234,7 +239,7 @@ static ADDRESS_MAP_START ( warpspeed_io_map, AS_IO, 8, warpspeed_state )
AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1") AM_RANGE(0x01, 0x01) AM_READ_PORT("IN1")
AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW") AM_RANGE(0x02, 0x02) AM_READ_PORT("DSW")
AM_RANGE(0x03, 0x03) AM_READ_PORT("IN2") AM_RANGE(0x03, 0x03) AM_READ_PORT("IN2")
AM_RANGE(0x00, 0x27) AM_WRITE(warpspeed_hardware_w ) AM_RANGE(0x00, 0x27) AM_WRITE(hardware_w )
ADDRESS_MAP_END ADDRESS_MAP_END
static INPUT_PORTS_START( warpspeed ) static INPUT_PORTS_START( warpspeed )
@ -278,7 +283,7 @@ static INPUT_PORTS_START( warpspeed )
PORT_DIPUNUSED( 0x80, 0x00 ) PORT_DIPUNUSED( 0x80, 0x00 )
INPUT_PORTS_END INPUT_PORTS_END
static const gfx_layout warpspeed_charlayout = static const gfx_layout charlayout =
{ {
8,8, 8,8,
RGN_FRAC(1,1), RGN_FRAC(1,1),
@ -290,8 +295,8 @@ static const gfx_layout warpspeed_charlayout =
}; };
static GFXDECODE_START( warpspeed ) static GFXDECODE_START( warpspeed )
GFXDECODE_ENTRY( "gfx1", 0, warpspeed_charlayout, 0, 1 ) GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 )
GFXDECODE_ENTRY( "gfx2", 0, warpspeed_charlayout, 0, 1 ) GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0, 1 )
GFXDECODE_END GFXDECODE_END
PALETTE_INIT_MEMBER(warpspeed_state, warpspeed) PALETTE_INIT_MEMBER(warpspeed_state, warpspeed)
@ -322,7 +327,7 @@ static MACHINE_CONFIG_START( warpspeed, warpspeed_state )
MCFG_SCREEN_SIZE((32)*8, (32)*8) MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1) MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1)
MCFG_SCREEN_PALETTE("palette") MCFG_SCREEN_PALETTE("palette")
MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update_warpspeed) MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update)
MCFG_GFXDECODE_ADD("gfxdecode", "palette", warpspeed) MCFG_GFXDECODE_ADD("gfxdecode", "palette", warpspeed)
MCFG_PALETTE_ADD("palette", 2+8) MCFG_PALETTE_ADD("palette", 2+8)
@ -364,8 +369,5 @@ ROM_START( warpsped )
ROM_END ROM_END
DRIVER_INIT_MEMBER(warpspeed_state,warpspeed)
{
}
GAME( 1979?, warpsped, 0, warpspeed, warpspeed, warpspeed_state, warpspeed, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_NO_SOUND ) // year not shown, 1979 is according to date stamps on PCB chips. GAME( 1979?, warpsped, 0, warpspeed, warpspeed, driver_device, 0, ROT0, "Meadows Games, Inc.", "Warp Speed (prototype)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_COLORS | GAME_NO_SOUND | GAME_SUPPORTS_SAVE ) // year not shown, 1979 is according to date stamps on PCB chips.

View File

@ -94,7 +94,7 @@ TODO:
original (weird), or some strange form of protection. original (weird), or some strange form of protection.
- Is wiz protection emulation complete? - Is wiz protection emulation complete?
- Wiz: the supplier of the screenshot says there still may be some wrong - Wiz: the supplier of the screenshot says there still may be some wrong
colors. Just before the break on Level 2 there is a cresent moon, colors. Just before the break on Level 2 there is a crescent moon,
the background should probably be black. the background should probably be black.
@ -177,7 +177,6 @@ Stephh's notes (based on the games Z80 code and some tests) :
#include "emu.h" #include "emu.h"
#include "cpu/z80/z80.h" #include "cpu/z80/z80.h"
#include "sound/ay8910.h" #include "sound/ay8910.h"
#include "sound/discrete.h"
#include "includes/wiz.h" #include "includes/wiz.h"
@ -1147,12 +1146,12 @@ DRIVER_INIT_MEMBER(wiz_state,stinger)
} }
GAME( 1983, stinger, 0, stinger, stinger, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) GAME( 1983, stinger, 0, stinger, stinger, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1983, stinger2, stinger, stinger, stinger2, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger (prototype?)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) GAME( 1983, stinger2, stinger, stinger, stinger2, wiz_state, stinger, ROT90, "Seibu Denshi", "Stinger (prototype?)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1984, scion, 0, scion, scion, driver_device, 0, ROT0, "Seibu Denshi", "Scion", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) GAME( 1984, scion, 0, scion, scion, driver_device, 0, ROT0, "Seibu Denshi", "Scion", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1984, scionc, scion, scion, scion, driver_device, 0, ROT0, "Seibu Denshi (Cinematronics license)", "Scion (Cinematronics)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS ) GAME( 1984, scionc, scion, scion, scion, driver_device, 0, ROT0, "Seibu Denshi (Cinematronics license)", "Scion (Cinematronics)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_COLORS | GAME_SUPPORTS_SAVE )
GAME( 1984, kungfut, 0, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 1)", 0 ) GAME( 1984, kungfut, 0, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 1)", GAME_SUPPORTS_SAVE )
GAME( 1984, kungfuta, kungfut, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 2)", 0 ) /* board was a bootleg but set might still be original */ GAME( 1984, kungfuta, kungfut, kungfut, kungfut, driver_device, 0, ROT0, "Seibu Kaihatsu", "Kung-Fu Taikun (set 2)", GAME_SUPPORTS_SAVE ) /* board was a bootleg but set might still be original */
GAME( 1985, wiz, 0, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu", "Wiz", 0 ) GAME( 1985, wiz, 0, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu", "Wiz", GAME_SUPPORTS_SAVE )
GAME( 1985, wizt, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 1)", 0 ) GAME( 1985, wizt, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 1)", GAME_SUPPORTS_SAVE )
GAME( 1985, wizta, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 2)", 0 ) GAME( 1985, wizta, wiz, wiz, wiz, driver_device, 0, ROT270, "Seibu Kaihatsu (Taito license)", "Wiz (Taito, set 2)", GAME_SUPPORTS_SAVE )

View File

@ -3,39 +3,42 @@ class bigstrkb_state : public driver_device
public: public:
bigstrkb_state(const machine_config &mconfig, device_type type, const char *tag) bigstrkb_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag), : driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
m_videoram2(*this, "videoram2"), m_videoram2(*this, "videoram2"),
m_videoram3(*this, "videoram3"), m_videoram3(*this, "videoram3"),
m_videoram(*this, "videoram"), m_videoram(*this, "videoram"),
m_spriteram(*this, "spriteram"), m_spriteram(*this, "spriteram"),
m_vidreg1(*this, "vidreg1"), m_vidreg1(*this, "vidreg1"),
m_vidreg2(*this, "vidreg2"), m_vidreg2(*this, "vidreg2") { }
m_maincpu(*this, "maincpu"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette") { }
tilemap_t *m_tilemap; required_device<cpu_device> m_maincpu;
tilemap_t *m_tilemap2; required_device<gfxdecode_device> m_gfxdecode;
tilemap_t *m_tilemap3; required_device<palette_device> m_palette;
required_shared_ptr<UINT16> m_videoram2; required_shared_ptr<UINT16> m_videoram2;
required_shared_ptr<UINT16> m_videoram3; required_shared_ptr<UINT16> m_videoram3;
required_shared_ptr<UINT16> m_videoram; required_shared_ptr<UINT16> m_videoram;
required_shared_ptr<UINT16> m_spriteram; required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_vidreg1; required_shared_ptr<UINT16> m_vidreg1;
required_shared_ptr<UINT16> m_vidreg2; required_shared_ptr<UINT16> m_vidreg2;
DECLARE_WRITE16_MEMBER(bsb_videoram_w); tilemap_t *m_tilemap;
DECLARE_WRITE16_MEMBER(bsb_videoram2_w); tilemap_t *m_tilemap2;
DECLARE_WRITE16_MEMBER(bsb_videoram3_w); tilemap_t *m_tilemap3;
TILEMAP_MAPPER_MEMBER(bsb_bg_scan);
TILE_GET_INFO_MEMBER(get_bsb_tile_info); DECLARE_WRITE16_MEMBER(videoram_w);
TILE_GET_INFO_MEMBER(get_bsb_tile2_info); DECLARE_WRITE16_MEMBER(videoram2_w);
TILE_GET_INFO_MEMBER(get_bsb_tile3_info); DECLARE_WRITE16_MEMBER(videoram3_w);
TILEMAP_MAPPER_MEMBER(bg_scan);
TILE_GET_INFO_MEMBER(get_tile_info);
TILE_GET_INFO_MEMBER(get_tile2_info);
TILE_GET_INFO_MEMBER(get_tile3_info);
virtual void video_start(); virtual void video_start();
UINT32 screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ); void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
required_device<cpu_device> m_maincpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
}; };

View File

@ -47,7 +47,7 @@ void bigstrkb_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec
/* Tilemaps */ /* Tilemaps */
TILEMAP_MAPPER_MEMBER(bigstrkb_state::bsb_bg_scan) TILEMAP_MAPPER_MEMBER(bigstrkb_state::bg_scan)
{ {
int offset; int offset;
@ -58,7 +58,7 @@ TILEMAP_MAPPER_MEMBER(bigstrkb_state::bsb_bg_scan)
return offset; return offset;
} }
TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile_info) TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile_info)
{ {
int tileno,col; int tileno,col;
@ -68,13 +68,13 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile_info)
SET_TILE_INFO_MEMBER(0,tileno,col>>12,0); SET_TILE_INFO_MEMBER(0,tileno,col>>12,0);
} }
WRITE16_MEMBER(bigstrkb_state::bsb_videoram_w) WRITE16_MEMBER(bigstrkb_state::videoram_w)
{ {
m_videoram[offset] = data; m_videoram[offset] = data;
m_tilemap->mark_tile_dirty(offset); m_tilemap->mark_tile_dirty(offset);
} }
TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile2_info) TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile2_info)
{ {
int tileno,col; int tileno,col;
@ -84,14 +84,14 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile2_info)
SET_TILE_INFO_MEMBER(1,tileno,col>>12,0); SET_TILE_INFO_MEMBER(1,tileno,col>>12,0);
} }
WRITE16_MEMBER(bigstrkb_state::bsb_videoram2_w) WRITE16_MEMBER(bigstrkb_state::videoram2_w)
{ {
m_videoram2[offset] = data; m_videoram2[offset] = data;
m_tilemap2->mark_tile_dirty(offset); m_tilemap2->mark_tile_dirty(offset);
} }
TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile3_info) TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile3_info)
{ {
int tileno,col; int tileno,col;
@ -101,7 +101,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_bsb_tile3_info)
SET_TILE_INFO_MEMBER(1,tileno+0x2000,(col>>12)+(0x100/16),0); SET_TILE_INFO_MEMBER(1,tileno+0x2000,(col>>12)+(0x100/16),0);
} }
WRITE16_MEMBER(bigstrkb_state::bsb_videoram3_w) WRITE16_MEMBER(bigstrkb_state::videoram3_w)
{ {
m_videoram3[offset] = data; m_videoram3[offset] = data;
m_tilemap3->mark_tile_dirty(offset); m_tilemap3->mark_tile_dirty(offset);
@ -111,16 +111,16 @@ WRITE16_MEMBER(bigstrkb_state::bsb_videoram3_w)
void bigstrkb_state::video_start() void bigstrkb_state::video_start()
{ {
m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32); m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile_info),this),TILEMAP_SCAN_COLS, 8, 8,64,32);
m_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile2_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bsb_bg_scan),this), 16, 16,128,64); m_tilemap2 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile2_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bg_scan),this), 16, 16,128,64);
m_tilemap3 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile3_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bsb_bg_scan),this), 16, 16,128,64); m_tilemap3 = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(bigstrkb_state::get_tile3_info),this),tilemap_mapper_delegate(FUNC(bigstrkb_state::bg_scan),this), 16, 16,128,64);
m_tilemap->set_transparent_pen(15); m_tilemap->set_transparent_pen(15);
//m_tilemap2->set_transparent_pen(15); //m_tilemap2->set_transparent_pen(15);
m_tilemap3->set_transparent_pen(15); m_tilemap3->set_transparent_pen(15);
} }
UINT32 bigstrkb_state::screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) UINT32 bigstrkb_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{ {
// bitmap.fill(m_palette->black_pen(), cliprect); // bitmap.fill(m_palette->black_pen(), cliprect);
@ -136,6 +136,6 @@ UINT32 bigstrkb_state::screen_update_bigstrkb(screen_device &screen, bitmap_ind1
draw_sprites(bitmap,cliprect); draw_sprites(bitmap,cliprect);
m_tilemap->draw(screen, bitmap, cliprect, 0,0); m_tilemap->draw(screen, bitmap, cliprect, 0,0);
// popmessage ("Regs %08x %08x %08x %08x",bsb_vidreg2[0],bsb_vidreg2[1],bsb_vidreg2[2],bsb_vidreg2[3]); // popmessage ("Regs %08x %08x %08x %08x",m_vidreg2[0],m_vidreg2[1],m_vidreg2[2],m_vidreg2[3]);
return 0; return 0;
} }