mirror of
https://github.com/holub/mame
synced 2025-05-20 04:39:11 +03:00
mb_vcu: updated to use inline configs. nw.
This commit is contained in:
parent
ed32a3321c
commit
09533a06ae
@ -156,33 +156,11 @@ mb_vcu_device::mb_vcu_device(const machine_config &mconfig, const char *tag, dev
|
|||||||
device_video_interface(mconfig, *this),
|
device_video_interface(mconfig, *this),
|
||||||
m_videoram_space_config("videoram", ENDIANNESS_LITTLE, 8, 19, 0, NULL, *ADDRESS_MAP_NAME(mb_vcu_vram)),
|
m_videoram_space_config("videoram", ENDIANNESS_LITTLE, 8, 19, 0, NULL, *ADDRESS_MAP_NAME(mb_vcu_vram)),
|
||||||
m_paletteram_space_config("palram", ENDIANNESS_LITTLE, 8, 16, 0, NULL, *ADDRESS_MAP_NAME(mb_vcu_pal_ram)),
|
m_paletteram_space_config("palram", ENDIANNESS_LITTLE, 8, 16, 0, NULL, *ADDRESS_MAP_NAME(mb_vcu_pal_ram)),
|
||||||
|
m_cpu(*this),
|
||||||
m_palette(*this)
|
m_palette(*this)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// device_config_complete - perform any
|
|
||||||
// operations now that the configuration is
|
|
||||||
// complete
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
void mb_vcu_device::device_config_complete()
|
|
||||||
{
|
|
||||||
// inherit a copy of the static data
|
|
||||||
const mb_vcu_interface *intf = reinterpret_cast<const mb_vcu_interface *>(static_config());
|
|
||||||
if (intf != NULL)
|
|
||||||
{
|
|
||||||
*static_cast<mb_vcu_interface *>(this) = *intf;
|
|
||||||
}
|
|
||||||
|
|
||||||
// or initialize to defaults if none provided
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_cpu_tag = NULL;
|
|
||||||
//m_screen_tag = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// device_validity_check - perform validity checks
|
// device_validity_check - perform validity checks
|
||||||
// on this device
|
// on this device
|
||||||
@ -200,7 +178,6 @@ void mb_vcu_device::device_validity_check(validity_checker &valid) const
|
|||||||
void mb_vcu_device::device_start()
|
void mb_vcu_device::device_start()
|
||||||
{
|
{
|
||||||
// TODO: m_screen_tag
|
// TODO: m_screen_tag
|
||||||
m_cpu = machine().device<cpu_device>(m_cpu_tag);
|
|
||||||
m_ram = auto_alloc_array_clear(machine(), UINT8, 0x800);
|
m_ram = auto_alloc_array_clear(machine(), UINT8, 0x800);
|
||||||
m_palram = auto_alloc_array_clear(machine(), UINT8, 0x100);
|
m_palram = auto_alloc_array_clear(machine(), UINT8, 0x100);
|
||||||
|
|
||||||
|
@ -1,44 +1,20 @@
|
|||||||
// license: ?
|
// license: ?
|
||||||
// copyright-holders: Angelo Salese
|
// copyright-holders: Angelo Salese
|
||||||
/***************************************************************************
|
|
||||||
|
|
||||||
Template for skeleton device
|
|
||||||
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef __MB_VCUDEV_H__
|
#ifndef __MB_VCUDEV_H__
|
||||||
#define __MB_VCUDEV_H__
|
#define __MB_VCUDEV_H__
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
|
||||||
// INTERFACE CONFIGURATION MACROS
|
|
||||||
//**************************************************************************
|
|
||||||
|
|
||||||
#define MCFG_MB_VCU_ADD(_tag,_freq,_config, _palette_tag) \
|
|
||||||
MCFG_DEVICE_ADD(_tag, MB_VCU, _freq) \
|
|
||||||
MCFG_DEVICE_CONFIG(_config) \
|
|
||||||
mb_vcu_device::static_set_palette_tag(*device, "^" _palette_tag);
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// TYPE DEFINITIONS
|
// TYPE DEFINITIONS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
// ======================> mb_vcu_interface
|
|
||||||
|
|
||||||
struct mb_vcu_interface
|
|
||||||
{
|
|
||||||
const char *m_cpu_tag;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ======================> mb_vcu_device
|
// ======================> mb_vcu_device
|
||||||
|
|
||||||
class mb_vcu_device : public device_t,
|
class mb_vcu_device : public device_t,
|
||||||
public device_memory_interface,
|
public device_memory_interface,
|
||||||
public device_video_interface,
|
public device_video_interface
|
||||||
public mb_vcu_interface
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction/destruction
|
// construction/destruction
|
||||||
@ -46,6 +22,7 @@ public:
|
|||||||
|
|
||||||
// static configuration
|
// static configuration
|
||||||
static void static_set_palette_tag(device_t &device, const char *tag);
|
static void static_set_palette_tag(device_t &device, const char *tag);
|
||||||
|
static void set_cpu_tag(device_t &device, const char *tag) { downcast<mb_vcu_device &>(device).m_cpu.set_tag(tag); }
|
||||||
|
|
||||||
// I/O operations
|
// I/O operations
|
||||||
DECLARE_WRITE8_MEMBER( write_vregs );
|
DECLARE_WRITE8_MEMBER( write_vregs );
|
||||||
@ -65,7 +42,6 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_config_complete();
|
|
||||||
virtual void device_validity_check(validity_checker &valid) const;
|
virtual void device_validity_check(validity_checker &valid) const;
|
||||||
virtual void device_start();
|
virtual void device_start();
|
||||||
virtual void device_reset();
|
virtual void device_reset();
|
||||||
@ -81,7 +57,6 @@ private:
|
|||||||
UINT8 m_status;
|
UINT8 m_status;
|
||||||
UINT8 *m_ram;
|
UINT8 *m_ram;
|
||||||
UINT8 *m_palram;
|
UINT8 *m_palram;
|
||||||
cpu_device *m_cpu;
|
|
||||||
UINT16 m_param_offset_latch;
|
UINT16 m_param_offset_latch;
|
||||||
|
|
||||||
INT16 m_xpos, m_ypos;
|
INT16 m_xpos, m_ypos;
|
||||||
@ -95,6 +70,7 @@ private:
|
|||||||
double m_weights_r[2];
|
double m_weights_r[2];
|
||||||
double m_weights_g[3];
|
double m_weights_g[3];
|
||||||
double m_weights_b[3];
|
double m_weights_b[3];
|
||||||
|
required_device<cpu_device> m_cpu;
|
||||||
required_device<palette_device> m_palette;
|
required_device<palette_device> m_palette;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -103,11 +79,14 @@ private:
|
|||||||
extern const device_type MB_VCU;
|
extern const device_type MB_VCU;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
// GLOBAL VARIABLES
|
// INTERFACE CONFIGURATION MACROS
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
|
|
||||||
|
#define MCFG_MB_VCU_CPU(_tag) \
|
||||||
|
mb_vcu_device::set_cpu_tag(*device, "^"_tag);
|
||||||
|
|
||||||
|
#define MCFG_MB_VCU_PALETTE(_palette_tag) \
|
||||||
|
mb_vcu_device::static_set_palette_tag(*device, "^" _palette_tag);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1466,11 +1466,6 @@ void mazerbla_state::machine_reset()
|
|||||||
m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mazerbla_state::irq_callback),this));
|
m_maincpu->set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(mazerbla_state::irq_callback),this));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const mb_vcu_interface vcu_interface =
|
|
||||||
{
|
|
||||||
"sub2"
|
|
||||||
};
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
|
static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
@ -1493,7 +1488,9 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
|
|||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
|
||||||
|
|
||||||
/* synchronization forced on the fly */
|
/* synchronization forced on the fly */
|
||||||
MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface,"palette")
|
MCFG_DEVICE_ADD("vcu", MB_VCU, SOUND_CLOCK/4)
|
||||||
|
MCFG_MB_VCU_CPU("sub2")
|
||||||
|
MCFG_MB_VCU_PALETTE("palette")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
@ -1530,7 +1527,9 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
|
|||||||
*/
|
*/
|
||||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
|
MCFG_CPU_VBLANK_INT_DRIVER("screen", mazerbla_state, irq0_line_hold)
|
||||||
|
|
||||||
MCFG_MB_VCU_ADD("vcu",SOUND_CLOCK/4,vcu_interface,"palette")
|
MCFG_DEVICE_ADD("vcu", MB_VCU, SOUND_CLOCK/4)
|
||||||
|
MCFG_MB_VCU_CPU("sub2")
|
||||||
|
MCFG_MB_VCU_PALETTE("palette")
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MCFG_SCREEN_ADD("screen", RASTER)
|
MCFG_SCREEN_ADD("screen", RASTER)
|
||||||
|
Loading…
Reference in New Issue
Block a user