avoid some lazy tag lookups (nw)

This commit is contained in:
David Haywood 2013-01-28 09:39:13 +00:00
parent 093d2460fb
commit be2f33dc36
51 changed files with 167 additions and 99 deletions

View File

@ -28,7 +28,9 @@ public:
: driver_device(mconfig, type, tag) ,
m_mainram(*this, "mainram"),
m_left_priority(*this, "left_priority"),
m_right_priority(*this, "right_priority"){ }
m_right_priority(*this, "right_priority"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
UINT16 * m_spriteram_1;
@ -36,6 +38,7 @@ public:
required_shared_ptr<UINT32> m_mainram;
required_shared_ptr<UINT32> m_left_priority;
required_shared_ptr<UINT32> m_right_priority;
optional_device<decospr_device> m_sprgen;
/* video related */
bitmap_ind16 *m_left;
@ -127,13 +130,13 @@ UINT32 backfire_state::screen_update_backfire_left(screen_device &screen, bitmap
{
deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
}
else if (m_left_priority[0] == 2)
{
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
}
else
popmessage( "unknown left priority %08x", m_left_priority[0]);

View File

@ -24,7 +24,7 @@
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
WRITE16_MEMBER(cbuster_state::twocrude_control_w)
{

View File

@ -51,7 +51,6 @@ Note about version levels using Mutant Fighter as the example:
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
#include "video/decocomn.h"
WRITE16_MEMBER(cninja_state::cninja_sound_w)

View File

@ -36,7 +36,7 @@
#include "sound/okim6295.h"
#include "sound/3812intf.h"
#include "includes/crospang.h"
#include "video/decospr.h"
WRITE16_MEMBER(crospang_state::crospang_soundlatch_w)
{

View File

@ -20,7 +20,6 @@
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "includes/darkseal.h"
#include "video/decospr.h"
#include "video/deco16ic.h"
/******************************************************************************/

View File

@ -33,12 +33,15 @@ public:
: driver_device(mconfig, type, tag) ,
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_spriteram(*this, "spriteram"){ }
m_spriteram(*this, "spriteram"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
/* protection */
UINT16 m_008_data;
@ -116,7 +119,7 @@ UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind1
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}

View File

@ -30,12 +30,15 @@ public:
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
m_deco_tilegen1(*this, "tilegen1"),
m_oki2(*this, "oki2") { }
m_oki2(*this, "oki2"),
m_sprgen(*this, "spritegen")
{ }
/* devices */
required_device<arm_device> m_maincpu;
required_device<deco16ic_device> m_deco_tilegen1;
optional_device<okim6295_device> m_oki2;
optional_device<decospr_device> m_sprgen;
/* memory */
UINT16 m_pf1_rowscroll[0x800/2];
@ -81,7 +84,7 @@ UINT32 deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32
deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x800);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -235,7 +235,6 @@ Notes:
#include "includes/deco32.h"
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "video/decospr.h"
#include "video/deco16ic.h"
/**********************************************************************************/

View File

@ -13,7 +13,6 @@
#include "includes/decoprot.h"
#include "includes/dietgo.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
#include "video/decocomn.h"
static ADDRESS_MAP_START( dietgo_map, AS_PROGRAM, 16, dietgo_state )

View File

@ -71,7 +71,7 @@ ToDo:
#include "sound/okim6295.h"
#include "sound/3812intf.h"
#include "includes/esd16.h"
#include "video/decospr.h"
/***************************************************************************

View File

@ -96,7 +96,7 @@ Notes:
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
/******************************************************************************/

View File

@ -63,8 +63,6 @@ Notes:
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "includes/gotcha.h"
#include "video/decospr.h"
WRITE16_MEMBER(gotcha_state::gotcha_lamps_w)
{

View File

@ -21,7 +21,6 @@
#include "sound/2151intf.h"
#include "sound/okim6295.h"
#include "includes/lemmings.h"
#include "video/decospr.h"
WRITE16_MEMBER(lemmings_state::lemmings_control_w)
{

View File

@ -53,7 +53,9 @@ public:
m_oki_bgm(*this, "oki_bgm"),
m_spriteram(*this, "spriteram") ,
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf2_rowscroll(*this, "pf2_rowscroll"){ }
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_sprgen(*this, "spritegen")
{ }
/* misc */
@ -68,6 +70,7 @@ public:
/* memory pointers */
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
DECLARE_WRITE16_MEMBER(mirage_mux_w);
DECLARE_READ16_MEMBER(mirage_input_r);
@ -82,7 +85,7 @@ public:
void miragemi_state::video_start()
{
machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
m_sprgen->alloc_sprite_bitmap();
}
UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@ -92,16 +95,16 @@ UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb32
flip_screen_set(BIT(flip, 7));
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(256, cliprect); /* not verified */
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff);
return 0;
}

View File

@ -235,7 +235,9 @@ public:
m_scroll_ram(*this, "scroll_ram"),
m_bg_videoram(*this, "bg_videoram"),
m_fg_videoram(*this, "fg_videoram"),
m_bitmap(*this, "bitmap"){ }
m_bitmap(*this, "bitmap"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
@ -243,6 +245,7 @@ public:
required_shared_ptr<UINT16> m_bg_videoram;
required_shared_ptr<UINT16> m_fg_videoram;
required_shared_ptr<UINT16> m_bitmap;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */
@ -892,33 +895,33 @@ UINT32 nmg5_state::screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitma
if (m_priority_reg == 0)
{
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_bitmap(machine(), bitmap);
}
else if (m_priority_reg == 1)
{
draw_bitmap(machine(), bitmap);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else if (m_priority_reg == 2)
{
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
draw_bitmap(machine(), bitmap);
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else if (m_priority_reg == 3)
{
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
draw_bitmap(machine(), bitmap);
}
else if (m_priority_reg == 7)
{
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_bitmap(machine(), bitmap);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
}
return 0;
}

View File

@ -59,7 +59,6 @@ bootleg todo:
#include "video/deco16ic.h"
#include "sound/okim6295.h"
#include "includes/pktgaldx.h"
#include "video/decospr.h"
#include "video/decocomn.h"
/**********************************************************************************/

View File

@ -30,13 +30,16 @@ public:
: driver_device(mconfig, type, tag),
m_bg_videoram(*this, "bg_videoram"),
m_fg_videoram(*this, "fg_videoram"),
m_spriteram(*this, "spriteram") {
m_spriteram(*this, "spriteram"),
m_sprgen(*this, "spritegen")
{
}
/* memory pointers */
required_shared_ptr<UINT16> m_bg_videoram;
required_shared_ptr<UINT16> m_fg_videoram;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
/* video-related */
tilemap_t *m_bg_layer;
@ -151,7 +154,7 @@ UINT32 silvmil_state::screen_update_silvmil(screen_device &screen, bitmap_ind16
{
m_bg_layer->draw(bitmap, cliprect, 0, 0);
m_fg_layer->draw(bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}

View File

@ -95,7 +95,6 @@ Are the OKI M6295 clocks from Heavy Smash are correct at least for the Mitchell
#include "machine/eeprom.h"
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
static INPUT_PORTS_START( simpl156 )
PORT_START("IN0")

View File

@ -27,7 +27,6 @@ down hardware (it doesn't write any good sound data btw, mostly zeros).
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "includes/supbtime.h"
#include "video/decospr.h"
/******************************************************************************/

View File

@ -303,7 +303,7 @@ Stephh's notes (based on the games M68000 code and some tests) :
#include "sound/3812intf.h"
#include "sound/okim6295.h"
#include "includes/tumbleb.h"
#include "video/decospr.h"
#define TUMBLEP_HACK 0
#define FNCYWLD_HACK 0

View File

@ -48,7 +48,7 @@ Stephh's notes (based on the games M68000 code and some tests) :
#include "sound/okim6295.h"
#include "includes/tumblep.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
#define TUMBLEP_HACK 0

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class cbuster_state : public driver_device
{
public:
@ -14,7 +16,9 @@ public:
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_pf3_rowscroll(*this, "pf3_rowscroll"),
m_pf4_rowscroll(*this, "pf4_rowscroll"),
m_spriteram16(*this, "spriteram16"){ }
m_spriteram16(*this, "spriteram16"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_ram;
@ -23,6 +27,8 @@ public:
required_shared_ptr<UINT16> m_pf3_rowscroll;
required_shared_ptr<UINT16> m_pf4_rowscroll;
required_shared_ptr<UINT16> m_spriteram16;
optional_device<decospr_device> m_sprgen;
UINT16 m_spriteram16_buffer[0x400];
/* misc */

View File

@ -8,6 +8,7 @@
#include "video/deco16ic.h"
#include "video/decocomn.h"
#include "video/bufsprite.h"
#include "video/decospr.h"
class cninja_state : public driver_device
{
@ -27,7 +28,9 @@ public:
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_pf3_rowscroll(*this, "pf3_rowscroll"),
m_pf4_rowscroll(*this, "pf4_rowscroll"),
m_ram(*this, "ram"){ }
m_ram(*this, "ram"),
m_sprgen(*this, "spritegen")
{ }
/* devices */
required_device<cpu_device> m_maincpu;
@ -45,6 +48,7 @@ public:
required_shared_ptr<UINT16> m_pf3_rowscroll;
required_shared_ptr<UINT16> m_pf4_rowscroll;
optional_shared_ptr<UINT16> m_ram;
optional_device<decospr_device> m_sprgen;
/* misc */
int m_scanline;

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class crospang_state : public driver_device
{
public:
@ -11,12 +13,15 @@ public:
: driver_device(mconfig, type, tag) ,
m_fg_videoram(*this, "fg_videoram"),
m_bg_videoram(*this, "bg_videoram"),
m_spriteram(*this, "spriteram"){ }
m_spriteram(*this, "spriteram"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_fg_videoram;
required_shared_ptr<UINT16> m_bg_videoram;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */

View File

@ -1,5 +1,6 @@
#include "video/deco16ic.h"
#include "video/bufsprite.h"
#include "video/decospr.h"
class darkseal_state : public driver_device
{
@ -11,7 +12,9 @@ public:
m_spriteram(*this, "spriteram") ,
m_ram(*this, "ram"),
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf3_rowscroll(*this, "pf3_rowscroll"){ }
m_pf3_rowscroll(*this, "pf3_rowscroll"),
m_sprgen(*this, "spritegen")
{ }
required_device<deco16ic_device> m_deco_tilegen1;
required_device<deco16ic_device> m_deco_tilegen2;
@ -21,6 +24,7 @@ public:
//UINT16 *m_pf2_rowscroll;
required_shared_ptr<UINT16> m_pf3_rowscroll;
//UINT16 *m_pf4_rowscroll;
optional_device<decospr_device> m_sprgen;
int m_flipscreen;

View File

@ -1,5 +1,6 @@
#include "audio/decobsmt.h"
#include "video/bufsprite.h"
#include "video/decospr.h"
class deco32_state : public driver_device
{
@ -14,7 +15,9 @@ public:
m_pf2_rowscroll32(*this, "pf2_rowscroll32"),
m_pf3_rowscroll32(*this, "pf3_rowscroll32"),
m_pf4_rowscroll32(*this, "pf4_rowscroll32"),
m_ace_ram(*this, "ace_ram"){ }
m_ace_ram(*this, "ace_ram"),
m_sprgen(*this, "spritegen")
{ }
required_device<cpu_device> m_maincpu;
optional_device<decobsmt_device> m_decobsmt;
@ -27,6 +30,7 @@ public:
required_shared_ptr<UINT32> m_pf4_rowscroll32;
optional_shared_ptr<UINT32> m_ace_ram;
optional_device<decospr_device> m_sprgen;
int m_raster_enable;
timer_device *m_raster_irq_timer;

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class dietgo_state : public driver_device
{
public:
@ -11,12 +13,15 @@ public:
: driver_device(mconfig, type, tag) ,
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_spriteram(*this, "spriteram"){ }
m_spriteram(*this, "spriteram"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
/* devices */

View File

@ -5,6 +5,7 @@
***************************************************************************/
#include "machine/eeprom.h"
#include "video/decospr.h"
class esd16_state : public driver_device
{
@ -18,7 +19,8 @@ public:
m_spriteram(*this, "spriteram"),
m_head_layersize(*this, "head_layersize"),
m_headpanic_platform_x(*this, "platform_x"),
m_headpanic_platform_y(*this, "platform_y")
m_headpanic_platform_y(*this, "platform_y"),
m_sprgen(*this, "spritegen")
{
m_tilemap0_color = 0;
m_tilemap1_color = 0;
@ -33,6 +35,7 @@ public:
required_shared_ptr<UINT16> m_head_layersize;
required_shared_ptr<UINT16> m_headpanic_platform_x;
required_shared_ptr<UINT16> m_headpanic_platform_y;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class funkyjet_state : public driver_device
{
public:
@ -11,12 +13,15 @@ public:
: driver_device(mconfig, type, tag) ,
m_spriteram(*this, "spriteram"),
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf2_rowscroll(*this, "pf2_rowscroll"){ }
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
// UINT16 * paletteram; // currently this uses generic palette handling (in decocomn.c)
/* devices */

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class gotcha_state : public driver_device
{
public:
@ -11,12 +13,15 @@ public:
: driver_device(mconfig, type, tag) ,
m_fgvideoram(*this, "fgvideoram"),
m_bgvideoram(*this, "bgvideoram"),
m_spriteram(*this, "spriteram"){ }
m_spriteram(*this, "spriteram"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_fgvideoram;
required_shared_ptr<UINT16> m_bgvideoram;
required_shared_ptr<UINT16> m_spriteram;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* video-related */

View File

@ -1,4 +1,5 @@
#include "video/bufsprite.h"
#include "video/decospr.h"
class lemmings_state : public driver_device
{
@ -12,7 +13,9 @@ public:
m_control_data(*this, "control_data"),
m_vram_data(*this, "vram_data"),
m_pixel_0_data(*this, "pixel_0_data"),
m_pixel_1_data(*this, "pixel_1_data"){ }
m_pixel_1_data(*this, "pixel_1_data"),
m_sprgen(*this, "spritegen")
{ }
/* video-related */
bitmap_ind16 m_bitmap0;
@ -30,6 +33,7 @@ public:
required_shared_ptr<UINT16> m_vram_data;
required_shared_ptr<UINT16> m_pixel_0_data;
required_shared_ptr<UINT16> m_pixel_1_data;
optional_device<decospr_device> m_sprgen;
DECLARE_WRITE16_MEMBER(lemmings_control_w);
DECLARE_READ16_MEMBER(lemmings_trackball_r);

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class pktgaldx_state : public driver_device
{
public:
@ -13,7 +15,9 @@ public:
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_spriteram(*this, "spriteram"),
m_pktgaldb_fgram(*this, "pktgaldb_fgram"),
m_pktgaldb_sprites(*this, "pktgaldb_spr"){ }
m_pktgaldb_sprites(*this, "pktgaldb_spr"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
optional_shared_ptr<UINT16> m_pf1_rowscroll;
@ -23,6 +27,7 @@ public:
optional_shared_ptr<UINT16> m_pktgaldb_fgram;
optional_shared_ptr<UINT16> m_pktgaldb_sprites;
optional_device<decospr_device> m_sprgen;
/* devices */
cpu_device *m_maincpu;

View File

@ -7,6 +7,7 @@
#include "machine/eeprom.h"
#include "sound/okim6295.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
class simpl156_state : public driver_device
{
@ -18,7 +19,9 @@ public:
m_eeprom(*this, "eeprom"),
m_okimusic(*this, "okimusic") ,
m_mainram(*this, "mainram"),
m_systemram(*this, "systemram"){ }
m_systemram(*this, "systemram"),
m_sprgen(*this, "spritegen")
{ }
/* devices */
required_device<cpu_device> m_maincpu;
@ -30,6 +33,7 @@ public:
UINT16 * m_pf2_rowscroll;
required_shared_ptr<UINT32> m_mainram;
required_shared_ptr<UINT32> m_systemram;
optional_device<decospr_device> m_sprgen;
UINT16 *m_spriteram;
size_t m_spriteram_size;

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class supbtime_state : public driver_device
{
public:
@ -11,13 +13,16 @@ public:
: driver_device(mconfig, type, tag) ,
m_spriteram(*this, "spriteram"),
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf2_rowscroll(*this, "pf2_rowscroll"){ }
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
/* video-related */

View File

@ -1,4 +1,7 @@
#include "video/decospr.h"
class tumbleb_state : public driver_device
{
public:
@ -8,7 +11,8 @@ public:
m_spriteram(*this, "spriteram"),
m_pf1_data(*this, "pf1_data"),
m_pf2_data(*this, "pf2_data"),
m_control(*this, "control")
m_control(*this, "control"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
@ -17,6 +21,7 @@ public:
required_shared_ptr<UINT16> m_pf1_data;
required_shared_ptr<UINT16> m_pf2_data;
optional_shared_ptr<UINT16> m_control;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling
/* misc */

View File

@ -4,6 +4,8 @@
*************************************************************************/
#include "video/decospr.h"
class tumblep_state : public driver_device
{
public:
@ -11,12 +13,15 @@ public:
: driver_device(mconfig, type, tag) ,
m_spriteram(*this, "spriteram"),
m_pf1_rowscroll(*this, "pf1_rowscroll"),
m_pf2_rowscroll(*this, "pf2_rowscroll"){ }
m_pf2_rowscroll(*this, "pf2_rowscroll"),
m_sprgen(*this, "spritegen")
{ }
/* memory pointers */
required_shared_ptr<UINT16> m_spriteram;
required_shared_ptr<UINT16> m_pf1_rowscroll;
required_shared_ptr<UINT16> m_pf2_rowscroll;
optional_device<decospr_device> m_sprgen;
// UINT16 * m_paletteram; // currently this uses generic palette handling (in decocomn.c)
/* devices */

View File

@ -7,7 +7,6 @@
#include "emu.h"
#include "includes/cbuster.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
/******************************************************************************/
@ -45,7 +44,7 @@ WRITE16_MEMBER(cbuster_state::twocrude_palette_24bit_b_w)
void cbuster_state::video_start()
{
machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
m_sprgen->alloc_sprite_bitmap();
}
UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@ -55,7 +54,7 @@ UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32
flip_screen_set(!BIT(flip, 7));
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffer, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram16_buffer, 0x400);
deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
@ -63,8 +62,8 @@ UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32
/* Draw playfields & sprites */
deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0900, 0x100, 0x0ff);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0900, 0x0900, 0x500, 0x0ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0900, 0x100, 0x0ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0900, 0x0900, 0x500, 0x0ff);
if (m_pri)
{
@ -77,8 +76,8 @@ UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
}
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0900, 0x100, 0x0ff);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0100, 0x0900, 0x500, 0x0ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0900, 0x100, 0x0ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0100, 0x0900, 0x500, 0x0ff);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -7,7 +7,6 @@
#include "emu.h"
#include "video/deco16ic.h"
#include "includes/cninja.h"
#include "video/decospr.h"
#include "video/decocomn.h"
/******************************************************************************/
@ -139,7 +138,7 @@ UINT32 cninja_state::screen_update_cninja(screen_device &screen, bitmap_ind16 &b
deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@ -183,7 +182,7 @@ UINT32 cninja_state::screen_update_edrandy(screen_device &screen, bitmap_ind16 &
deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@ -234,7 +233,7 @@ UINT32 cninja_state::screen_update_robocop2(screen_device &screen, bitmap_ind16
break;
}
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -11,7 +11,7 @@
#include "emu.h"
#include "includes/crospang.h"
#include "video/decospr.h"
WRITE16_MEMBER(crospang_state::bestri_tilebank_w)
{
@ -114,6 +114,6 @@ UINT32 crospang_state::screen_update_crospang(screen_device &screen, bitmap_ind1
{
m_bg_layer->draw(bitmap, cliprect, 0, 0);
m_fg_layer->draw(bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}

View File

@ -20,7 +20,6 @@
#include "emu.h"
#include "includes/darkseal.h"
#include "video/decospr.h"
#include "video/deco16ic.h"
/***************************************************************************/
@ -72,7 +71,7 @@ UINT32 darkseal_state::screen_update_darkseal(screen_device &screen, bitmap_ind1
deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;

View File

@ -1,6 +1,5 @@
#include "emu.h"
#include "includes/deco32.h"
#include "video/decospr.h"
#include "video/deco16ic.h"
/******************************************************************************/
@ -518,7 +517,7 @@ VIDEO_START_MEMBER(deco32_state,captaven)
VIDEO_START_MEMBER(deco32_state,fghthist)
{
m_dirty_palette = auto_alloc_array(machine(), UINT8, 4096);
machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
m_sprgen->alloc_sprite_bitmap();
m_has_ace_ram=0;
}
@ -599,8 +598,8 @@ UINT32 deco32_state::screen_update_captaven(screen_device &screen, bitmap_ind16
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
machine().device<decospr_device>("spritegen")->set_alt_format(true);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x400);
m_sprgen->set_alt_format(true);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x400);
return 0;
}
@ -655,7 +654,7 @@ UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32
deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true);
/* Draw screen */
deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
@ -663,17 +662,17 @@ UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32
if(m_pri&1)
{
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
}
else
{
deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
}
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;

View File

@ -1,7 +1,6 @@
#include "emu.h"
#include "video/deco16ic.h"
#include "includes/dietgo.h"
#include "video/decospr.h"
UINT32 dietgo_state::screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
@ -16,6 +15,6 @@ UINT32 dietgo_state::screen_update_dietgo(screen_device &screen, bitmap_ind16 &b
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}

View File

@ -35,7 +35,7 @@ Note: if MAME_DEBUG is defined, pressing Z with:
#include "emu.h"
#include "includes/esd16.h"
#include "video/decospr.h"
/***************************************************************************
@ -217,7 +217,7 @@ if (machine().input().code_pressed(KEYCODE_Z))
}
if (layers_ctrl & 4) machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
if (layers_ctrl & 4) m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
// popmessage("%04x %04x %04x %04x %04x",head_unknown1[0],head_layersize[0],head_unknown3[0],head_unknown4[0],head_unknown5[0]);
return 0;

View File

@ -7,7 +7,6 @@
#include "emu.h"
#include "includes/funkyjet.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
/******************************************************************************/
@ -22,6 +21,6 @@ UINT32 funkyjet_state::screen_update_funkyjet(screen_device &screen, bitmap_ind1
bitmap.fill(768, cliprect);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}

View File

@ -1,6 +1,6 @@
#include "emu.h"
#include "includes/gotcha.h"
#include "video/decospr.h"
/***************************************************************************
@ -103,6 +103,6 @@ UINT32 gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &b
{
m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}

View File

@ -14,7 +14,7 @@
#include "emu.h"
#include "includes/lemmings.h"
#include "video/decospr.h"
/******************************************************************************/
@ -38,7 +38,7 @@ void lemmings_state::video_start()
machine().gfx[2]->set_source(m_vram_buffer);
machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
m_sprgen->alloc_sprite_bitmap();
machine().device<decospr_device>("spritegen2")->alloc_sprite_bitmap();
save_item(NAME(m_bitmap0));
@ -135,11 +135,11 @@ UINT32 lemmings_state::screen_update_lemmings(screen_device &screen, bitmap_rgb3
rect.max_y = cliprect.max_y;
rect.min_y = cliprect.min_y;
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_1, 0x400, true);
m_sprgen->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_1, 0x400, true);
machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_0, 0x400, true);
bitmap.fill(get_black_pen(machine()), cliprect);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x300, 0xff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x300, 0xff);
/* Pixel layer can be windowed in hardware (two player mode) */
if ((m_control_data[6] & 2) == 0)
@ -158,7 +158,7 @@ UINT32 lemmings_state::screen_update_lemmings(screen_device &screen, bitmap_rgb3
}
machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0xff);
machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x300, 0xff);
m_sprgen->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x300, 0xff);
m_vram_tilemap->draw(bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0xff);
return 0;

View File

@ -1,7 +1,6 @@
#include "emu.h"
#include "video/deco16ic.h"
#include "includes/pktgaldx.h"
#include "video/decospr.h"
/* Video on the orginal */
@ -17,7 +16,7 @@ UINT32 pktgaldx_state::screen_update_pktgaldx(screen_device &screen, bitmap_ind1
machine().priority_bitmap.fill(0);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400, true);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400, true);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -5,7 +5,7 @@
#include "emu.h"
#include "includes/simpl156.h"
#include "video/deco16ic.h"
#include "video/decospr.h"
void simpl156_state::video_start()
@ -38,6 +38,6 @@ UINT32 simpl156_state::screen_update_simpl156(screen_device &screen, bitmap_ind1
//FIXME: flip_screen_x should not be written!
flip_screen_set_no_update(1);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
return 0;
}

View File

@ -15,7 +15,7 @@ End sequence uses rowscroll '98 c0' on pf1 (jmp to 1d61a on supbtimj)
#include "emu.h"
#include "video/deco16ic.h"
#include "includes/supbtime.h"
#include "video/decospr.h"
/******************************************************************************/
@ -32,7 +32,7 @@ UINT32 supbtime_state::screen_update_supbtime(screen_device &screen, bitmap_ind1
bitmap.fill(768, cliprect);
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}

View File

@ -16,7 +16,6 @@ to switch between 8*8 tiles and 16*16 tiles.
#include "emu.h"
#include "includes/tumbleb.h"
#include "video/decospr.h"
/******************************************************************************/
@ -434,7 +433,7 @@ UINT32 tumbleb_state::screen_update_sdfight(screen_device &screen, bitmap_ind16
tumbleb_draw_common(machine(),bitmap,cliprect, offs2, -16, offs, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
return 0;
}
@ -493,6 +492,6 @@ UINT32 tumbleb_state::screen_update_suprtrio(screen_device &screen, bitmap_ind16
m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
return 0;
}

View File

@ -16,7 +16,6 @@ to switch between 8*8 tiles and 16*16 tiles.
#include "emu.h"
#include "video/deco16ic.h"
#include "includes/tumblep.h"
#include "video/decospr.h"
UINT32 tumblep_state::screen_update_tumblep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
@ -32,6 +31,6 @@ UINT32 tumblep_state::screen_update_tumblep(screen_device &screen, bitmap_ind16
deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
m_sprgen->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}