mirror of
https://github.com/holub/mame
synced 2025-06-07 21:33:45 +03:00
bigstrkb.c, warpsped.c, wiz.c: added / enabled save state support (nw)
This commit is contained in:
parent
8490857fa8
commit
d6c211b159
@ -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 )
|
||||||
|
@ -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.
|
||||||
|
@ -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 )
|
||||||
|
@ -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;
|
|
||||||
};
|
};
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user