Previous 199869 Revisions Next

r17570 Wednesday 29th August, 2012 at 19:30:10 UTC by Tafoid
Made the genvdp a derived class of the newer sms vdp because the genesis vdp has an sms compatibility mode where it basically operates as an sms vdp (with a few changes / limitations).  From Haze (nw)


Comment:  Not hooked this up to megatech yet to replace the old smsvdp code on the game screen when running sms games, but once I figure out how I'm actually going to do that, that's the plan ;-)
[src/emu/video]315_5124.c 315_5124.h
[src/mame/drivers]segac2.c segas18.c
[src/mame/machine]megadriv.c megavdp.c megavdp.h

trunk/src/mame/machine/megadriv.c
r17569r17570
11281128
11291129
11301130
1131
1132static const sega315_5124_interface sms_vdp_ntsc_intf =
1133{
1134   false,
1135   "megadriv",
1136   DEVCB_NULL,
1137   DEVCB_NULL,
1138};
1139
1140static const sega315_5124_interface sms_vdp_pal_intf =
1141{
1142   true,
1143   "megadriv",
1144   DEVCB_NULL,
1145   DEVCB_NULL,
1146};
1147
1148
1149
11311150MACHINE_CONFIG_FRAGMENT( md_ntsc )
11321151   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK_NTSC / 7) /* 7.67 MHz */
11331152   MCFG_CPU_PROGRAM_MAP(megadriv_map)
r17569r17570
11441163   MCFG_FRAGMENT_ADD(megadriv_timers)
11451164
11461165   MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
1166   MCFG_DEVICE_CONFIG( sms_vdp_ntsc_intf )
11471167   sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, genesis_vdp_sndirqline_callback_genesis_z80);
11481168   sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, genesis_vdp_lv6irqline_callback_genesis_68k);
11491169   sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, genesis_vdp_lv4irqline_callback_genesis_68k);
r17569r17570
12011221   MCFG_FRAGMENT_ADD(megadriv_timers)
12021222
12031223   MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
1224   MCFG_DEVICE_CONFIG( sms_vdp_pal_intf )
12041225   sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, genesis_vdp_sndirqline_callback_genesis_z80);
12051226   sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, genesis_vdp_lv6irqline_callback_genesis_68k);
12061227   sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, genesis_vdp_lv4irqline_callback_genesis_68k);
trunk/src/mame/machine/megavdp.c
r17569r17570
33#include "emu.h"
44#include "megavdp.h"
55#include "mega32x.h"
6#include "video/315_5124.h"
67
78/* still have dependencies on the following external gunk */
89
r17569r17570
5758const device_type SEGA_GEN_VDP = &device_creator<sega_genesis_vdp_device>;
5859
5960sega_genesis_vdp_device::sega_genesis_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
60   : device_t(mconfig, SEGA_GEN_VDP, "sega_genesis_vdp_device", tag, owner, clock)
61   : sega315_5124_device( mconfig, SEGA315_5246, "Sega Genesis VDP", tag, owner, clock, SEGA315_5124_CRAM_SIZE, 0, true )
6162{
6263   m_genesis_vdp_sndirqline_callback = genesis_vdp_sndirqline_callback_default;
6364   m_genesis_vdp_lv6irqline_callback = genesis_vdp_lv6irqline_callback_default;
trunk/src/mame/machine/megavdp.h
r17569r17570
22
33#pragma once
44
5#include "video/315_5124.h"
56
67
78/*  The VDP occupies addresses C00000h to C0001Fh.
r17569r17570
153154extern int genvdp_use_cram;
154155
155156
156class sega_genesis_vdp_device : public device_t
157class sega_genesis_vdp_device : public sega315_5124_device
157158{
158159public:
159160   sega_genesis_vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
trunk/src/mame/drivers/segas18.c
r17569r17570
12311231 *
12321232 *************************************/
12331233
1234static const sega315_5124_interface sms_vdp_ntsc_intf =
1235{
1236   false,
1237   "screen",
1238   DEVCB_NULL,
1239   DEVCB_NULL,
1240};
1241
12341242static MACHINE_CONFIG_START( system18, segas18_state )
12351243
12361244   // basic machine hardware
r17569r17570
12481256
12491257
12501258   MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
1259   MCFG_DEVICE_CONFIG( sms_vdp_ntsc_intf )
12511260   sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, genesis_vdp_sndirqline_callback_segas18);
12521261   sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, genesis_vdp_lv6irqline_callback_segas18);
12531262   sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, genesis_vdp_lv4irqline_callback_segas18);
trunk/src/mame/drivers/segac2.c
r17569r17570
13611361      cputag_set_input_line(machine, "maincpu", 4, CLEAR_LINE);
13621362}
13631363
1364static const sega315_5124_interface sms_vdp_ntsc_intf =
1365{
1366   false,
1367   "megadriv",
1368   DEVCB_NULL,
1369   DEVCB_NULL,
1370};
13641371
1365
13661372static MACHINE_CONFIG_START( segac, segac2_state )
13671373
13681374   /* basic machine hardware */
r17569r17570
13761382//  MCFG_FRAGMENT_ADD(megadriv_timers)
13771383
13781384   MCFG_DEVICE_ADD("gen_vdp", SEGA_GEN_VDP, 0)
1385   MCFG_DEVICE_CONFIG( sms_vdp_ntsc_intf )
13791386   sega_genesis_vdp_device::set_genesis_vdp_sndirqline_callback(*device, genesis_vdp_sndirqline_callback_segac2);
13801387   sega_genesis_vdp_device::set_genesis_vdp_lv6irqline_callback(*device, genesis_vdp_lv6irqline_callback_segac2);
13811388   sega_genesis_vdp_device::set_genesis_vdp_lv4irqline_callback(*device, genesis_vdp_lv4irqline_callback_segac2);
trunk/src/emu/video/315_5124.c
r17569r17570
6666#define DRAW_TIME_GG      86      /* 1 + 2 + 14 +8 + 96/2 */
6767#define DRAW_TIME_SMS      0
6868
69#define SEGA315_5378_CRAM_SIZE    0x40   /* 32 colors x 2 bytes per color = 64 bytes */
70#define SEGA315_5124_CRAM_SIZE    0x20   /* 32 colors x 1 bytes per color = 32 bytes */
71
72#define VRAM_SIZE             0x4000
73
7469#define PRIORITY_BIT          0x1000
7570#define BACKDROP_COLOR        ((m_vdp_mode == 4 ? 0x10 : 0x00) + (m_reg[0x07] & 0x0f))
7671
trunk/src/emu/video/315_5124.h
r17569r17570
4242PALETTE_INIT( sega315_5378 );
4343
4444
45#define SEGA315_5378_CRAM_SIZE    0x40   /* 32 colors x 2 bytes per color = 64 bytes */
46#define SEGA315_5124_CRAM_SIZE    0x20   /* 32 colors x 1 bytes per color = 32 bytes */
47
48#define VRAM_SIZE             0x4000
49
50
4551/***************************************************************************
4652    TYPE DEFINITIONS
4753***************************************************************************/

Previous 199869 Revisions Next


© 1997-2024 The MAME Team