mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
change sega genesis vdp to use macros instead of direct usage of callback defines (nw)
This commit is contained in:
parent
a820b91964
commit
826c2fea22
@ -617,12 +617,11 @@ static MACHINE_CONFIG_START( megaplay, mplay_state )
|
||||
MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay)
|
||||
|
||||
MCFG_DEVICE_REMOVE("gen_vdp")
|
||||
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||
MCFG_DEVICE_CONFIG( bios_vdp_intf )
|
||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", bios_vdp_intf)
|
||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
||||
sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -637,12 +637,11 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
|
||||
MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_main)
|
||||
|
||||
MCFG_DEVICE_REMOVE("gen_vdp")
|
||||
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||
MCFG_DEVICE_CONFIG( main_vdp_intf )
|
||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", main_vdp_intf )
|
||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
||||
sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
|
||||
MCFG_SCREEN_ADD("menu", RASTER)
|
||||
// check frq
|
||||
|
@ -1357,13 +1357,12 @@ static MACHINE_CONFIG_START( segac, segac2_state )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(segac2_state,segac2)
|
||||
MCFG_NVRAM_ADD_RANDOM_FILL("nvram")
|
||||
|
||||
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_ntsc_intf)
|
||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(segac2_state, genesis_vdp_sndirqline_callback_segac2));
|
||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(segac2_state, genesis_vdp_lv6irqline_callback_segac2));
|
||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(segac2_state, genesis_vdp_lv4irqline_callback_segac2));
|
||||
MCFG_SEGAGEN_VDP_ALT_TIMING(1);
|
||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
||||
MCFG_DEVICE_CONFIG( sms_vdp_ntsc_intf )
|
||||
sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_WRITELINE(segac2_state, genesis_vdp_sndirqline_callback_segac2));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_WRITELINE(segac2_state, genesis_vdp_lv6irqline_callback_segac2));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_WRITELINE(segac2_state, genesis_vdp_lv4irqline_callback_segac2));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_alt_timing(*device, 1);
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega_genesis_vdp_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1)
|
||||
|
||||
|
@ -1233,14 +1233,13 @@ 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_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||
MCFG_DEVICE_CONFIG( sms_vdp_ntsc_intf )
|
||||
sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_WRITELINE(segas18_state, genesis_vdp_sndirqline_callback_segas18));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_WRITELINE(segas18_state, genesis_vdp_lv6irqline_callback_segas18));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_WRITELINE(segas18_state, genesis_vdp_lv4irqline_callback_segas18));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_alt_timing(*device, 1);
|
||||
sega_genesis_vdp_device::set_genesis_vdp_palwrite_base(*device, 0x2000);
|
||||
sega_genesis_vdp_device::static_set_palette_tag(*device,":palette");
|
||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_ntsc_intf )
|
||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(segas18_state, genesis_vdp_sndirqline_callback_segas18));
|
||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(segas18_state, genesis_vdp_lv6irqline_callback_segas18));
|
||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(segas18_state, genesis_vdp_lv4irqline_callback_segas18));
|
||||
MCFG_SEGAGEN_VDP_ALT_TIMING(1);
|
||||
MCFG_SEGAGEN_VDP_PAL_WRITE_BASE(0x2000);
|
||||
MCFG_SEGAGEN_VDP_PALETTE("palette")
|
||||
|
||||
MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega_genesis_vdp_device, megadriv_scanline_timer_callback_alt_timing, "screen", 0, 1)
|
||||
|
||||
|
@ -967,12 +967,11 @@ MACHINE_CONFIG_FRAGMENT( md_ntsc )
|
||||
|
||||
MCFG_FRAGMENT_ADD(megadriv_timers)
|
||||
|
||||
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||
MCFG_DEVICE_CONFIG( sms_vdp_ntsc_intf )
|
||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_ntsc_intf )
|
||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
||||
sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
|
||||
MCFG_SCREEN_ADD("megadriv", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(60)
|
||||
@ -1014,12 +1013,11 @@ MACHINE_CONFIG_FRAGMENT( md_pal )
|
||||
|
||||
MCFG_FRAGMENT_ADD(megadriv_timers)
|
||||
|
||||
MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
|
||||
MCFG_DEVICE_CONFIG( sms_vdp_pal_intf )
|
||||
MCFG_SEGAGEN_VDP_ADD("gen_vdp", sms_vdp_pal_intf )
|
||||
MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
MCFG_VIDEO_SET_SCREEN("megadriv")
|
||||
sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_sndirqline_callback_genesis_z80));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv6irqline_callback_genesis_68k));
|
||||
sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_WRITELINE(md_base_state, genesis_vdp_lv4irqline_callback_genesis_68k));
|
||||
|
||||
MCFG_SCREEN_ADD("megadriv", RASTER)
|
||||
MCFG_SCREEN_REFRESH_RATE(50)
|
||||
|
@ -145,7 +145,27 @@
|
||||
#define MEGADRIVE_REG17_DMATYPE ((m_vdp_regs[0x17]&0xc0)>>6)
|
||||
#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) \
|
||||
MCFG_DEVICE_CONFIG(_intrf)
|
||||
|
||||
#define MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(_write) \
|
||||
devcb = &sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, DEVCB2_##_write);
|
||||
|
||||
#define MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(_write) \
|
||||
devcb = &sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, DEVCB2_##_write);
|
||||
|
||||
#define MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(_write) \
|
||||
devcb = &sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, DEVCB2_##_write);
|
||||
|
||||
#define MCFG_SEGAGEN_VDP_ALT_TIMING(_data) \
|
||||
sega_genesis_vdp_device::set_genesis_vdp_alt_timing(*device, _data);
|
||||
|
||||
#define MCFG_SEGAGEN_VDP_PAL_WRITE_BASE(_data) \
|
||||
sega_genesis_vdp_device::set_genesis_vdp_palwrite_base(*device, _data);
|
||||
|
||||
#define MCFG_SEGAGEN_VDP_PALETTE(_palette_tag) \
|
||||
sega_genesis_vdp_device::static_set_palette_tag(*device, "^" _palette_tag);
|
||||
|
||||
UINT16 vdp_get_word_from_68k_mem_default(running_machine &machine, UINT32 source, address_space & space68k);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user