1
#define MASTER_CLOCK_NTSC 53693175
2
#define MASTER_CLOCK_PAL 53203424
3
#define SEGACD_CLOCK 12500000
1
6
extern DRIVER_INIT( megadriv_c2 );
2
7
extern DRIVER_INIT( megadrie );
3
8
extern DRIVER_INIT( megadriv );
4
9
extern DRIVER_INIT( megadrij );
5
10
extern DRIVER_INIT( _32x );
11
extern DRIVER_INIT( mpnew );
7
INPUT_PORTS_EXTERN(megadriv);
8
INPUT_PORTS_EXTERN(aladbl);
9
INPUT_PORTS_EXTERN(megadri6);
10
INPUT_PORTS_EXTERN(ssf2ghw);
11
INPUT_PORTS_EXTERN(megdsvp);
13
INPUT_PORTS_EXTERN( md_common );
14
INPUT_PORTS_EXTERN( megadriv );
15
INPUT_PORTS_EXTERN( aladbl );
16
INPUT_PORTS_EXTERN( megadri6 );
17
INPUT_PORTS_EXTERN( ssf2ghw );
18
INPUT_PORTS_EXTERN( megdsvp );
13
20
MACHINE_DRIVER_EXTERN( megdsvppal );
14
MACHINE_DRIVER_EXTERN(megadriv);
15
MACHINE_DRIVER_EXTERN(megadpal);
16
MACHINE_DRIVER_EXTERN(megdsvp);
21
MACHINE_DRIVER_EXTERN( megadriv );
22
MACHINE_DRIVER_EXTERN( megadpal );
23
MACHINE_DRIVER_EXTERN( megdsvp );
17
24
MACHINE_DRIVER_EXTERN( genesis_32x );
18
25
MACHINE_DRIVER_EXTERN( genesis_32x_pal );
19
26
MACHINE_DRIVER_EXTERN( genesis_scd );
20
27
MACHINE_DRIVER_EXTERN( genesis_32x_scd );
28
MACHINE_DRIVER_EXTERN( md_bootleg ); // for topshoot.c & hshavoc.c
22
30
extern UINT16* megadriv_backupram;
23
31
extern int megadriv_backupram_length;
25
33
extern UINT8 megatech_bios_port_cc_dc_r(running_machine *machine, int offset, int ctrl);
26
34
extern void megadriv_stop_scanline_timer(void);
28
void megatech_set_megadrive_z80_as_megadrive_z80(running_machine *machine);
30
extern READ8_HANDLER (megatech_sms_ioport_dc_r);
31
extern READ8_HANDLER (megatech_sms_ioport_dd_r);
36
void megatech_set_megadrive_z80_as_megadrive_z80(running_machine *machine, const char* tag);
33
38
extern READ16_HANDLER( megadriv_vdp_r );
34
39
extern WRITE16_HANDLER( megadriv_vdp_w );
41
/* These handlers are needed by megaplay.c */
42
extern READ16_HANDLER( megadriv_68k_io_read );
43
extern WRITE16_HANDLER( megadriv_68k_io_write );
45
/* These handlers are needed by puckpkmn.c for his memory map */
46
extern READ8_DEVICE_HANDLER( megadriv_68k_YM2612_read);
47
extern WRITE8_DEVICE_HANDLER( megadriv_68k_YM2612_write);
49
/* These are needed to create external input handlers (see e.g. MESS) */
50
/* Regs are also used by Megaplay! */
51
extern UINT8 (*megadrive_io_read_data_port_ptr)(running_machine *machine, int offset);
52
extern void (*megadrive_io_write_data_port_ptr)(running_machine *machine, int offset, UINT16 data);
53
extern UINT8 megadrive_io_data_regs[3];
54
extern UINT8 megadrive_io_ctrl_regs[3];
36
56
MACHINE_RESET( megadriv );
37
57
VIDEO_START( megadriv );
38
58
VIDEO_UPDATE( megadriv );
39
59
VIDEO_EOF( megadriv );
41
/* Needed to create external input handlers (see e.g. MESS) */
43
extern UINT8 (*megadrive_io_read_data_port_ptr)(running_machine *machine, int offset);
44
extern void (*megadrive_io_write_data_port_ptr)(running_machine *machine, int offset, UINT16 data);
45
extern UINT8 megadrive_io_data_regs[3];
46
extern UINT8 megadrive_io_ctrl_regs[3];
48
62
extern UINT16* megadrive_vdp_palette_lookup;
49
63
extern UINT16* megadrive_vdp_palette_lookup_sprite; // for C2
56
70
extern int genvdp_use_cram;
57
71
extern int genesis_always_irq6;
58
72
extern int genesis_other_hacks;
75
/* Megaplay - Megatech specific */
76
/* It might be possible to move the following structs in the drivers */
81
struct _mplay_bios /* once all the regs are saved in this structure, it would be better to reorganize it a bit... */
83
UINT32 bios_mode; // determines whether ROM banks or Game data
84
// is to read from 0x8000-0xffff
86
UINT32 bios_bank; // ROM bank selection
87
UINT16 game_banksel; // Game bank selection
88
UINT32 readpos; // serial bank selection position (9-bit)
89
UINT32 mp_bios_bank_addr;
91
UINT32 bios_width; // determines the way the game info ROM is read
98
extern struct _mplay_bios mplay_bios; // defined in megaplay.c
100
struct _mtech_bios /* once all the regs are saved in this structure, it would be better to reorganize it a bit... */
102
UINT8 mt_cart_select_reg;
103
UINT32 bios_port_ctrl;
104
int current_game_is_sms; // is the current game SMS based (running on genesis z80, in VDP compatibility mode)
105
UINT32 bios_ctrl_inputs;
108
int mt_bank_bank_pos;