mirror of
https://github.com/holub/mame
synced 2025-07-04 17:38:08 +03:00
315_5124.c: converted to devcb2 (nw)
This commit is contained in:
parent
003f16e1ff
commit
7990fa744f
@ -158,6 +158,9 @@ sega315_5124_device::sega315_5124_device(const machine_config &mconfig, const ch
|
|||||||
, m_cram_size( SEGA315_5124_CRAM_SIZE )
|
, m_cram_size( SEGA315_5124_CRAM_SIZE )
|
||||||
, m_palette_offset( 0 )
|
, m_palette_offset( 0 )
|
||||||
, m_supports_224_240( false )
|
, m_supports_224_240( false )
|
||||||
|
, m_is_pal(false)
|
||||||
|
, m_int_cb(*this)
|
||||||
|
, m_pause_cb(*this)
|
||||||
, m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, NULL, *ADDRESS_MAP_NAME(sega315_5124))
|
, m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, NULL, *ADDRESS_MAP_NAME(sega315_5124))
|
||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
{
|
{
|
||||||
@ -171,6 +174,9 @@ sega315_5124_device::sega315_5124_device(const machine_config &mconfig, device_t
|
|||||||
, m_cram_size( cram_size )
|
, m_cram_size( cram_size )
|
||||||
, m_palette_offset( palette_offset )
|
, m_palette_offset( palette_offset )
|
||||||
, m_supports_224_240( supports_224_240 )
|
, m_supports_224_240( supports_224_240 )
|
||||||
|
, m_is_pal(false)
|
||||||
|
, m_int_cb(*this)
|
||||||
|
, m_pause_cb(*this)
|
||||||
, m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, NULL, *ADDRESS_MAP_NAME(sega315_5124))
|
, m_space_config("videoram", ENDIANNESS_LITTLE, 8, 14, 0, NULL, *ADDRESS_MAP_NAME(sega315_5124))
|
||||||
, m_palette(*this, "palette")
|
, m_palette(*this, "palette")
|
||||||
{
|
{
|
||||||
@ -328,8 +334,8 @@ void sega315_5124_device::device_timer(emu_timer &timer, device_timer_id id, int
|
|||||||
{
|
{
|
||||||
m_irq_state = 1;
|
m_irq_state = 1;
|
||||||
|
|
||||||
if ( !m_cb_int.isnull() )
|
if ( !m_int_cb.isnull() )
|
||||||
m_cb_int(ASSERT_LINE);
|
m_int_cb(ASSERT_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -341,8 +347,8 @@ void sega315_5124_device::device_timer(emu_timer &timer, device_timer_id id, int
|
|||||||
{
|
{
|
||||||
m_irq_state = 1;
|
m_irq_state = 1;
|
||||||
|
|
||||||
if ( !m_cb_int.isnull() )
|
if ( !m_int_cb.isnull() )
|
||||||
m_cb_int(ASSERT_LINE);
|
m_int_cb(ASSERT_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -369,8 +375,8 @@ void sega315_5124_device::process_line_timer()
|
|||||||
if (vpos == vpos_limit - 1)
|
if (vpos == vpos_limit - 1)
|
||||||
{
|
{
|
||||||
m_line_counter = m_reg[0x0a];
|
m_line_counter = m_reg[0x0a];
|
||||||
if ( !m_cb_pause.isnull() )
|
if ( !m_pause_cb.isnull() )
|
||||||
m_cb_pause(0);
|
m_pause_cb(0);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -584,8 +590,8 @@ READ8_MEMBER( sega315_5124_device::register_read )
|
|||||||
{
|
{
|
||||||
m_irq_state = 0;
|
m_irq_state = 0;
|
||||||
|
|
||||||
if ( !m_cb_int.isnull() )
|
if ( !m_int_cb.isnull() )
|
||||||
m_cb_int(CLEAR_LINE);
|
m_int_cb(CLEAR_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -690,9 +696,9 @@ WRITE8_MEMBER( sega315_5124_device::register_write )
|
|||||||
{
|
{
|
||||||
m_irq_state = 0;
|
m_irq_state = 0;
|
||||||
|
|
||||||
if ( !m_cb_int.isnull() )
|
if ( !m_int_cb.isnull() )
|
||||||
{
|
{
|
||||||
m_cb_int(CLEAR_LINE);
|
m_int_cb(CLEAR_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -706,8 +712,8 @@ WRITE8_MEMBER( sega315_5124_device::register_write )
|
|||||||
//
|
//
|
||||||
m_irq_state = 1;
|
m_irq_state = 1;
|
||||||
|
|
||||||
if ( !m_cb_int.isnull() )
|
if ( !m_int_cb.isnull() )
|
||||||
m_cb_int(ASSERT_LINE);
|
m_int_cb(ASSERT_LINE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_addrmode = 0;
|
m_addrmode = 0;
|
||||||
@ -1717,20 +1723,6 @@ void sega315_5124_device::stop_timers()
|
|||||||
DEVICE INTERFACE
|
DEVICE INTERFACE
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
void sega315_5124_device::device_config_complete()
|
|
||||||
{
|
|
||||||
const sega315_5124_interface *intf = reinterpret_cast<const sega315_5124_interface *>(static_config());
|
|
||||||
|
|
||||||
if ( intf != NULL )
|
|
||||||
{
|
|
||||||
*static_cast<sega315_5124_interface *>(this) = *intf;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fatalerror("No sega315_5124_interface supplied\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void sega315_5124_device::vdp_postload()
|
void sega315_5124_device::vdp_postload()
|
||||||
{
|
{
|
||||||
switch (m_y_pixels)
|
switch (m_y_pixels)
|
||||||
@ -1752,8 +1744,8 @@ void sega315_5124_device::vdp_postload()
|
|||||||
void sega315_5124_device::device_start()
|
void sega315_5124_device::device_start()
|
||||||
{
|
{
|
||||||
/* Resolve callbacks */
|
/* Resolve callbacks */
|
||||||
m_cb_int.resolve( m_int_callback, *this );
|
m_int_cb.resolve();
|
||||||
m_cb_pause.resolve( m_pause_callback, *this );
|
m_pause_cb.resolve();
|
||||||
|
|
||||||
/* Allocate video RAM */
|
/* Allocate video RAM */
|
||||||
astring tempstring;
|
astring tempstring;
|
||||||
|
@ -47,21 +47,12 @@
|
|||||||
TYPE DEFINITIONS
|
TYPE DEFINITIONS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
struct sega315_5124_interface
|
|
||||||
{
|
|
||||||
bool m_is_pal; /* false = NTSC, true = PAL */
|
|
||||||
devcb_write_line m_int_callback; /* Interrupt callback function */
|
|
||||||
devcb_write_line m_pause_callback; /* Pause callback function */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
extern const device_type SEGA315_5124; /* aka SMS1 vdp */
|
extern const device_type SEGA315_5124; /* aka SMS1 vdp */
|
||||||
extern const device_type SEGA315_5246; /* aka SMS2 vdp */
|
extern const device_type SEGA315_5246; /* aka SMS2 vdp */
|
||||||
extern const device_type SEGA315_5378; /* aka Gamegear vdp */
|
extern const device_type SEGA315_5378; /* aka Gamegear vdp */
|
||||||
|
|
||||||
|
|
||||||
class sega315_5124_device : public device_t,
|
class sega315_5124_device : public device_t,
|
||||||
public sega315_5124_interface,
|
|
||||||
public device_memory_interface,
|
public device_memory_interface,
|
||||||
public device_video_interface
|
public device_video_interface
|
||||||
{
|
{
|
||||||
@ -70,6 +61,10 @@ public:
|
|||||||
sega315_5124_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
sega315_5124_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||||
sega315_5124_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 cram_size, UINT8 palette_offset, bool supports_224_240, const char *shortname, const char *source);
|
sega315_5124_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 cram_size, UINT8 palette_offset, bool supports_224_240, const char *shortname, const char *source);
|
||||||
|
|
||||||
|
static void set_signal_type(device_t &device, bool is_pal) { downcast<sega315_5124_device &>(device).m_is_pal = is_pal; }
|
||||||
|
template<class _Object> static devcb2_base &set_int_callback(device_t &device, _Object object) { return downcast<sega315_5124_device &>(device).m_int_cb.set_callback(object); }
|
||||||
|
template<class _Object> static devcb2_base &set_pause_callback(device_t &device, _Object object) { return downcast<sega315_5124_device &>(device).m_pause_cb.set_callback(object); }
|
||||||
|
|
||||||
DECLARE_READ8_MEMBER( vram_read );
|
DECLARE_READ8_MEMBER( vram_read );
|
||||||
DECLARE_WRITE8_MEMBER( vram_write );
|
DECLARE_WRITE8_MEMBER( vram_write );
|
||||||
DECLARE_READ8_MEMBER( register_read );
|
DECLARE_READ8_MEMBER( register_read );
|
||||||
@ -106,7 +101,6 @@ protected:
|
|||||||
void check_pending_flags( int hpos );
|
void check_pending_flags( int hpos );
|
||||||
|
|
||||||
// device-level overrides
|
// device-level overrides
|
||||||
virtual void device_config_complete();
|
|
||||||
virtual void device_start();
|
virtual void device_start();
|
||||||
virtual void device_reset();
|
virtual void device_reset();
|
||||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||||
@ -155,8 +149,9 @@ protected:
|
|||||||
sms compatibility mode. */
|
sms compatibility mode. */
|
||||||
int *m_line_buffer;
|
int *m_line_buffer;
|
||||||
int m_current_palette[32];
|
int m_current_palette[32];
|
||||||
devcb_resolved_write_line m_cb_int;
|
bool m_is_pal; /* false = NTSC, true = PAL */
|
||||||
devcb_resolved_write_line m_cb_pause;
|
devcb2_write_line m_int_cb; /* Interrupt callback function */
|
||||||
|
devcb2_write_line m_pause_cb; /* Pause callback function */
|
||||||
emu_timer *m_display_timer;
|
emu_timer *m_display_timer;
|
||||||
emu_timer *m_check_hint_timer;
|
emu_timer *m_check_hint_timer;
|
||||||
emu_timer *m_check_vint_timer;
|
emu_timer *m_check_vint_timer;
|
||||||
@ -207,22 +202,40 @@ protected:
|
|||||||
DEVICE CONFIGURATION MACROS
|
DEVICE CONFIGURATION MACROS
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#define MCFG_SEGA315_5124_ADD(_tag, _interface) \
|
|
||||||
MCFG_DEVICE_ADD(_tag, SEGA315_5124, 0) \
|
|
||||||
MCFG_DEVICE_CONFIG(_interface)
|
|
||||||
|
|
||||||
#define MCFG_SEGA315_5124_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
#define MCFG_SEGA315_5124_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
||||||
|
|
||||||
#define MCFG_SEGA315_5246_ADD(_tag, _interface) \
|
#define MCFG_SEGA315_5124_IS_PAL(_bool) \
|
||||||
MCFG_DEVICE_ADD(_tag, SEGA315_5246, 0) \
|
sega315_5124_device::set_signal_type(*device, _bool);
|
||||||
MCFG_DEVICE_CONFIG(_interface)
|
|
||||||
|
#define MCFG_SEGA315_5124_INT_CB(_devcb) \
|
||||||
|
devcb = &sega315_5124_device::set_int_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
#define MCFG_SEGA315_5124_PAUSE_CB(_devcb) \
|
||||||
|
devcb = &sega315_5124_device::set_pause_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
|
||||||
#define MCFG_SEGA315_5246_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
#define MCFG_SEGA315_5246_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
||||||
|
|
||||||
#define MCFG_SEGA315_5378_ADD(_tag, _interface) \
|
#define MCFG_SEGA315_5246_IS_PAL(_bool) \
|
||||||
MCFG_DEVICE_ADD(_tag, SEGA315_5378, 0) \
|
sega315_5246_device::set_signal_type(*device, _bool);
|
||||||
MCFG_DEVICE_CONFIG(_interface)
|
|
||||||
|
#define MCFG_SEGA315_5246_INT_CB(_devcb) \
|
||||||
|
devcb = &sega315_5246_device::set_int_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
#define MCFG_SEGA315_5246_PAUSE_CB(_devcb) \
|
||||||
|
devcb = &sega315_5246_device::set_pause_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
|
||||||
#define MCFG_SEGA315_5378_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
#define MCFG_SEGA315_5378_SET_SCREEN MCFG_VIDEO_SET_SCREEN
|
||||||
|
|
||||||
|
#define MCFG_SEGA315_5378_IS_PAL(_bool) \
|
||||||
|
sega315_5378_device::set_signal_type(*device, _bool);
|
||||||
|
|
||||||
|
#define MCFG_SEGA315_5378_INT_CB(_devcb) \
|
||||||
|
devcb = &sega315_5378_device::set_int_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
#define MCFG_SEGA315_5378_PAUSE_CB(_devcb) \
|
||||||
|
devcb = &sega315_5378_device::set_pause_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
|
||||||
#endif /* __SEGA315_5124_H__ */
|
#endif /* __SEGA315_5124_H__ */
|
||||||
|
@ -586,13 +586,6 @@ WRITE_LINE_MEMBER( mplay_state::bios_int_callback )
|
|||||||
m_bioscpu->set_input_line(0, state);
|
m_bioscpu->set_input_line(0, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const sega315_5124_interface bios_vdp_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(mplay_state, bios_int_callback),
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( megaplay, mplay_state )
|
static MACHINE_CONFIG_START( megaplay, mplay_state )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_FRAGMENT_ADD(md_ntsc)
|
MCFG_FRAGMENT_ADD(md_ntsc)
|
||||||
@ -616,12 +609,8 @@ static MACHINE_CONFIG_START( megaplay, mplay_state )
|
|||||||
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay)
|
MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay)
|
||||||
|
|
||||||
MCFG_DEVICE_REMOVE("gen_vdp")
|
MCFG_DEVICE_MODIFY("gen_vdp")
|
||||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", bios_vdp_intf)
|
MCFG_SEGAGEN_VDP_INT_CB(WRITELINE(mplay_state, bios_int_callback))
|
||||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
|
|
||||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
|
|
||||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
|
|
||||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
|
@ -598,27 +598,11 @@ WRITE_LINE_MEMBER( mtech_state::bios_int_callback )
|
|||||||
m_bioscpu->set_input_line(0, state);
|
m_bioscpu->set_input_line(0, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const sega315_5124_interface bios_vdp_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(mtech_state, bios_int_callback),
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
WRITE_LINE_MEMBER( mtech_state::snd_int_callback )
|
WRITE_LINE_MEMBER( mtech_state::snd_int_callback )
|
||||||
{
|
{
|
||||||
m_z80snd->set_input_line(0, state);
|
m_z80snd->set_input_line(0, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const sega315_5124_interface main_vdp_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(mtech_state, snd_int_callback),
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( megatech, mtech_state )
|
static MACHINE_CONFIG_START( megatech, mtech_state )
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MCFG_FRAGMENT_ADD(md_ntsc)
|
MCFG_FRAGMENT_ADD(md_ntsc)
|
||||||
@ -639,12 +623,8 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
|
|||||||
MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_main)
|
MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_main)
|
||||||
MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_main)
|
MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_main)
|
||||||
|
|
||||||
MCFG_DEVICE_REMOVE("gen_vdp")
|
MCFG_DEVICE_MODIFY("gen_vdp")
|
||||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", main_vdp_intf )
|
MCFG_SEGAGEN_VDP_INT_CB(WRITELINE(mtech_state, snd_int_callback))
|
||||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
|
|
||||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
|
|
||||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
|
|
||||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
|
||||||
|
|
||||||
MCFG_SCREEN_ADD("menu", RASTER)
|
MCFG_SCREEN_ADD("menu", RASTER)
|
||||||
// check frq
|
// check frq
|
||||||
@ -653,8 +633,10 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
|
|||||||
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_menu)
|
MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_menu)
|
||||||
|
|
||||||
MCFG_SEGA315_5246_ADD("vdp1", bios_vdp_intf)
|
MCFG_DEVICE_ADD("vdp1", SEGA315_5246, 0)
|
||||||
MCFG_SEGA315_5246_SET_SCREEN("menu")
|
MCFG_SEGA315_5246_SET_SCREEN("menu")
|
||||||
|
MCFG_SEGA315_5246_IS_PAL(false)
|
||||||
|
MCFG_SEGA315_5246_INT_CB(WRITELINE(mtech_state, bios_int_callback))
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15)
|
MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15)
|
||||||
|
@ -1337,12 +1337,6 @@ WRITE_LINE_MEMBER(segac2_state::vdp_lv4irqline_callback_c2)
|
|||||||
m_maincpu->set_input_line(4, CLEAR_LINE);
|
m_maincpu->set_input_line(4, CLEAR_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const sega315_5124_interface sms_vdp_ntsc_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_NULL,
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( segac, segac2_state )
|
static MACHINE_CONFIG_START( segac, segac2_state )
|
||||||
|
|
||||||
@ -1354,7 +1348,8 @@ static MACHINE_CONFIG_START( segac, segac2_state )
|
|||||||
MCFG_MACHINE_RESET_OVERRIDE(segac2_state,segac2)
|
MCFG_MACHINE_RESET_OVERRIDE(segac2_state,segac2)
|
||||||
MCFG_NVRAM_ADD_RANDOM_FILL("nvram")
|
MCFG_NVRAM_ADD_RANDOM_FILL("nvram")
|
||||||
|
|
||||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_ntsc_intf)
|
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||||
|
MCFG_SEGAGEN_VDP_IS_PAL(false)
|
||||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_sndirqline_callback_c2));
|
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_sndirqline_callback_c2));
|
||||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv6irqline_callback_c2));
|
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv6irqline_callback_c2));
|
||||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv4irqline_callback_c2));
|
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv4irqline_callback_c2));
|
||||||
|
@ -941,22 +941,6 @@ WRITE_LINE_MEMBER( systeme_state::int_callback )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const sega315_5124_interface _315_5124_1_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_NULL,
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static const sega315_5124_interface _315_5124_2_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(systeme_state, int_callback),
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
|
||||||
{
|
{
|
||||||
bitmap_rgb32 &vdp1_bitmap = m_vdp1->get_bitmap();
|
bitmap_rgb32 &vdp1_bitmap = m_vdp1->get_bitmap();
|
||||||
@ -980,7 +964,6 @@ UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( systeme, systeme_state )
|
static MACHINE_CONFIG_START( systeme, systeme_state )
|
||||||
MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/2) /* Z80B @ 5.3693Mhz */
|
MCFG_CPU_ADD("maincpu", Z80, XTAL_10_738635MHz/2) /* Z80B @ 5.3693Mhz */
|
||||||
MCFG_CPU_PROGRAM_MAP(systeme_map)
|
MCFG_CPU_PROGRAM_MAP(systeme_map)
|
||||||
@ -992,10 +975,13 @@ static MACHINE_CONFIG_START( systeme, systeme_state )
|
|||||||
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192)
|
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192)
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme)
|
MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme)
|
||||||
|
|
||||||
MCFG_SEGA315_5124_ADD("vdp1", _315_5124_1_intf)
|
MCFG_DEVICE_ADD("vdp1", SEGA315_5124, 0)
|
||||||
|
MCFG_SEGA315_5124_IS_PAL(false)
|
||||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vdp1_map)
|
MCFG_DEVICE_ADDRESS_MAP(AS_0, vdp1_map)
|
||||||
|
|
||||||
MCFG_SEGA315_5124_ADD("vdp2", _315_5124_2_intf)
|
MCFG_DEVICE_ADD("vdp2", SEGA315_5124, 0)
|
||||||
|
MCFG_SEGA315_5124_IS_PAL(false)
|
||||||
|
MCFG_SEGA315_5124_INT_CB(WRITELINE(systeme_state, int_callback))
|
||||||
MCFG_DEVICE_ADDRESS_MAP(AS_0, vdp2_map)
|
MCFG_DEVICE_ADDRESS_MAP(AS_0, vdp2_map)
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
|
@ -1210,13 +1210,6 @@ WRITE_LINE_MEMBER(segas18_state::vdp_lv4irqline_callback_s18)
|
|||||||
*
|
*
|
||||||
*************************************/
|
*************************************/
|
||||||
|
|
||||||
static const sega315_5124_interface sms_vdp_ntsc_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_NULL,
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( system18, segas18_state )
|
static MACHINE_CONFIG_START( system18, segas18_state )
|
||||||
|
|
||||||
// basic machine hardware
|
// basic machine hardware
|
||||||
@ -1233,7 +1226,8 @@ static MACHINE_CONFIG_START( system18, segas18_state )
|
|||||||
MCFG_SEGA_315_5195_MAPPER_ADD("mapper", "maincpu", segas18_state, memory_mapper, mapper_sound_r, mapper_sound_w)
|
MCFG_SEGA_315_5195_MAPPER_ADD("mapper", "maincpu", segas18_state, memory_mapper, mapper_sound_r, mapper_sound_w)
|
||||||
|
|
||||||
|
|
||||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_ntsc_intf )
|
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||||
|
MCFG_SEGAGEN_VDP_IS_PAL(false)
|
||||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_sndirqline_callback_s18));
|
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_sndirqline_callback_s18));
|
||||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv6irqline_callback_s18));
|
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv6irqline_callback_s18));
|
||||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv4irqline_callback_s18));
|
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv4irqline_callback_s18));
|
||||||
|
@ -935,23 +935,6 @@ MACHINE_CONFIG_FRAGMENT( megadriv_timers )
|
|||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const sega315_5124_interface sms_vdp_ntsc_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_NULL,
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const sega315_5124_interface sms_vdp_pal_intf =
|
|
||||||
{
|
|
||||||
true,
|
|
||||||
DEVCB_NULL,
|
|
||||||
DEVCB_NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
MACHINE_CONFIG_FRAGMENT( md_ntsc )
|
MACHINE_CONFIG_FRAGMENT( md_ntsc )
|
||||||
MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_NTSC / 7) /* 7.67 MHz */
|
MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_NTSC / 7) /* 7.67 MHz */
|
||||||
MCFG_CPU_PROGRAM_MAP(megadriv_map)
|
MCFG_CPU_PROGRAM_MAP(megadriv_map)
|
||||||
@ -967,7 +950,8 @@ MACHINE_CONFIG_FRAGMENT( md_ntsc )
|
|||||||
|
|
||||||
MCFG_FRAGMENT_ADD(megadriv_timers)
|
MCFG_FRAGMENT_ADD(megadriv_timers)
|
||||||
|
|
||||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_ntsc_intf )
|
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||||
|
MCFG_SEGAGEN_VDP_IS_PAL(false)
|
||||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
|
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
|
||||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
|
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
|
||||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
|
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
|
||||||
@ -1013,7 +997,8 @@ MACHINE_CONFIG_FRAGMENT( md_pal )
|
|||||||
|
|
||||||
MCFG_FRAGMENT_ADD(megadriv_timers)
|
MCFG_FRAGMENT_ADD(megadriv_timers)
|
||||||
|
|
||||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_pal_intf )
|
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||||
|
MCFG_SEGAGEN_VDP_IS_PAL(true)
|
||||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
|
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
|
||||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
|
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
|
||||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
|
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
|
||||||
|
@ -143,9 +143,15 @@
|
|||||||
#define MEGADRIVE_REG17_DMATYPE ((m_vdp_regs[0x17]&0xc0)>>6)
|
#define MEGADRIVE_REG17_DMATYPE ((m_vdp_regs[0x17]&0xc0)>>6)
|
||||||
#define MEGADRIVE_REG17_UNUSED ((m_vdp_regs[0x17]&0x3f)>>0)
|
#define MEGADRIVE_REG17_UNUSED ((m_vdp_regs[0x17]&0x3f)>>0)
|
||||||
|
|
||||||
#define MCFG_SEGAGEN_VDP_ADD(_tag, _intrf) \
|
|
||||||
MCFG_DEVICE_ADD(_tag, SEGA_GEN_VDP, 0) \
|
#define MCFG_SEGAGEN_VDP_IS_PAL(_bool) \
|
||||||
MCFG_DEVICE_CONFIG(_intrf)
|
sega_genesis_vdp_device::set_signal_type(*device, _bool);
|
||||||
|
|
||||||
|
#define MCFG_SEGAGEN_VDP_INT_CB(_devcb) \
|
||||||
|
devcb = &sega_genesis_vdp_device::set_int_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
|
#define MCFG_SEGAGEN_VDP_PAUSE_CB(_devcb) \
|
||||||
|
devcb = &sega_genesis_vdp_device::set_pause_callback(*device, DEVCB2_##_devcb);
|
||||||
|
|
||||||
#define MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(_write) \
|
#define MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(_write) \
|
||||||
devcb = &sega_genesis_vdp_device::set_sndirqline_callback(*device, DEVCB2_##_write);
|
devcb = &sega_genesis_vdp_device::set_sndirqline_callback(*device, DEVCB2_##_write);
|
||||||
|
@ -410,28 +410,6 @@ WRITE_LINE_MEMBER(sms_state::sms_int_callback)
|
|||||||
m_maincpu->set_input_line(0, state);
|
m_maincpu->set_input_line(0, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const sega315_5124_interface _315_5124_ntsc_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(sms_state,sms_int_callback),
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(sms_state,sms_pause_callback)
|
|
||||||
};
|
|
||||||
|
|
||||||
static const sega315_5124_interface _315_5124_pal_intf =
|
|
||||||
{
|
|
||||||
true,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(sms_state,sms_int_callback),
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(sms_state,sms_pause_callback)
|
|
||||||
};
|
|
||||||
|
|
||||||
static const sega315_5124_interface sms_store_intf =
|
|
||||||
{
|
|
||||||
false,
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(smssdisp_state,sms_store_int_callback),
|
|
||||||
DEVCB_DRIVER_LINE_MEMBER(sms_state,sms_pause_callback)
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
static SLOT_INTERFACE_START(sms_cart)
|
static SLOT_INTERFACE_START(sms_cart)
|
||||||
SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
|
SLOT_INTERFACE_INTERNAL("rom", SEGA8_ROM_STD)
|
||||||
SLOT_INTERFACE_INTERNAL("codemasters", SEGA8_ROM_CODEMASTERS)
|
SLOT_INTERFACE_INTERNAL("codemasters", SEGA8_ROM_CODEMASTERS)
|
||||||
@ -530,10 +508,14 @@ static MACHINE_CONFIG_DERIVED( sms2_ntsc, sms_ntsc_base )
|
|||||||
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
|
MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
|
||||||
|
|
||||||
MCFG_SEGA315_5246_ADD("sms_vdp", _315_5124_ntsc_intf)
|
MCFG_DEVICE_ADD("sms_vdp", SEGA315_5246, 0)
|
||||||
MCFG_SEGA315_5246_SET_SCREEN("screen")
|
MCFG_SEGA315_5246_SET_SCREEN("screen")
|
||||||
|
MCFG_SEGA315_5246_IS_PAL(false)
|
||||||
|
MCFG_SEGA315_5246_INT_CB(WRITELINE(sms_state, sms_int_callback))
|
||||||
|
MCFG_SEGA315_5246_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( sms1_ntsc, sms_ntsc_base )
|
static MACHINE_CONFIG_DERIVED( sms1_ntsc, sms_ntsc_base )
|
||||||
|
|
||||||
MCFG_CPU_MODIFY("maincpu")
|
MCFG_CPU_MODIFY("maincpu")
|
||||||
@ -566,8 +548,11 @@ static MACHINE_CONFIG_DERIVED( sms1_ntsc, sms_ntsc_base )
|
|||||||
MCFG_VIDEO_START_OVERRIDE(sms_state,sms1)
|
MCFG_VIDEO_START_OVERRIDE(sms_state,sms1)
|
||||||
MCFG_VIDEO_RESET_OVERRIDE(sms_state,sms1)
|
MCFG_VIDEO_RESET_OVERRIDE(sms_state,sms1)
|
||||||
|
|
||||||
MCFG_SEGA315_5124_ADD("sms_vdp", _315_5124_ntsc_intf)
|
MCFG_DEVICE_ADD("sms_vdp", SEGA315_5124, 0)
|
||||||
MCFG_SEGA315_5124_SET_SCREEN("screen")
|
MCFG_SEGA315_5124_SET_SCREEN("screen")
|
||||||
|
MCFG_SEGA315_5124_IS_PAL(false)
|
||||||
|
MCFG_SEGA315_5124_INT_CB(WRITELINE(sms_state, sms_int_callback))
|
||||||
|
MCFG_SEGA315_5124_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
|
||||||
|
|
||||||
// card and expansion slots, not present in Master System II
|
// card and expansion slots, not present in Master System II
|
||||||
MCFG_SMS_CARD_ADD("mycard", sms_cart, NULL)
|
MCFG_SMS_CARD_ADD("mycard", sms_cart, NULL)
|
||||||
@ -598,8 +583,11 @@ static MACHINE_CONFIG_START( sms_sdisp, smssdisp_state )
|
|||||||
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
|
MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
|
||||||
|
|
||||||
MCFG_SEGA315_5246_ADD("sms_vdp", sms_store_intf)
|
MCFG_DEVICE_ADD("sms_vdp", SEGA315_5246, 0)
|
||||||
MCFG_SEGA315_5246_SET_SCREEN("screen")
|
MCFG_SEGA315_5246_SET_SCREEN("screen")
|
||||||
|
MCFG_SEGA315_5246_IS_PAL(false)
|
||||||
|
MCFG_SEGA315_5246_INT_CB(WRITELINE(smssdisp_state, sms_store_int_callback))
|
||||||
|
MCFG_SEGA315_5246_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
|
||||||
|
|
||||||
MCFG_CPU_ADD("control", Z80, XTAL_53_693175MHz/15)
|
MCFG_CPU_ADD("control", Z80, XTAL_53_693175MHz/15)
|
||||||
MCFG_CPU_PROGRAM_MAP(sms_store_mem)
|
MCFG_CPU_PROGRAM_MAP(sms_store_mem)
|
||||||
@ -690,8 +678,11 @@ static MACHINE_CONFIG_DERIVED( sms2_pal, sms_pal_base )
|
|||||||
SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
|
SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
|
||||||
MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
|
MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
|
||||||
|
|
||||||
MCFG_SEGA315_5246_ADD("sms_vdp", _315_5124_pal_intf)
|
MCFG_DEVICE_ADD("sms_vdp", SEGA315_5246, 0)
|
||||||
MCFG_SEGA315_5246_SET_SCREEN("screen")
|
MCFG_SEGA315_5246_SET_SCREEN("screen")
|
||||||
|
MCFG_SEGA315_5246_IS_PAL(true)
|
||||||
|
MCFG_SEGA315_5246_INT_CB(WRITELINE(sms_state, sms_int_callback))
|
||||||
|
MCFG_SEGA315_5246_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( sms1_pal, sms_pal_base )
|
static MACHINE_CONFIG_DERIVED( sms1_pal, sms_pal_base )
|
||||||
@ -726,8 +717,11 @@ static MACHINE_CONFIG_DERIVED( sms1_pal, sms_pal_base )
|
|||||||
MCFG_VIDEO_START_OVERRIDE(sms_state,sms1)
|
MCFG_VIDEO_START_OVERRIDE(sms_state,sms1)
|
||||||
MCFG_VIDEO_RESET_OVERRIDE(sms_state,sms1)
|
MCFG_VIDEO_RESET_OVERRIDE(sms_state,sms1)
|
||||||
|
|
||||||
MCFG_SEGA315_5124_ADD("sms_vdp", _315_5124_pal_intf)
|
MCFG_DEVICE_ADD("sms_vdp", SEGA315_5124, 0)
|
||||||
MCFG_SEGA315_5124_SET_SCREEN("screen")
|
MCFG_SEGA315_5124_SET_SCREEN("screen")
|
||||||
|
MCFG_SEGA315_5124_IS_PAL(true)
|
||||||
|
MCFG_SEGA315_5124_INT_CB(WRITELINE(sms_state, sms_int_callback))
|
||||||
|
MCFG_SEGA315_5124_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
|
||||||
|
|
||||||
// card and expansion slots, not present in Master System II
|
// card and expansion slots, not present in Master System II
|
||||||
MCFG_SMS_CARD_ADD("mycard", sms_cart, NULL)
|
MCFG_SMS_CARD_ADD("mycard", sms_cart, NULL)
|
||||||
@ -793,8 +787,11 @@ static MACHINE_CONFIG_START( gamegear, sms_state )
|
|||||||
|
|
||||||
MCFG_VIDEO_START_OVERRIDE(sms_state,gamegear)
|
MCFG_VIDEO_START_OVERRIDE(sms_state,gamegear)
|
||||||
|
|
||||||
MCFG_SEGA315_5378_ADD("sms_vdp", _315_5124_ntsc_intf)
|
MCFG_DEVICE_ADD("sms_vdp", SEGA315_5378, 0)
|
||||||
MCFG_SEGA315_5378_SET_SCREEN("screen")
|
MCFG_SEGA315_5378_SET_SCREEN("screen")
|
||||||
|
MCFG_SEGA315_5378_IS_PAL(false)
|
||||||
|
MCFG_SEGA315_5378_INT_CB(WRITELINE(sms_state, sms_int_callback))
|
||||||
|
MCFG_SEGA315_5378_PAUSE_CB(WRITELINE(sms_state, sms_pause_callback))
|
||||||
|
|
||||||
/* sound hardware */
|
/* sound hardware */
|
||||||
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
|
MCFG_SPEAKER_STANDARD_STEREO("lspeaker","rspeaker")
|
||||||
|
Loading…
Reference in New Issue
Block a user