mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
huc6260_device: converted to devcb2 (nw)
This commit is contained in:
parent
fae8128093
commit
a1cd7333a1
@ -43,27 +43,13 @@ PALETTE_INIT_MEMBER(huc6260_device, huc6260)
|
||||
const device_type HUC6260 = &device_creator<huc6260_device>;
|
||||
|
||||
|
||||
void huc6260_device::device_config_complete()
|
||||
{
|
||||
const huc6260_interface *intf = reinterpret_cast<const huc6260_interface *>(static_config());
|
||||
|
||||
if ( intf != NULL )
|
||||
{
|
||||
*static_cast<huc6260_interface *>(this) = *intf;
|
||||
}
|
||||
else
|
||||
{
|
||||
memset(&m_get_next_pixel_data, 0, sizeof(m_get_next_pixel_data));
|
||||
memset(&m_get_time_til_next_event, 0, sizeof(m_get_time_til_next_event));
|
||||
memset(&m_hsync_changed, 0, sizeof(m_hsync_changed));
|
||||
memset(&m_vsync_changed, 0, sizeof(m_vsync_changed));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
huc6260_device::huc6260_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, HUC6260, "HuC6260 VCE", tag, owner, clock, "huc6260", __FILE__),
|
||||
device_video_interface(mconfig, *this)
|
||||
device_video_interface(mconfig, *this),
|
||||
m_next_pixel_data_cb(*this),
|
||||
m_time_til_next_event_cb(*this),
|
||||
m_vsync_changed_cb(*this),
|
||||
m_hsync_changed_cb(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -82,7 +68,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
{
|
||||
g_profiler.start( PROFILER_VIDEO );
|
||||
/* Get next pixel information */
|
||||
m_pixel_data = m_get_next_pixel_data( 0, 0xffff );
|
||||
m_pixel_data = m_next_pixel_data_cb( 0, 0xffff );
|
||||
g_profiler.stop();
|
||||
if ( m_greyscales )
|
||||
{
|
||||
@ -97,7 +83,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
switch( h )
|
||||
{
|
||||
case HUC6260_HSYNC_START: /* Start of HSync */
|
||||
m_hsync_changed( 0 );
|
||||
m_hsync_changed_cb( 0 );
|
||||
// if ( v == 0 )
|
||||
// {
|
||||
// /* Check if the screen should be resized */
|
||||
@ -118,7 +104,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
break;
|
||||
|
||||
case 0: /* End of HSync */
|
||||
m_hsync_changed( 1 );
|
||||
m_hsync_changed_cb( 1 );
|
||||
m_pixel_clock = 0;
|
||||
v = ( v + 1 ) % m_height;
|
||||
bitmap_line = &m_bmp->pix16(v);
|
||||
@ -127,7 +113,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
case HUC6260_HSYNC_START + 30: /* End/Start of VSync */
|
||||
if ( v>= m_height - 4 )
|
||||
{
|
||||
m_vsync_changed( ( v >= m_height - 4 && v < m_height - 1 ) ? 0 : 1 );
|
||||
m_vsync_changed_cb( ( v >= m_height - 4 && v < m_height - 1 ) ? 0 : 1 );
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -158,7 +144,7 @@ void huc6260_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
|
||||
/* Ask our slave device for time until next possible event */
|
||||
{
|
||||
UINT16 next_event_clocks = m_get_time_til_next_event( 0, 0xffff );
|
||||
UINT16 next_event_clocks = m_time_til_next_event_cb( 0, 0xffff );
|
||||
int event_hpos, event_vpos;
|
||||
|
||||
/* Adjust for pixel clocks per pixel */
|
||||
@ -255,16 +241,16 @@ void huc6260_device::device_start()
|
||||
m_bmp = auto_bitmap_ind16_alloc( machine(), HUC6260_WPF, HUC6260_LPF );
|
||||
|
||||
/* Resolve callbacks */
|
||||
m_hsync_changed.resolve( hsync_changed, *this );
|
||||
m_vsync_changed.resolve( vsync_changed, *this );
|
||||
m_get_next_pixel_data.resolve( get_next_pixel_data, *this );
|
||||
m_get_time_til_next_event.resolve( get_time_til_next_event, *this );
|
||||
m_hsync_changed_cb.resolve();
|
||||
m_vsync_changed_cb.resolve();
|
||||
m_next_pixel_data_cb.resolve();
|
||||
m_time_til_next_event_cb.resolve();
|
||||
|
||||
/* We want to have a valid screen and valid callbacks */
|
||||
assert( ! m_hsync_changed.isnull() );
|
||||
assert( ! m_vsync_changed.isnull() );
|
||||
assert( ! m_get_next_pixel_data.isnull() );
|
||||
assert( ! m_get_time_til_next_event.isnull() );
|
||||
assert( ! m_hsync_changed_cb.isnull() );
|
||||
assert( ! m_vsync_changed_cb.isnull() );
|
||||
assert( ! m_next_pixel_data_cb.isnull() );
|
||||
assert( ! m_time_til_next_event_cb.isnull() );
|
||||
|
||||
save_item(NAME(m_last_h));
|
||||
save_item(NAME(m_last_v));
|
||||
|
@ -18,36 +18,31 @@
|
||||
#define HUC6260_LPF 263 /* max number of lines in a single frame */
|
||||
|
||||
|
||||
#define MCFG_HUC6260_ADD( _tag, clock, _intrf ) \
|
||||
MCFG_DEVICE_ADD( _tag, HUC6260, clock ) \
|
||||
MCFG_DEVICE_CONFIG( _intrf )
|
||||
|
||||
|
||||
struct huc6260_interface
|
||||
{
|
||||
/* Callback function to retrieve pixel data */
|
||||
devcb_read16 get_next_pixel_data;
|
||||
|
||||
/* TODO: Choose proper types */
|
||||
/* Callback function to get time until next event */
|
||||
devcb_read16 get_time_til_next_event;
|
||||
|
||||
/* Callback function which gets called when vsync changes */
|
||||
devcb_write_line vsync_changed;
|
||||
|
||||
/* Callback function which gets called when hsync changes */
|
||||
devcb_write_line hsync_changed;
|
||||
};
|
||||
|
||||
#define MCFG_HUC6260_NEXT_PIXEL_DATA_CB(_devcb) \
|
||||
devcb = &huc6260_device::set_next_pixel_data_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(_devcb) \
|
||||
devcb = &huc6260_device::set_time_til_next_event_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_HUC6260_VSYNC_CHANGED_CB(_devcb) \
|
||||
devcb = &huc6260_device::set_vsync_changed_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_HUC6260_HSYNC_CHANGED_CB(_devcb) \
|
||||
devcb = &huc6260_device::set_hsync_changed_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
|
||||
class huc6260_device : public device_t,
|
||||
public device_video_interface,
|
||||
public huc6260_interface
|
||||
public device_video_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
huc6260_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
template<class _Object> static devcb2_base &set_next_pixel_data_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_next_pixel_data_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_time_til_next_event_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_time_til_next_event_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_vsync_changed_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_vsync_changed_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_hsync_changed_callback(device_t &device, _Object object) { return downcast<huc6260_device &>(device).m_hsync_changed_cb.set_callback(object); }
|
||||
|
||||
void video_update(bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
DECLARE_WRITE8_MEMBER( write );
|
||||
@ -55,7 +50,6 @@ public:
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_config_complete();
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
@ -67,10 +61,18 @@ private:
|
||||
int m_height;
|
||||
|
||||
/* callbacks */
|
||||
devcb_resolved_read16 m_get_next_pixel_data;
|
||||
devcb_resolved_read16 m_get_time_til_next_event;
|
||||
devcb_resolved_write_line m_hsync_changed;
|
||||
devcb_resolved_write_line m_vsync_changed;
|
||||
/* Callback function to retrieve pixel data */
|
||||
devcb2_read16 m_next_pixel_data_cb;
|
||||
|
||||
/* TODO: Choose proper types */
|
||||
/* Callback function to get time until next event */
|
||||
devcb2_read16 m_time_til_next_event_cb;
|
||||
|
||||
/* Callback function which gets called when vsync changes */
|
||||
devcb2_write_line m_vsync_changed_cb;
|
||||
|
||||
/* Callback function which gets called when hsync changes */
|
||||
devcb2_write_line m_hsync_changed_cb;
|
||||
|
||||
UINT16 m_palette[512];
|
||||
UINT16 m_address;
|
||||
|
@ -197,14 +197,6 @@ static const huc6202_interface sgx_huc6202_config =
|
||||
};
|
||||
|
||||
|
||||
static const huc6260_interface sgx_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, hsync_changed )
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( ggconnie, ggconnie_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
@ -217,7 +209,11 @@ static MACHINE_CONFIG_START( ggconnie, ggconnie_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER( ggconnie_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK/3, sgx_huc6260_config )
|
||||
MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK/3 )
|
||||
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6202", huc6202_device, next_pixel))
|
||||
MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6202", huc6202_device, time_until_next_event))
|
||||
MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, vsync_changed))
|
||||
MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, hsync_changed))
|
||||
MCFG_DEVICE_ADD( "huc6270_0", HUC6270, 0 )
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed))
|
||||
|
@ -174,14 +174,6 @@ static const c6280_interface c6280_config =
|
||||
"maincpu"
|
||||
};
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( paranoia, paranoia_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
@ -205,7 +197,11 @@ static MACHINE_CONFIG_START( paranoia, paranoia_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK )
|
||||
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel))
|
||||
MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event))
|
||||
MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed))
|
||||
MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed))
|
||||
MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 )
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_common_state, pce_irq_changed))
|
||||
|
@ -368,15 +368,6 @@ WRITE_LINE_MEMBER(tourvision_state::pce_irq_changed)
|
||||
m_maincpu->set_input_line(0, state);
|
||||
}
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( tourvision, tourvision_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
@ -393,7 +384,11 @@ static MACHINE_CONFIG_START( tourvision, tourvision_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK )
|
||||
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel))
|
||||
MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event))
|
||||
MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed))
|
||||
MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed))
|
||||
MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 )
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(tourvision_state, pce_irq_changed))
|
||||
|
@ -311,13 +311,6 @@ WRITE_LINE_MEMBER(uapce_state::pce_irq_changed)
|
||||
}
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
static MACHINE_CONFIG_START( uapce, uapce_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", H6280, PCE_MAIN_CLOCK/3)
|
||||
@ -335,7 +328,11 @@ static MACHINE_CONFIG_START( uapce, uapce_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_common_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
MCFG_HUC6260_ADD( "huc6260", PCE_MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_DEVICE_ADD( "huc6260", HUC6260, PCE_MAIN_CLOCK )
|
||||
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel))
|
||||
MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event))
|
||||
MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed))
|
||||
MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed))
|
||||
MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 )
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(uapce_state, pce_irq_changed))
|
||||
|
@ -302,15 +302,6 @@ WRITE_LINE_MEMBER(pce_state::pce_irq_changed)
|
||||
}
|
||||
|
||||
|
||||
static const huc6260_interface pce_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270", huc6270_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6270", huc6270_device, hsync_changed )
|
||||
};
|
||||
|
||||
|
||||
static const huc6202_interface sgx_huc6202_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6270_0", huc6270_device, next_pixel ),
|
||||
@ -328,15 +319,6 @@ static const huc6202_interface sgx_huc6202_config =
|
||||
};
|
||||
|
||||
|
||||
static const huc6260_interface sgx_huc6260_config =
|
||||
{
|
||||
DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, next_pixel ),
|
||||
DEVCB_DEVICE_MEMBER16( "huc6202", huc6202_device, time_until_next_event ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, vsync_changed ),
|
||||
DEVCB_DEVICE_LINE_MEMBER( "huc6202", huc6202_device, hsync_changed )
|
||||
};
|
||||
|
||||
|
||||
static SLOT_INTERFACE_START(pce_cart)
|
||||
SLOT_INTERFACE_INTERNAL("rom", PCE_ROM_STD)
|
||||
SLOT_INTERFACE_INTERNAL("cdsys3u", PCE_ROM_CDSYS3)
|
||||
@ -361,7 +343,11 @@ static MACHINE_CONFIG_START( pce_common, pce_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
MCFG_HUC6260_ADD( "huc6260", MAIN_CLOCK, pce_huc6260_config )
|
||||
MCFG_DEVICE_ADD( "huc6260", HUC6260, MAIN_CLOCK )
|
||||
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6270", huc6270_device, next_pixel))
|
||||
MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6270", huc6270_device, time_until_next_event))
|
||||
MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, vsync_changed))
|
||||
MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6270", huc6270_device, hsync_changed))
|
||||
MCFG_DEVICE_ADD( "huc6270", HUC6270, 0 )
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_state, pce_irq_changed))
|
||||
@ -406,7 +392,11 @@ static MACHINE_CONFIG_START( sgx, pce_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER( pce_state, screen_update )
|
||||
MCFG_SCREEN_PALETTE("huc6260:palette")
|
||||
|
||||
MCFG_HUC6260_ADD( "huc6260", MAIN_CLOCK, sgx_huc6260_config )
|
||||
MCFG_DEVICE_ADD( "huc6260", HUC6260, MAIN_CLOCK )
|
||||
MCFG_HUC6260_NEXT_PIXEL_DATA_CB(DEVREAD16("huc6202", huc6202_device, next_pixel))
|
||||
MCFG_HUC6260_TIME_TIL_NEXT_EVENT_CB(DEVREAD16("huc6202", huc6202_device, time_until_next_event))
|
||||
MCFG_HUC6260_VSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, vsync_changed))
|
||||
MCFG_HUC6260_HSYNC_CHANGED_CB(DEVWRITELINE("huc6202", huc6202_device, hsync_changed))
|
||||
MCFG_DEVICE_ADD( "huc6270_0", HUC6270, 0 )
|
||||
MCFG_HUC6270_VRAM_SIZE(0x10000)
|
||||
MCFG_HUC6270_IRQ_CHANGED_CB(WRITELINE(pce_state, pce_irq_changed))
|
||||
|
Loading…
Reference in New Issue
Block a user