tc0080vco: updated to use inline configs. nw.

This commit is contained in:
Fabio Priuli 2014-04-08 16:11:51 +00:00
parent 9c8533cfcf
commit 0f099891b4
5 changed files with 65 additions and 75 deletions

View File

@ -646,20 +646,6 @@ void taitoh_state::machine_start()
}
static const tc0080vco_interface syvalion_tc0080vco_intf =
{
0, 1, /* gfxnum, txnum */
1, 1, -2,
1
};
static const tc0080vco_interface recordbr_tc0080vco_intf =
{
0, 1, /* gfxnum, txnum */
1, 1, -2,
0
};
static MACHINE_CONFIG_START( syvalion, taitoh_state )
/* basic machine hardware */
@ -693,7 +679,11 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state )
MCFG_PALETTE_ADD("palette", 33*16)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", syvalion_tc0080vco_intf)
MCFG_DEVICE_ADD("tc0080vco", TC0080VCO, 0)
MCFG_TC0080VCO_GFX_REGION(0)
MCFG_TC0080VCO_TX_REGION(1)
MCFG_TC0080VCO_OFFSETS(1, 1)
MCFG_TC0080VCO_BGFLIP_OFFS(-2)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
MCFG_TC0080VCO_PALETTE("palette")
@ -745,7 +735,11 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state )
MCFG_PALETTE_ADD("palette", 32*16)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", recordbr_tc0080vco_intf)
MCFG_DEVICE_ADD("tc0080vco", TC0080VCO, 0)
MCFG_TC0080VCO_GFX_REGION(0)
MCFG_TC0080VCO_TX_REGION(1)
MCFG_TC0080VCO_OFFSETS(1, 1)
MCFG_TC0080VCO_BGFLIP_OFFS(-2)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
MCFG_TC0080VCO_PALETTE("palette")
@ -805,7 +799,11 @@ static MACHINE_CONFIG_START( dleague, taitoh_state )
MCFG_PALETTE_ADD("palette", 33*16)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", recordbr_tc0080vco_intf)
MCFG_DEVICE_ADD("tc0080vco", TC0080VCO, 0)
MCFG_TC0080VCO_GFX_REGION(0)
MCFG_TC0080VCO_TX_REGION(1)
MCFG_TC0080VCO_OFFSETS(1, 1)
MCFG_TC0080VCO_BGFLIP_OFFS(-2)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
MCFG_TC0080VCO_PALETTE("palette")

View File

@ -230,13 +230,6 @@ static const ay8910_interface ay8910_config =
DEVCB_NULL, DEVCB_NULL,
};
static const tc0080vco_interface parentj_intf =
{
0, 1, /* gfxnum, txnum */
1, 1, -2,
0
};
void taitoo_state::machine_start()
{
}
@ -260,7 +253,11 @@ static MACHINE_CONFIG_START( parentj, taitoo_state )
MCFG_PALETTE_ADD("palette", 33*16)
MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
MCFG_TC0080VCO_ADD("tc0080vco", parentj_intf)
MCFG_DEVICE_ADD("tc0080vco", TC0080VCO, 0)
MCFG_TC0080VCO_GFX_REGION(0)
MCFG_TC0080VCO_TX_REGION(1)
MCFG_TC0080VCO_OFFSETS(1, 1)
MCFG_TC0080VCO_BGFLIP_OFFS(-2)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
MCFG_TC0080VCO_PALETTE("palette")

View File

@ -638,13 +638,6 @@ WRITE_LINE_MEMBER(taitoair_state::irqhandler)
MACHINE DRIVERS
************************************************************/
static const tc0080vco_interface airsys_tc0080vco_intf =
{
0, 1, /* gfxnum, txnum */
1, 1, -2,
0
};
void taitoair_state::machine_start()
{
UINT8 *ROM = memregion("audiocpu")->base();
@ -716,7 +709,11 @@ static MACHINE_CONFIG_START( airsys, taitoair_state )
MCFG_PALETTE_ADD_INIT_BLACK("palette", 512*16+512*16)
MCFG_TC0080VCO_ADD("tc0080vco", airsys_tc0080vco_intf)
MCFG_DEVICE_ADD("tc0080vco", TC0080VCO, 0)
MCFG_TC0080VCO_GFX_REGION(0)
MCFG_TC0080VCO_TX_REGION(1)
MCFG_TC0080VCO_OFFSETS(1, 1)
MCFG_TC0080VCO_BGFLIP_OFFS(-2)
MCFG_TC0080VCO_GFXDECODE("gfxdecode")
MCFG_TC0080VCO_PALETTE("palette")

View File

@ -95,6 +95,12 @@ tc0080vco_device::tc0080vco_device(const machine_config &mconfig, const char *ta
m_bg1_scrollx(0),
m_bg1_scrolly(0),
m_flipscreen(0),
m_gfxnum(0),
m_txnum(0),
m_bg_xoffs(0),
m_bg_yoffs(0),
m_bg_flip_yoffs(0),
m_has_fg0(1),
m_gfxdecode(*this),
m_palette(*this)
{
@ -120,25 +126,6 @@ void tc0080vco_device::static_set_palette_tag(device_t &device, const char *tag)
downcast<tc0080vco_device &>(device).m_palette.set_tag(tag);
}
//-------------------------------------------------
// device_config_complete - perform any
// operations now that the configuration is
// complete
//-------------------------------------------------
void tc0080vco_device::device_config_complete()
{
// inherit a copy of the static data
const tc0080vco_interface *intf = reinterpret_cast<const tc0080vco_interface *>(static_config());
if (intf != NULL)
*static_cast<tc0080vco_interface *>(this) = *intf;
// or initialize to defaults if none provided
else
{
}
}
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------

View File

@ -1,19 +1,7 @@
#ifndef __TC0080VCO_H__
#define __TC0080VCO_H__
struct tc0080vco_interface
{
int m_gfxnum;
int m_txnum;
int m_bg_xoffs, m_bg_yoffs;
int m_bg_flip_yoffs;
int m_has_fg0; /* for debug */
};
class tc0080vco_device : public device_t,
public tc0080vco_interface
class tc0080vco_device : public device_t
{
public:
tc0080vco_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
@ -22,12 +10,22 @@ public:
// static configuration
static void static_set_gfxdecode_tag(device_t &device, const char *tag);
static void static_set_palette_tag(device_t &device, const char *tag);
static void set_gfx_region(device_t &device, int gfxnum) { downcast<tc0080vco_device &>(device).m_gfxnum = gfxnum; }
static void set_tx_region(device_t &device, int txnum) { downcast<tc0080vco_device &>(device).m_txnum = txnum; }
static void set_offsets(device_t &device, int x_offset, int y_offset)
{
tc0080vco_device &dev = downcast<tc0080vco_device &>(device);
dev.m_bg_xoffs = x_offset;
dev.m_bg_yoffs = y_offset;
}
static void set_bgflip_yoffs(device_t &device, int offs) { downcast<tc0080vco_device &>(device).m_bg_flip_yoffs = offs; }
DECLARE_READ16_MEMBER( word_r );
DECLARE_WRITE16_MEMBER( word_w );
void tilemap_update();
void tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int layer, int flags, UINT32 priority);
void set_fg0_debug(bool debug) { m_has_fg0 = debug ? 0 : 1; }
DECLARE_READ16_MEMBER( cram_0_r );
DECLARE_READ16_MEMBER( cram_1_r );
@ -37,12 +35,11 @@ public:
READ_LINE_MEMBER( flipscreen_r );
void postload();
protected:
protected:
// device-level overrides
virtual void device_config_complete();
virtual void device_start();
private:
private:
// internal state
UINT16 * m_ram;
UINT16 * m_bg0_ram_0;
@ -54,8 +51,7 @@ public:
UINT16 * m_char_ram;
UINT16 * m_bgscroll_ram;
/* FIXME: This sprite related stuff still needs to be accessed in
video/taito_h */
/* FIXME: This sprite related stuff still needs to be accessed in video/taito_h */
UINT16 * m_chain_ram_0;
UINT16 * m_chain_ram_1;
UINT16 * m_spriteram;
@ -69,6 +65,13 @@ public:
tilemap_t *m_tilemap[3];
INT32 m_flipscreen;
int m_gfxnum;
int m_txnum;
int m_bg_xoffs, m_bg_yoffs;
int m_bg_flip_yoffs;
int m_has_fg0; // for debug, it can be enabled with set_fg0_debug(true)
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
@ -81,9 +84,17 @@ public:
extern const device_type TC0080VCO;
#define MCFG_TC0080VCO_ADD(_tag, _interface) \
MCFG_DEVICE_ADD(_tag, TC0080VCO, 0) \
MCFG_DEVICE_CONFIG(_interface)
#define MCFG_TC0080VCO_GFX_REGION(_region) \
tc0080vco_device::set_gfx_region(*device, _region);
#define MCFG_TC0080VCO_TX_REGION(_region) \
tc0080vco_device::set_tx_region(*device, _region);
#define MCFG_TC0080VCO_OFFSETS(_xoffs, _yoffs) \
tc0080vco_device::set_offsets(*device, _xoffs, _yoffs);
#define MCFG_TC0080VCO_BGFLIP_OFFS(_offs) \
tc0080vco_device::set_bgflip_yoffs(*device, _offs);
#define MCFG_TC0080VCO_GFXDECODE(_gfxtag) \
tc0080vco_device::static_set_gfxdecode_tag(*device, "^" _gfxtag);