diff options
author | 2014-03-29 07:20:28 +0000 | |
---|---|---|
committer | 2014-03-29 07:20:28 +0000 | |
commit | 7e11ce8ac2993f5d391935432c3eef3b150ad76a (patch) | |
tree | b034586c4ed381bd8dd7d36121c9783c2d04f11e /src/mess/drivers/megadriv.c | |
parent | ebf0deb2b35506d02bd7de08c5507b6a34e6c4b8 (diff) |
(MESS) 32x: replaced direct references to 32x inside the MD VDP with
calls to suitable delegates. it's not the perfect solution (the mixing should
not happen inside the MD VDP as it does now), but it is a step in the right
direction. nw.
Diffstat (limited to 'src/mess/drivers/megadriv.c')
-rw-r--r-- | src/mess/drivers/megadriv.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c index f4151715bc3..dd69e9d5485 100644 --- a/src/mess/drivers/megadriv.c +++ b/src/mess/drivers/megadriv.c @@ -432,12 +432,35 @@ DEVICE_IMAGE_LOAD_MEMBER( md_base_state, _32x_cart ) } +void md_cons_state::_32x_scanline_callback(int x, UINT32 priority, UINT16 &lineptr) +{ + if (m_32x) + m_32x->_32x_render_videobuffer_to_screenbuffer(x, priority, lineptr); +} + +void md_cons_state::_32x_interrupt_callback(int scanline, int irq6) +{ + if (m_32x) + m_32x->_32x_interrupt_cb(scanline, irq6); +} + +void md_cons_state::_32x_scanline_helper_callback(int scanline) +{ + if (m_32x) + m_32x->_32x_render_videobuffer_to_screenbuffer_helper(scanline); +} + static MACHINE_CONFIG_START( genesis_32x, md_cons_state ) MCFG_FRAGMENT_ADD( md_ntsc ) MCFG_MACHINE_START_OVERRIDE( md_cons_state, md_common ) MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) + MCFG_DEVICE_MODIFY("gen_vdp") + MCFG_SEGAGEN_VDP_32X_SCANLINE_CB(md_cons_state, _32x_scanline_callback); + MCFG_SEGAGEN_VDP_32X_SCANLINE_HELPER_CB(md_cons_state, _32x_scanline_helper_callback); + MCFG_SEGAGEN_VDP_32X_INTERRUPT_CB(md_cons_state, _32x_interrupt_callback); + MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, 0) MCFG_SEGA_32X_PALETTE("gen_vdp:palette") @@ -472,6 +495,11 @@ static MACHINE_CONFIG_START( mdj_32x, md_cons_state ) MCFG_MACHINE_START_OVERRIDE( md_cons_state, md_common ) MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) + MCFG_DEVICE_MODIFY("gen_vdp") + MCFG_SEGAGEN_VDP_32X_SCANLINE_CB(md_cons_state, _32x_scanline_callback); + MCFG_SEGAGEN_VDP_32X_SCANLINE_HELPER_CB(md_cons_state, _32x_scanline_helper_callback); + MCFG_SEGAGEN_VDP_32X_INTERRUPT_CB(md_cons_state, _32x_interrupt_callback); + MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, 0) MCFG_SEGA_32X_PALETTE("gen_vdp:palette") @@ -506,6 +534,11 @@ static MACHINE_CONFIG_START( md_32x, md_cons_state ) MCFG_MACHINE_START_OVERRIDE( md_cons_state, md_common ) MCFG_MACHINE_RESET_OVERRIDE( md_cons_state, ms_megadriv ) + MCFG_DEVICE_MODIFY("gen_vdp") + MCFG_SEGAGEN_VDP_32X_SCANLINE_CB(md_cons_state, _32x_scanline_callback); + MCFG_SEGAGEN_VDP_32X_SCANLINE_HELPER_CB(md_cons_state, _32x_scanline_helper_callback); + MCFG_SEGAGEN_VDP_32X_INTERRUPT_CB(md_cons_state, _32x_interrupt_callback); + MCFG_DEVICE_ADD("sega32x", SEGA_32X_PAL, 0) MCFG_SEGA_32X_PALETTE("gen_vdp:palette") |