Renamed Genesis VDP to Sega 315-5313 and moved it to emu/video/. nw.

This commit is contained in:
Fabio Priuli 2014-03-30 13:41:54 +00:00
parent f27342d4e8
commit d9b8e1b420
17 changed files with 154 additions and 147 deletions

4
.gitattributes vendored
View File

@ -3095,6 +3095,8 @@ src/emu/video.c svneol=native#text/plain
src/emu/video.h svneol=native#text/plain
src/emu/video/315_5124.c svneol=native#text/plain
src/emu/video/315_5124.h svneol=native#text/plain
src/emu/video/315_5313.c svneol=native#text/plain
src/emu/video/315_5313.h svneol=native#text/plain
src/emu/video/bufsprite.c svneol=native#text/plain
src/emu/video/bufsprite.h svneol=native#text/plain
src/emu/video/cdp1861.c svneol=native#text/plain
@ -6474,8 +6476,6 @@ src/mame/machine/mc8123.h svneol=native#text/plain
src/mame/machine/mcr.c svneol=native#text/plain
src/mame/machine/mcr68.c svneol=native#text/plain
src/mame/machine/megadriv.c svneol=native#text/plain
src/mame/machine/megavdp.c svneol=native#text/plain
src/mame/machine/megavdp.h svneol=native#text/plain
src/mame/machine/meters.c svneol=native#text/plain
src/mame/machine/meters.h svneol=native#text/plain
src/mame/machine/mexico86.c svneol=native#text/plain

View File

@ -1,7 +1,7 @@
/* Megadrive VDP */
/* Sega 315-5313 - Megadrive VDP */
#include "emu.h"
#include "megavdp.h"
#include "video/315_5313.h"
/* still have dependencies on the following external gunk */
@ -10,10 +10,10 @@
#define MAX_HPOSITION 480
const device_type SEGA_GEN_VDP = &device_creator<sega_genesis_vdp_device>;
const device_type SEGA315_5313 = &device_creator<sega315_5313_device>;
sega_genesis_vdp_device::sega_genesis_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: sega315_5124_device( mconfig, SEGA315_5246, "Sega Genesis VDP", tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true, "sega_genesis_vdp", __FILE__),
sega315_5313_device::sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: sega315_5124_device( mconfig, SEGA315_5246, "Sega 315-5313 (Genesis VDP)", tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true, "sega315_5313", __FILE__),
m_sndirqline_callback(*this),
m_lv6irqline_callback(*this),
m_lv4irqline_callback(*this),
@ -28,9 +28,9 @@ sega_genesis_vdp_device::sega_genesis_vdp_device(const machine_config &mconfig,
// palette device
//-------------------------------------------------
void sega_genesis_vdp_device::static_set_palette_tag(device_t &device, const char *tag)
void sega315_5313_device::static_set_palette_tag(device_t &device, const char *tag)
{
downcast<sega_genesis_vdp_device &>(device).m_palette.set_tag(tag);
downcast<sega315_5313_device &>(device).m_palette.set_tag(tag);
}
@ -44,18 +44,18 @@ MACHINE_CONFIG_END
// the device's machine fragment
//-------------------------------------------------
machine_config_constructor sega_genesis_vdp_device::device_mconfig_additions() const
machine_config_constructor sega315_5313_device::device_mconfig_additions() const
{
return MACHINE_CONFIG_NAME( sega_genesis_vdp );
}
static TIMER_CALLBACK( render_timer_callback )
{
sega_genesis_vdp_device* vdp = (sega_genesis_vdp_device*)ptr;
sega315_5313_device* vdp = (sega315_5313_device*)ptr;
vdp->render_scanline();
}
void sega_genesis_vdp_device::vdp_handle_irq6_on_timer_callback(int param)
void sega315_5313_device::vdp_handle_irq6_on_timer_callback(int param)
{
// m_irq6_pending = 1;
if (MEGADRIVE_REG01_IRQ6_ENABLE)
@ -64,40 +64,39 @@ void sega_genesis_vdp_device::vdp_handle_irq6_on_timer_callback(int param)
static TIMER_CALLBACK( irq6_on_timer_callback )
{
sega_genesis_vdp_device* vdp = (sega_genesis_vdp_device*)ptr;
sega315_5313_device* vdp = (sega315_5313_device*)ptr;
vdp->vdp_handle_irq6_on_timer_callback(param);
}
void sega_genesis_vdp_device::vdp_handle_irq4_on_timer_callback(int param)
void sega315_5313_device::vdp_handle_irq4_on_timer_callback(int param)
{
m_lv4irqline_callback(true);
}
static TIMER_CALLBACK( irq4_on_timer_callback )
{
sega_genesis_vdp_device* vdp = (sega_genesis_vdp_device*)ptr;
sega315_5313_device* vdp = (sega315_5313_device*)ptr;
vdp->vdp_handle_irq4_on_timer_callback(param);
}
void sega_genesis_vdp_device::set_alt_timing(device_t &device, int use_alt_timing)
void sega315_5313_device::set_alt_timing(device_t &device, int use_alt_timing)
{
sega_genesis_vdp_device &dev = downcast<sega_genesis_vdp_device &>(device);
sega315_5313_device &dev = downcast<sega315_5313_device &>(device);
dev.m_use_alt_timing = use_alt_timing;
}
void sega_genesis_vdp_device::set_palwrite_base(device_t &device, int palwrite_base)
void sega315_5313_device::set_palwrite_base(device_t &device, int palwrite_base)
{
sega_genesis_vdp_device &dev = downcast<sega_genesis_vdp_device &>(device);
sega315_5313_device &dev = downcast<sega315_5313_device &>(device);
dev.m_palwrite_base = palwrite_base;
}
void sega_genesis_vdp_device::device_start()
void sega315_5313_device::device_start()
{
m_sndirqline_callback.resolve_safe();
m_lv6irqline_callback.resolve_safe();
@ -193,7 +192,7 @@ void sega_genesis_vdp_device::device_start()
sega315_5124_device::device_start();
}
void sega_genesis_vdp_device::device_reset()
void sega315_5313_device::device_reset()
{
m_command_pending = 0;
m_command_part1 = 0;
@ -215,7 +214,7 @@ void sega_genesis_vdp_device::device_reset()
sega315_5124_device::device_reset();
}
void sega_genesis_vdp_device::device_reset_old()
void sega315_5313_device::device_reset_old()
{
// other stuff, are we sure we want to set some of these every reset?
// it's called from machine_reset
@ -227,7 +226,7 @@ void sega_genesis_vdp_device::device_reset_old()
void sega_genesis_vdp_device::vdp_vram_write(UINT16 data)
void sega315_5313_device::vdp_vram_write(UINT16 data)
{
UINT16 sprite_base_address = MEGADRIVE_REG0C_RS1?((MEGADRIVE_REG05_SPRITE_ADDR&0x7e)<<9):((MEGADRIVE_REG05_SPRITE_ADDR&0x7f)<<9);
int spritetable_size = MEGADRIVE_REG0C_RS1?0x400:0x200;
@ -254,7 +253,7 @@ void sega_genesis_vdp_device::vdp_vram_write(UINT16 data)
m_vdp_address &= 0xffff;
}
void sega_genesis_vdp_device::vdp_vsram_write(UINT16 data)
void sega315_5313_device::vdp_vsram_write(UINT16 data)
{
m_vsram[(m_vdp_address&0x7e)>>1] = data;
@ -265,7 +264,7 @@ void sega_genesis_vdp_device::vdp_vsram_write(UINT16 data)
m_vdp_address &=0xffff;
}
void sega_genesis_vdp_device::write_cram_value(int offset, int data)
void sega315_5313_device::write_cram_value(int offset, int data)
{
m_cram[offset] = data;
@ -289,7 +288,7 @@ void sega_genesis_vdp_device::write_cram_value(int offset, int data)
}
}
void sega_genesis_vdp_device::vdp_cram_write(UINT16 data)
void sega315_5313_device::vdp_cram_write(UINT16 data)
{
int offset;
offset = (m_vdp_address&0x7e)>>1;
@ -302,7 +301,7 @@ void sega_genesis_vdp_device::vdp_cram_write(UINT16 data)
}
void sega_genesis_vdp_device::data_port_w(int data)
void sega315_5313_device::data_port_w(int data)
{
m_command_pending = 0;
@ -397,7 +396,7 @@ void sega_genesis_vdp_device::data_port_w(int data)
void sega_genesis_vdp_device::vdp_set_register(int regnum, UINT8 value)
void sega315_5313_device::vdp_set_register(int regnum, UINT8 value)
{
m_regs[regnum] = value;
@ -448,7 +447,7 @@ void sega_genesis_vdp_device::vdp_set_register(int regnum, UINT8 value)
// mame_printf_debug("%s: Setting VDP Register #%02x to %02x\n",machine().describe_context(), regnum,value);
}
void sega_genesis_vdp_device::update_code_and_address(void)
void sega315_5313_device::update_code_and_address(void)
{
m_vdp_code = ((m_command_part1 & 0xc000) >> 14) |
((m_command_part2 & 0x00f0) >> 2);
@ -459,7 +458,7 @@ void sega_genesis_vdp_device::update_code_and_address(void)
// if either SVP CPU or segaCD is present, there is a 'lag' we have to compensate for
// hence, for segacd and svp we set m_dma_delay to the appropriate value at start
inline UINT16 sega_genesis_vdp_device::vdp_get_word_from_68k_mem(UINT32 source)
inline UINT16 sega315_5313_device::vdp_get_word_from_68k_mem(UINT32 source)
{
// should we limit the valid areas here?
// how does this behave with the segacd etc?
@ -503,7 +502,7 @@ inline UINT16 sega_genesis_vdp_device::vdp_get_word_from_68k_mem(UINT32 source)
as the 68k address bus isn't accessed */
/* Wani Wani World, James Pond 3, Pirates Gold! */
void sega_genesis_vdp_device::insta_vram_copy(UINT32 source, UINT16 length)
void sega315_5313_device::insta_vram_copy(UINT32 source, UINT16 length)
{
int x;
@ -531,7 +530,7 @@ void sega_genesis_vdp_device::insta_vram_copy(UINT32 source, UINT16 length)
}
/* Instant, but we pause the 68k a bit */
void sega_genesis_vdp_device::insta_68k_to_vram_dma(UINT32 source,int length)
void sega315_5313_device::insta_68k_to_vram_dma(UINT32 source,int length)
{
int count;
@ -558,7 +557,7 @@ void sega_genesis_vdp_device::insta_68k_to_vram_dma(UINT32 source,int length)
}
void sega_genesis_vdp_device::insta_68k_to_cram_dma(UINT32 source,UINT16 length)
void sega315_5313_device::insta_68k_to_cram_dma(UINT32 source,UINT16 length)
{
int count;
@ -586,7 +585,7 @@ void sega_genesis_vdp_device::insta_68k_to_cram_dma(UINT32 source,UINT16 length)
}
void sega_genesis_vdp_device::insta_68k_to_vsram_dma(UINT32 source,UINT16 length)
void sega315_5313_device::insta_68k_to_vsram_dma(UINT32 source,UINT16 length)
{
int count;
@ -614,7 +613,7 @@ void sega_genesis_vdp_device::insta_68k_to_vsram_dma(UINT32 source,UINT16 length
}
/* This can be simplified quite a lot.. */
void sega_genesis_vdp_device::handle_dma_bits()
void sega315_5313_device::handle_dma_bits()
{
#if 0
if (m_vdp_code&0x20)
@ -745,7 +744,7 @@ void sega_genesis_vdp_device::handle_dma_bits()
}
}
void sega_genesis_vdp_device::ctrl_port_w(int data)
void sega315_5313_device::ctrl_port_w(int data)
{
// logerror("write to vdp control port %04x\n",data);
m_vram_fill_pending = 0; // ??
@ -786,7 +785,7 @@ void sega_genesis_vdp_device::ctrl_port_w(int data)
}
}
WRITE16_MEMBER( sega_genesis_vdp_device::megadriv_vdp_w )
WRITE16_MEMBER( sega315_5313_device::vdp_w )
{
switch (offset<<1)
{
@ -835,22 +834,22 @@ WRITE16_MEMBER( sega_genesis_vdp_device::megadriv_vdp_w )
}
}
UINT16 sega_genesis_vdp_device::vdp_vram_r(void)
UINT16 sega315_5313_device::vdp_vram_r(void)
{
return MEGADRIV_VDP_VRAM((m_vdp_address&0xfffe)>>1);
}
UINT16 sega_genesis_vdp_device::vdp_vsram_r(void)
UINT16 sega315_5313_device::vdp_vsram_r(void)
{
return m_vsram[(m_vdp_address&0x7e)>>1];
}
UINT16 sega_genesis_vdp_device::vdp_cram_r(void)
UINT16 sega315_5313_device::vdp_cram_r(void)
{
return m_cram[(m_vdp_address&0x7e)>>1];
}
UINT16 sega_genesis_vdp_device::data_port_r()
UINT16 sega315_5313_device::data_port_r()
{
UINT16 retdata=0;
@ -967,7 +966,7 @@ PAL, 256x224
UINT16 sega_genesis_vdp_device::ctrl_port_r()
UINT16 sega315_5313_device::ctrl_port_r()
{
/* Battletoads is very fussy about the vblank flag
it wants it to be 1. in scanline 224 */
@ -1130,7 +1129,7 @@ static const UINT8 vc_pal_240[] =
};
UINT16 sega_genesis_vdp_device::get_hposition()
UINT16 sega315_5313_device::get_hposition()
{
UINT16 value4;
@ -1158,7 +1157,7 @@ UINT16 sega_genesis_vdp_device::get_hposition()
return value4;
}
int sega_genesis_vdp_device::get_scanline_counter()
int sega315_5313_device::get_scanline_counter()
{
if (!m_use_alt_timing)
return m_scanline_counter;
@ -1167,7 +1166,7 @@ int sega_genesis_vdp_device::get_scanline_counter()
}
UINT16 sega_genesis_vdp_device::megadriv_read_hv_counters()
UINT16 sega315_5313_device::megadriv_read_hv_counters()
{
/* Bubble and Squeek wants vcount=0xe0 */
/* Dracula is very sensitive to this */
@ -1203,7 +1202,7 @@ UINT16 sega_genesis_vdp_device::megadriv_read_hv_counters()
}
READ16_MEMBER( sega_genesis_vdp_device::megadriv_vdp_r )
READ16_MEMBER( sega315_5313_device::vdp_r )
{
UINT16 retvalue = 0;
@ -1286,7 +1285,7 @@ READ16_MEMBER( sega_genesis_vdp_device::megadriv_vdp_r )
*/
void sega_genesis_vdp_device::render_spriteline_to_spritebuffer(int scanline)
void sega315_5313_device::render_spriteline_to_spritebuffer(int scanline)
{
int screenwidth;
int maxsprites=0;
@ -1476,7 +1475,7 @@ void sega_genesis_vdp_device::render_spriteline_to_spritebuffer(int scanline)
}
/* Clean up this function (!) */
void sega_genesis_vdp_device::render_videoline_to_videobuffer(int scanline)
void sega315_5313_device::render_videoline_to_videobuffer(int scanline)
{
UINT16 base_a;
UINT16 base_w=0;
@ -2500,7 +2499,7 @@ void sega_genesis_vdp_device::render_videoline_to_videobuffer(int scanline)
/* This converts our render buffer to real screen colours */
void sega_genesis_vdp_device::render_videobuffer_to_screenbuffer(int scanline)
void sega315_5313_device::render_videobuffer_to_screenbuffer(int scanline)
{
UINT16 *lineptr;
@ -2587,7 +2586,7 @@ void sega_genesis_vdp_device::render_videobuffer_to_screenbuffer(int scanline)
}
}
void sega_genesis_vdp_device::render_scanline()
void sega315_5313_device::render_scanline()
{
int scanline = get_scanline_counter();
@ -2600,7 +2599,7 @@ void sega_genesis_vdp_device::render_scanline()
}
}
void sega_genesis_vdp_device::vdp_handle_scanline_callback(int scanline)
void sega315_5313_device::vdp_handle_scanline_callback(int scanline)
{
/* Compensate for some rounding errors
@ -2674,7 +2673,7 @@ void sega_genesis_vdp_device::vdp_handle_scanline_callback(int scanline)
}
void sega_genesis_vdp_device::vdp_handle_eof()
void sega315_5313_device::vdp_handle_eof()
{
rectangle visarea;
int scr_width = 320;
@ -2731,7 +2730,7 @@ void sega_genesis_vdp_device::vdp_handle_eof()
// called at the start of each scanline
TIMER_DEVICE_CALLBACK_MEMBER( sega_genesis_vdp_device::megadriv_scanline_timer_callback )
TIMER_DEVICE_CALLBACK_MEMBER( sega315_5313_device::megadriv_scanline_timer_callback )
{
if (!m_use_alt_timing)
{
@ -2746,7 +2745,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( sega_genesis_vdp_device::megadriv_scanline_timer_c
}
}
TIMER_DEVICE_CALLBACK_MEMBER( sega_genesis_vdp_device::megadriv_scanline_timer_callback_alt_timing )
TIMER_DEVICE_CALLBACK_MEMBER( sega315_5313_device::megadriv_scanline_timer_callback_alt_timing )
{
if (m_use_alt_timing)
{

View File

@ -144,32 +144,32 @@
#define MEGADRIVE_REG17_UNUSED ((m_regs[0x17]&0x3f)>>0)
#define MCFG_SEGAGEN_VDP_IS_PAL(_bool) \
sega_genesis_vdp_device::set_signal_type(*device, _bool);
#define MCFG_SEGA315_5313_IS_PAL(_bool) \
sega315_5313_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_SEGA315_5313_INT_CB(_devcb) \
devcb = &sega315_5313_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_SEGA315_5313_PAUSE_CB(_devcb) \
devcb = &sega315_5313_device::set_pause_callback(*device, DEVCB2_##_devcb);
#define MCFG_SEGAGEN_VDP_SND_IRQ_CALLBACK(_write) \
devcb = &sega_genesis_vdp_device::set_sndirqline_callback(*device, DEVCB2_##_write);
#define MCFG_SEGA315_5313_SND_IRQ_CALLBACK(_write) \
devcb = &sega315_5313_device::set_sndirqline_callback(*device, DEVCB2_##_write);
#define MCFG_SEGAGEN_VDP_LV6_IRQ_CALLBACK(_write) \
devcb = &sega_genesis_vdp_device::set_lv6irqline_callback(*device, DEVCB2_##_write);
#define MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(_write) \
devcb = &sega315_5313_device::set_lv6irqline_callback(*device, DEVCB2_##_write);
#define MCFG_SEGAGEN_VDP_LV4_IRQ_CALLBACK(_write) \
devcb = &sega_genesis_vdp_device::set_lv4irqline_callback(*device, DEVCB2_##_write);
#define MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(_write) \
devcb = &sega315_5313_device::set_lv4irqline_callback(*device, DEVCB2_##_write);
#define MCFG_SEGAGEN_VDP_ALT_TIMING(_data) \
sega_genesis_vdp_device::set_alt_timing(*device, _data);
#define MCFG_SEGA315_5313_ALT_TIMING(_data) \
sega315_5313_device::set_alt_timing(*device, _data);
#define MCFG_SEGAGEN_VDP_PAL_WRITE_BASE(_data) \
sega_genesis_vdp_device::set_palwrite_base(*device, _data);
#define MCFG_SEGA315_5313_PAL_WRITE_BASE(_data) \
sega315_5313_device::set_palwrite_base(*device, _data);
#define MCFG_SEGAGEN_VDP_PALETTE(_palette_tag) \
sega_genesis_vdp_device::static_set_palette_tag(*device, "^" _palette_tag);
#define MCFG_SEGA315_5313_PALETTE(_palette_tag) \
sega315_5313_device::static_set_palette_tag(*device, "^" _palette_tag);
// Temporary solution while 32x VDP mixing and scanline interrupting is moved outside MD VDP
@ -177,38 +177,38 @@ typedef device_delegate<void (int x, UINT32 priority, UINT16 &lineptr)> md_32x_s
typedef device_delegate<void (int scanline, int irq6)> md_32x_interrupt_delegate;
typedef device_delegate<void (int scanline)> md_32x_scanline_helper_delegate;
#define MCFG_SEGAGEN_VDP_32X_SCANLINE_CB(_class, _method) \
sega_genesis_vdp_device::set_md_32x_scanline(*device, md_32x_scanline_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
#define MCFG_SEGA315_5313_32X_SCANLINE_CB(_class, _method) \
sega315_5313_device::set_md_32x_scanline(*device, md_32x_scanline_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
#define MCFG_SEGAGEN_VDP_32X_INTERRUPT_CB(_class, _method) \
sega_genesis_vdp_device::set_md_32x_interrupt(*device, md_32x_interrupt_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
#define MCFG_SEGA315_5313_32X_INTERRUPT_CB(_class, _method) \
sega315_5313_device::set_md_32x_interrupt(*device, md_32x_interrupt_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
#define MCFG_SEGAGEN_VDP_32X_SCANLINE_HELPER_CB(_class, _method) \
sega_genesis_vdp_device::set_md_32x_scanline_helper(*device, md_32x_scanline_helper_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
#define MCFG_SEGA315_5313_32X_SCANLINE_HELPER_CB(_class, _method) \
sega315_5313_device::set_md_32x_scanline_helper(*device, md_32x_scanline_helper_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner)));
class sega_genesis_vdp_device : public sega315_5124_device
class sega315_5313_device : public sega315_5124_device
{
public:
sega_genesis_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
template<class _Object> static devcb2_base &set_sndirqline_callback(device_t &device, _Object object) { return downcast<sega_genesis_vdp_device &>(device).m_sndirqline_callback.set_callback(object); }
template<class _Object> static devcb2_base &set_lv6irqline_callback(device_t &device, _Object object) { return downcast<sega_genesis_vdp_device &>(device).m_lv6irqline_callback.set_callback(object); }
template<class _Object> static devcb2_base &set_lv4irqline_callback(device_t &device, _Object object) { return downcast<sega_genesis_vdp_device &>(device).m_lv4irqline_callback.set_callback(object); }
template<class _Object> static devcb2_base &set_sndirqline_callback(device_t &device, _Object object) { return downcast<sega315_5313_device &>(device).m_sndirqline_callback.set_callback(object); }
template<class _Object> static devcb2_base &set_lv6irqline_callback(device_t &device, _Object object) { return downcast<sega315_5313_device &>(device).m_lv6irqline_callback.set_callback(object); }
template<class _Object> static devcb2_base &set_lv4irqline_callback(device_t &device, _Object object) { return downcast<sega315_5313_device &>(device).m_lv4irqline_callback.set_callback(object); }
static void set_alt_timing(device_t &device, int use_alt_timing);
static void set_palwrite_base(device_t &device, int palwrite_base);
static void static_set_palette_tag(device_t &device, const char *tag);
static void set_md_32x_scanline(device_t &device, md_32x_scanline_delegate callback) { downcast<sega_genesis_vdp_device &>(device).m_32x_scanline_func = callback; }
static void set_md_32x_interrupt(device_t &device, md_32x_interrupt_delegate callback) { downcast<sega_genesis_vdp_device &>(device).m_32x_interrupt_func = callback; }
static void set_md_32x_scanline_helper(device_t &device, md_32x_scanline_helper_delegate callback) { downcast<sega_genesis_vdp_device &>(device).m_32x_scanline_helper_func = callback; }
static void set_md_32x_scanline(device_t &device, md_32x_scanline_delegate callback) { downcast<sega315_5313_device &>(device).m_32x_scanline_func = callback; }
static void set_md_32x_interrupt(device_t &device, md_32x_interrupt_delegate callback) { downcast<sega315_5313_device &>(device).m_32x_interrupt_func = callback; }
static void set_md_32x_scanline_helper(device_t &device, md_32x_scanline_helper_delegate callback) { downcast<sega315_5313_device &>(device).m_32x_scanline_helper_func = callback; }
int m_use_alt_timing; // use MAME scanline timer instead, render only one scanline to a single line buffer, to be rendered by a partial update call.. experimental
int m_palwrite_base; // if we want to write to the actual MAME palette..
DECLARE_READ16_MEMBER( megadriv_vdp_r );
DECLARE_WRITE16_MEMBER( megadriv_vdp_w );
DECLARE_READ16_MEMBER( vdp_r );
DECLARE_WRITE16_MEMBER( vdp_w );
int get_scanline_counter();
@ -353,4 +353,4 @@ private:
};
extern const device_type SEGA_GEN_VDP;
extern const device_type SEGA315_5313;

View File

@ -23,6 +23,15 @@ ifneq ($(filter SEGA315_5124,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/315_5124.o
endif
#-------------------------------------------------
#
#@src/emu/video/315_5313.h,VIDEOS += SEGA315_5313
#-------------------------------------------------
ifneq ($(filter SEGA315_5313,$(VIDEOS)),)
VIDEOOBJS+= $(VIDEOOBJ)/315_5313.o
endif
#-------------------------------------------------
#
#@src/emu/video/bufsprite.h,VIDEOS += BUFSPRITE

View File

@ -672,7 +672,7 @@ static MACHINE_CONFIG_START( megaplay, mplay_state )
MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay)
MCFG_DEVICE_MODIFY("gen_vdp")
MCFG_SEGAGEN_VDP_INT_CB(WRITELINE(mplay_state, bios_int_callback))
MCFG_SEGA315_5313_INT_CB(WRITELINE(mplay_state, bios_int_callback))
MACHINE_CONFIG_END

View File

@ -698,7 +698,7 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_main)
MCFG_DEVICE_MODIFY("gen_vdp")
MCFG_SEGAGEN_VDP_INT_CB(WRITELINE(mtech_state, snd_int_callback))
MCFG_SEGA315_5313_INT_CB(WRITELINE(mtech_state, snd_int_callback))
MCFG_SCREEN_ADD("menu", RASTER)
// check frq

View File

@ -50,7 +50,6 @@ Notes:
#include "includes/megadriv.h"
#include "machine/megavdp.h"
/* Puckman Pockimon Input Ports */
static INPUT_PORTS_START( puckpkmn )
@ -221,7 +220,7 @@ static ADDRESS_MAP_START( puckpkmn_map, AS_PROGRAM, 16, md_boot_state )
AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSW2")
AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8(megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000)
@ -245,7 +244,7 @@ static ADDRESS_MAP_START( jzth_map, AS_PROGRAM, 16, md_boot_state )
AM_RANGE(0x700018, 0x700019) AM_READ_PORT("DSW2")
AM_RANGE(0x700022, 0x700023) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
AM_RANGE(0xa04000, 0xa04003) AM_READWRITE8( megadriv_68k_YM2612_read, megadriv_68k_YM2612_write, 0xffff)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000)

View File

@ -694,7 +694,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, segac2_state )
AM_RANGE(0x840100, 0x840107) AM_MIRROR(0x13fef8) AM_DEVREADWRITE8("ymsnd", ym3438_device, read, write, 0x00ff)
AM_RANGE(0x880100, 0x880101) AM_MIRROR(0x13fefe) AM_WRITE(counter_timer_w)
AM_RANGE(0x8c0000, 0x8c0fff) AM_MIRROR(0x13f000) AM_READWRITE(palette_r, palette_w) AM_SHARE("paletteram")
AM_RANGE(0xc00000, 0xc0001f) AM_MIRROR(0x18ff00) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xc00000, 0xc0001f) AM_MIRROR(0x18ff00) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xe00000, 0xe0ffff) AM_MIRROR(0x1f0000) AM_RAM AM_SHARE("nvram")
ADDRESS_MAP_END
@ -1441,15 +1441,15 @@ 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_IS_PAL(false)
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_LV4_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv4irqline_callback_c2));
MCFG_SEGAGEN_VDP_ALT_TIMING(1);
MCFG_DEVICE_ADD("gen_vdp", SEGA315_5313, 0)
MCFG_SEGA315_5313_IS_PAL(false)
MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_sndirqline_callback_c2));
MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv6irqline_callback_c2));
MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(segac2_state, vdp_lv4irqline_callback_c2));
MCFG_SEGA315_5313_ALT_TIMING(1);
MCFG_VIDEO_SET_SCREEN("megadriv")
MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega_genesis_vdp_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1)
MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega315_5313_device, megadriv_scanline_timer_callback_alt_timing, "megadriv", 0, 1)
MCFG_SCREEN_ADD("megadriv", RASTER)

View File

@ -551,12 +551,12 @@ WRITE8_MEMBER( segas18_state::mcu_data_w )
READ16_MEMBER( segas18_state::genesis_vdp_r )
{
return m_vdp->megadriv_vdp_r(space,offset,mem_mask);
return m_vdp->vdp_r(space, offset, mem_mask);
}
WRITE16_MEMBER( segas18_state::genesis_vdp_w )
{
m_vdp->megadriv_vdp_w(space,offset,data,mem_mask);
m_vdp->vdp_w(space, offset, data, mem_mask);
}
@ -1226,16 +1226,16 @@ 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_SEGAGEN_VDP_IS_PAL(false)
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_LV4_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv4irqline_callback_s18));
MCFG_SEGAGEN_VDP_ALT_TIMING(1);
MCFG_SEGAGEN_VDP_PAL_WRITE_BASE(0x2000);
MCFG_SEGAGEN_VDP_PALETTE("palette")
MCFG_DEVICE_ADD("gen_vdp", SEGA315_5313, 0)
MCFG_SEGA315_5313_IS_PAL(false)
MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_sndirqline_callback_s18));
MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv6irqline_callback_s18));
MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(segas18_state, vdp_lv4irqline_callback_s18));
MCFG_SEGA315_5313_ALT_TIMING(1);
MCFG_SEGA315_5313_PAL_WRITE_BASE(0x2000);
MCFG_SEGA315_5313_PALETTE("palette")
MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega_genesis_vdp_device, megadriv_scanline_timer_callback_alt_timing, "screen", 0, 1)
MCFG_TIMER_DEVICE_ADD_SCANLINE("scantimer", "gen_vdp", sega315_5313_device, megadriv_scanline_timer_callback_alt_timing, "screen", 0, 1)
// video hardware

View File

@ -4,7 +4,7 @@
#include "cpu/z80/z80.h"
#include "sound/2612intf.h"
#include "sound/sn76496.h"
#include "machine/megavdp.h"
#include "video/315_5313.h"
#define MASTER_CLOCK_NTSC 53693175
#define MASTER_CLOCK_PAL 53203424
@ -49,7 +49,7 @@ public:
required_device<m68000_base_device> m_maincpu;
optional_device<cpu_device> m_z80snd;
optional_device<ym2612_device> m_ymsnd;
required_device<sega_genesis_vdp_device> m_vdp;
required_device<sega315_5313_device> m_vdp;
optional_shared_ptr<UINT16> m_megadrive_ram;
ioport_port *m_io_reset;

View File

@ -9,9 +9,9 @@
#include "cpu/m68000/m68000.h"
#include "cpu/mcs51/mcs51.h"
#include "cpu/z80/z80.h"
#include "machine/megavdp.h"
#include "machine/nvram.h"
#include "machine/segaic16.h"
#include "video/315_5313.h"
#include "video/segaic16.h"
#include "video/sega16sp.h"
@ -124,7 +124,7 @@ protected:
required_device<m68000_device> m_maincpu;
required_device<z80_device> m_soundcpu;
optional_device<i8751_device> m_mcu;
required_device<sega_genesis_vdp_device> m_vdp;
required_device<sega315_5313_device> m_vdp;
required_device<nvram_device> m_nvram;
required_device<sega_sys16b_sprite_device> m_sprites;
required_device<segaic16_video_device> m_segaic16vid;

View File

@ -479,8 +479,8 @@ static ADDRESS_MAP_START( megadriv_map, AS_PROGRAM, 16, md_base_state )
// AM_RANGE(0xb10000, 0xb1007f) AM_RAM AM_SHARE("megadrive_vdp_vsram")
// AM_RANGE(0xb10100, 0xb1017f) AM_RAM AM_SHARE("megadrive_vdp_cram")
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w) // the earth defend
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w) // the earth defend
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram")
// AM_RANGE(0xff0000, 0xffffff) AM_READONLY
/* 0xe00000 - 0xffffff) == MAIN RAM (64kb, Mirrored, most games use ff0000 - ffffff) */
@ -773,8 +773,8 @@ static ADDRESS_MAP_START( md_bootleg_map, AS_PROGRAM, 16, md_boot_state )
AM_RANGE(0xa11100, 0xa11101) AM_READWRITE(megadriv_68k_check_z80_bus, megadriv_68k_req_z80_bus)
AM_RANGE(0xa11200, 0xa11201) AM_WRITE(megadriv_68k_req_z80_reset)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xd00000, 0xd0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000) AM_SHARE("megadrive_ram")
ADDRESS_MAP_END
@ -920,7 +920,7 @@ IRQ_CALLBACK_MEMBER(md_base_state::genesis_int_callback)
}
MACHINE_CONFIG_FRAGMENT( megadriv_timers )
MCFG_TIMER_DEVICE_ADD("md_scan_timer", "gen_vdp", sega_genesis_vdp_device, megadriv_scanline_timer_callback)
MCFG_TIMER_DEVICE_ADD("md_scan_timer", "gen_vdp", sega315_5313_device, megadriv_scanline_timer_callback)
MACHINE_CONFIG_END
@ -939,11 +939,11 @@ MACHINE_CONFIG_FRAGMENT( md_ntsc )
MCFG_FRAGMENT_ADD(megadriv_timers)
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_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_DEVICE_ADD("gen_vdp", SEGA315_5313, 0)
MCFG_SEGA315_5313_IS_PAL(false)
MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
MCFG_VIDEO_SET_SCREEN("megadriv")
MCFG_SCREEN_ADD("megadriv", RASTER)
@ -986,11 +986,11 @@ MACHINE_CONFIG_FRAGMENT( md_pal )
MCFG_FRAGMENT_ADD(megadriv_timers)
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_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_DEVICE_ADD("gen_vdp", SEGA315_5313, 0)
MCFG_SEGA315_5313_IS_PAL(true)
MCFG_SEGA315_5313_SND_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_sndirqline_callback_genesis_z80));
MCFG_SEGA315_5313_LV6_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv6irqline_callback_genesis_68k));
MCFG_SEGA315_5313_LV4_IRQ_CALLBACK(WRITELINE(md_base_state, vdp_lv4irqline_callback_genesis_68k));
MCFG_VIDEO_SET_SCREEN("megadriv")
MCFG_SCREEN_ADD("megadriv", RASTER)

View File

@ -271,6 +271,7 @@ SOUNDS += MOS7360
#-------------------------------------------------
VIDEOS += SEGA315_5124
VIDEOS += SEGA315_5313
VIDEOS += BUFSPRITE
#VIDEOS += CDP1861
#VIDEOS += CDP1862
@ -1545,7 +1546,6 @@ $(MAMEOBJ)/sega.a: \
$(DRIVERS)/kopunch.o $(VIDEO)/kopunch.o \
$(DRIVERS)/lindbergh.o \
$(MACHINE)/megadriv.o \
$(MACHINE)/megavdp.o \
$(DRIVERS)/megadrvb.o \
$(DRIVERS)/megaplay.o \
$(DRIVERS)/megatech.o \

View File

@ -528,9 +528,9 @@ static MACHINE_CONFIG_START( genesis_32x, md_cons_state )
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_SEGA315_5313_32X_SCANLINE_CB(md_cons_state, _32x_scanline_callback);
MCFG_SEGA315_5313_32X_SCANLINE_HELPER_CB(md_cons_state, _32x_scanline_helper_callback);
MCFG_SEGA315_5313_32X_INTERRUPT_CB(md_cons_state, _32x_interrupt_callback);
MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, 0)
MCFG_SEGA_32X_PALETTE("gen_vdp:palette")
@ -570,9 +570,9 @@ static MACHINE_CONFIG_START( mdj_32x, md_cons_state )
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_SEGA315_5313_32X_SCANLINE_CB(md_cons_state, _32x_scanline_callback);
MCFG_SEGA315_5313_32X_SCANLINE_HELPER_CB(md_cons_state, _32x_scanline_helper_callback);
MCFG_SEGA315_5313_32X_INTERRUPT_CB(md_cons_state, _32x_interrupt_callback);
MCFG_DEVICE_ADD("sega32x", SEGA_32X_NTSC, 0)
MCFG_SEGA_32X_PALETTE("gen_vdp:palette")
@ -612,9 +612,9 @@ static MACHINE_CONFIG_START( md_32x, md_cons_state )
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_SEGA315_5313_32X_SCANLINE_CB(md_cons_state, _32x_scanline_callback);
MCFG_SEGA315_5313_32X_SCANLINE_HELPER_CB(md_cons_state, _32x_scanline_helper_callback);
MCFG_SEGA315_5313_32X_INTERRUPT_CB(md_cons_state, _32x_interrupt_callback);
MCFG_DEVICE_ADD("sega32x", SEGA_32X_PAL, 0)
MCFG_SEGA_32X_PALETTE("gen_vdp:palette")

View File

@ -300,7 +300,7 @@ static ADDRESS_MAP_START( pico_mem, AS_PROGRAM, 16, pico_base_state )
AM_RANGE(0x800000, 0x80001f) AM_READWRITE(pico_68k_io_read, pico_68k_io_write)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000)
ADDRESS_MAP_END
@ -530,7 +530,7 @@ static ADDRESS_MAP_START( copera_mem, AS_PROGRAM, 16, copera_state )
AM_RANGE(0x800000, 0x80001f) AM_READWRITE(pico_68k_io_read, pico_68k_io_write)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega_genesis_vdp_device, megadriv_vdp_r,megadriv_vdp_w)
AM_RANGE(0xc00000, 0xc0001f) AM_DEVREADWRITE("gen_vdp", sega315_5313_device, vdp_r, vdp_w)
AM_RANGE(0xe00000, 0xe0ffff) AM_RAM AM_MIRROR(0x1f0000)
ADDRESS_MAP_END

View File

@ -1038,7 +1038,7 @@ READ16_MEMBER( sega_32x_device::_32x_common_vdp_regs_r )
void sega_32x_device::_32x_check_framebuffer_swap(bool enabled)
{
// this logic should be correct, but makes things worse?
// enabled = (genesis_scanline_counter >= megadrive_irq6_scanline) from megavdp.c
// enabled = (genesis_scanline_counter >= megadrive_irq6_scanline) from video/315_5313.c
//if (enabled)
{
m_32x_a1518a_reg = m_32x_fb_swap & 1;

View File

@ -258,6 +258,7 @@ SOUNDS += VRC6
#-------------------------------------------------
VIDEOS += SEGA315_5124
VIDEOS += SEGA315_5313
#VIDEOS += BUFSPRITE
VIDEOS += CDP1861
VIDEOS += CDP1862
@ -801,7 +802,6 @@ $(MESSOBJ)/mame.a: \
$(MAME_VIDEO)/rdptpipe.o \
$(MAME_VIDEO)/rdpspn16.o \
$(MAME_MACHINE)/megadriv.o \
$(MAME_MACHINE)/megavdp.o \
$(MAME_MACHINE)/dc.o \
$(MAME_DRIVERS)/naomi.o \
$(MAME_VIDEO)/powervr2.o \