diff --git a/.gitattributes b/.gitattributes index dbb24cefc2c..19022ac8615 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/src/mame/machine/megavdp.c b/src/emu/video/315_5313.c similarity index 95% rename from src/mame/machine/megavdp.c rename to src/emu/video/315_5313.c index 1062b725c4f..662792377e5 100644 --- a/src/mame/machine/megavdp.c +++ b/src/emu/video/315_5313.c @@ -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; +const device_type SEGA315_5313 = &device_creator; -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(device).m_palette.set_tag(tag); + downcast(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(device); + sega315_5313_device &dev = downcast(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(device); + sega315_5313_device &dev = downcast(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) { diff --git a/src/mame/machine/megavdp.h b/src/emu/video/315_5313.h similarity index 79% rename from src/mame/machine/megavdp.h rename to src/emu/video/315_5313.h index 2aed22b7338..94694cfe1f4 100644 --- a/src/mame/machine/megavdp.h +++ b/src/emu/video/315_5313.h @@ -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 md_32x_s typedef device_delegate md_32x_interrupt_delegate; typedef device_delegate 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 static devcb2_base &set_sndirqline_callback(device_t &device, _Object object) { return downcast(device).m_sndirqline_callback.set_callback(object); } - template static devcb2_base &set_lv6irqline_callback(device_t &device, _Object object) { return downcast(device).m_lv6irqline_callback.set_callback(object); } - template static devcb2_base &set_lv4irqline_callback(device_t &device, _Object object) { return downcast(device).m_lv4irqline_callback.set_callback(object); } + template static devcb2_base &set_sndirqline_callback(device_t &device, _Object object) { return downcast(device).m_sndirqline_callback.set_callback(object); } + template static devcb2_base &set_lv6irqline_callback(device_t &device, _Object object) { return downcast(device).m_lv6irqline_callback.set_callback(object); } + template static devcb2_base &set_lv4irqline_callback(device_t &device, _Object object) { return downcast(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(device).m_32x_scanline_func = callback; } - static void set_md_32x_interrupt(device_t &device, md_32x_interrupt_delegate callback) { downcast(device).m_32x_interrupt_func = callback; } - static void set_md_32x_scanline_helper(device_t &device, md_32x_scanline_helper_delegate callback) { downcast(device).m_32x_scanline_helper_func = callback; } + static void set_md_32x_scanline(device_t &device, md_32x_scanline_delegate callback) { downcast(device).m_32x_scanline_func = callback; } + static void set_md_32x_interrupt(device_t &device, md_32x_interrupt_delegate callback) { downcast(device).m_32x_interrupt_func = callback; } + static void set_md_32x_scanline_helper(device_t &device, md_32x_scanline_helper_delegate callback) { downcast(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; diff --git a/src/emu/video/video.mak b/src/emu/video/video.mak index 352a8204f82..63403ed5289 100644 --- a/src/emu/video/video.mak +++ b/src/emu/video/video.mak @@ -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 diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index 35c8a2babaa..fbede6965f3 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -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 diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c index 69f5e018d3a..756e4914c6a 100644 --- a/src/mame/drivers/megatech.c +++ b/src/mame/drivers/megatech.c @@ -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 diff --git a/src/mame/drivers/puckpkmn.c b/src/mame/drivers/puckpkmn.c index 0c843f90cb1..75731c0c8d8 100644 --- a/src/mame/drivers/puckpkmn.c +++ b/src/mame/drivers/puckpkmn.c @@ -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) diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 94504cb0e7a..90b88393ffa 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -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) diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 3fe9c72262a..b061aa32a3e 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -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 diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h index e0a1e714b74..441a8726471 100644 --- a/src/mame/includes/megadriv.h +++ b/src/mame/includes/megadriv.h @@ -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 m_maincpu; optional_device m_z80snd; optional_device m_ymsnd; - required_device m_vdp; + required_device m_vdp; optional_shared_ptr m_megadrive_ram; ioport_port *m_io_reset; diff --git a/src/mame/includes/segas18.h b/src/mame/includes/segas18.h index e6d3cd58a87..91cd6aa3645 100644 --- a/src/mame/includes/segas18.h +++ b/src/mame/includes/segas18.h @@ -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 m_maincpu; required_device m_soundcpu; optional_device m_mcu; - required_device m_vdp; + required_device m_vdp; required_device m_nvram; required_device m_sprites; required_device m_segaic16vid; diff --git a/src/mame/machine/megadriv.c b/src/mame/machine/megadriv.c index 94393bfcf2b..12a317e82ec 100644 --- a/src/mame/machine/megadriv.c +++ b/src/mame/machine/megadriv.c @@ -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) diff --git a/src/mame/mame.mak b/src/mame/mame.mak index 54e5c271cb1..703ae8df754 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -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 \ diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c index e983ffe35a2..44fb64f6533 100644 --- a/src/mess/drivers/megadriv.c +++ b/src/mess/drivers/megadriv.c @@ -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") diff --git a/src/mess/drivers/segapico.c b/src/mess/drivers/segapico.c index 637725e21fc..6fd8d153f54 100644 --- a/src/mess/drivers/segapico.c +++ b/src/mess/drivers/segapico.c @@ -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 diff --git a/src/mess/machine/mega32x.c b/src/mess/machine/mega32x.c index 055030be8e1..5b6d20cc206 100644 --- a/src/mess/machine/mega32x.c +++ b/src/mess/machine/mega32x.c @@ -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; diff --git a/src/mess/mess.mak b/src/mess/mess.mak index a0f07ed8f74..37d3fcfa5e5 100644 --- a/src/mess/mess.mak +++ b/src/mess/mess.mak @@ -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 \