#include "burnint.h"
#include "megadrive.h"

// Notes:
// sampras might need different addresses for j-cart (0x3ffffe?)

static struct BurnInputInfo MegadriveInputList[] = {
	{"P1 Start",		BIT_DIGITAL,	MegadriveJoy1 +  7, "p1 start"  },
	{"P1 Up",		BIT_DIGITAL,	MegadriveJoy1 +  0, "p1 up"     },
	{"P1 Down",		BIT_DIGITAL,	MegadriveJoy1 +  1, "p1 down"   },
	{"P1 Left",		BIT_DIGITAL,	MegadriveJoy1 +  2, "p1 left"   },
	{"P1 Right",		BIT_DIGITAL,	MegadriveJoy1 +  3, "p1 right"  },
	{"P1 Button A",		BIT_DIGITAL,	MegadriveJoy1 +  6, "p1 fire 1" },
	{"P1 Button B",		BIT_DIGITAL,	MegadriveJoy1 +  4, "p1 fire 2" },
	{"P1 Button C",		BIT_DIGITAL,	MegadriveJoy1 +  5, "p1 fire 3" },
	{"P1 Button X",		BIT_DIGITAL,	MegadriveJoy1 + 10, "p1 fire 4" },
	{"P1 Button Y",		BIT_DIGITAL,	MegadriveJoy1 +  9, "p1 fire 5" },
	{"P1 Button Z",		BIT_DIGITAL,	MegadriveJoy1 +  8, "p1 fire 6" },
	{"P1 Mode",		BIT_DIGITAL,	MegadriveJoy1 + 11, "p1 select" },

	{"P2 Start",		BIT_DIGITAL,	MegadriveJoy2 +  7, "p2 start"  },
	{"P2 Up",		BIT_DIGITAL,	MegadriveJoy2 +  0, "p2 up"     },
	{"P2 Down",		BIT_DIGITAL,	MegadriveJoy2 +  1, "p2 down"   },
	{"P2 Left",		BIT_DIGITAL,	MegadriveJoy2 +  2, "p2 left"   },
	{"P2 Right",		BIT_DIGITAL,	MegadriveJoy2 +  3, "p2 right"  },
	{"P2 Button A",		BIT_DIGITAL,	MegadriveJoy2 +  6, "p2 fire 1" },
	{"P2 Button B",		BIT_DIGITAL,	MegadriveJoy2 +  4, "p2 fire 2" },
	{"P2 Button C",		BIT_DIGITAL,	MegadriveJoy2 +  5, "p2 fire 3" },
	{"P2 Button X",		BIT_DIGITAL,	MegadriveJoy2 + 10, "p2 fire 4" },
	{"P2 Button Y",		BIT_DIGITAL,	MegadriveJoy2 +  9, "p2 fire 5" },
	{"P2 Button Z",		BIT_DIGITAL,	MegadriveJoy2 +  8, "p2 fire 6" },
	{"P2 Mode",		BIT_DIGITAL,	MegadriveJoy2 + 11, "p2 select" },

	{"Reset",		BIT_DIGITAL,	&MegadriveReset,     "reset"    },
	{"Dip A",		BIT_DIPSWITCH,	MegadriveDIP  + 0,   "dip"      },
	{"Dip B",		BIT_DIPSWITCH,	MegadriveDIP  + 1,   "dip"      },
};

STDINPUTINFO(Megadrive)

static struct BurnInputInfo Megadrive3pInputList[] = {
	{"P1 Start",		BIT_DIGITAL,	MegadriveJoy1 +  7, "p1 start"  },
	{"P1 Up",		BIT_DIGITAL,	MegadriveJoy1 +  0, "p1 up"     },
	{"P1 Down",		BIT_DIGITAL,	MegadriveJoy1 +  1, "p1 down"   },
	{"P1 Left",		BIT_DIGITAL,	MegadriveJoy1 +  2, "p1 left"   },
	{"P1 Right",		BIT_DIGITAL,	MegadriveJoy1 +  3, "p1 right"  },
	{"P1 Button A",		BIT_DIGITAL,	MegadriveJoy1 +  6, "p1 fire 1" },
	{"P1 Button B",		BIT_DIGITAL,	MegadriveJoy1 +  4, "p1 fire 2" },
	{"P1 Button C",		BIT_DIGITAL,	MegadriveJoy1 +  5, "p1 fire 3" },
	{"P1 Button X",		BIT_DIGITAL,	MegadriveJoy1 + 10, "p1 fire 4" },
	{"P1 Button Y",		BIT_DIGITAL,	MegadriveJoy1 +  9, "p1 fire 5" },
	{"P1 Button Z",		BIT_DIGITAL,	MegadriveJoy1 +  8, "p1 fire 6" },
	{"P1 Mode",		BIT_DIGITAL,	MegadriveJoy1 + 11, "p1 select" },

	{"P2 Start",		BIT_DIGITAL,	MegadriveJoy2 +  7, "p2 start"  },
	{"P2 Up",		BIT_DIGITAL,	MegadriveJoy2 +  0, "p2 up"     },
	{"P2 Down",		BIT_DIGITAL,	MegadriveJoy2 +  1, "p2 down"   },
	{"P2 Left",		BIT_DIGITAL,	MegadriveJoy2 +  2, "p2 left"   },
	{"P2 Right",		BIT_DIGITAL,	MegadriveJoy2 +  3, "p2 right"  },
	{"P2 Button A",		BIT_DIGITAL,	MegadriveJoy2 +  6, "p2 fire 1" },
	{"P2 Button B",		BIT_DIGITAL,	MegadriveJoy2 +  4, "p2 fire 2" },
	{"P2 Button C",		BIT_DIGITAL,	MegadriveJoy2 +  5, "p2 fire 3" },
	{"P2 Button X",		BIT_DIGITAL,	MegadriveJoy2 + 10, "p2 fire 4" },
	{"P2 Button Y",		BIT_DIGITAL,	MegadriveJoy2 +  9, "p2 fire 5" },
	{"P2 Button Z",		BIT_DIGITAL,	MegadriveJoy2 +  8, "p2 fire 6" },
	{"P2 Mode",		BIT_DIGITAL,	MegadriveJoy2 + 11, "p2 select" },

	{"P3 Start",		BIT_DIGITAL,	MegadriveJoy3 +  7, "p3 start"  },
	{"P3 Up",		BIT_DIGITAL,	MegadriveJoy3 +  0, "p3 up"     },
	{"P3 Down",		BIT_DIGITAL,	MegadriveJoy3 +  1, "p3 down"   },
	{"P3 Left",		BIT_DIGITAL,	MegadriveJoy3 +  2, "p3 left"   },
	{"P3 Right",		BIT_DIGITAL,	MegadriveJoy3 +  3, "p3 right"  },
	{"P3 Button A",		BIT_DIGITAL,	MegadriveJoy3 +  6, "p3 fire 1" },
	{"P3 Button B",		BIT_DIGITAL,	MegadriveJoy3 +  4, "p3 fire 2" },
	{"P3 Button C",		BIT_DIGITAL,	MegadriveJoy3 +  5, "p3 fire 3" },
	{"P3 Button X",		BIT_DIGITAL,	MegadriveJoy3 + 10, "p3 fire 4" },
	{"P3 Button Y",		BIT_DIGITAL,	MegadriveJoy3 +  9, "p3 fire 5" },
	{"P3 Button Z",		BIT_DIGITAL,	MegadriveJoy3 +  8, "p3 fire 6" },
	{"P3 Mode",		BIT_DIGITAL,	MegadriveJoy3 + 11, "p3 select" },

	{"Reset",		BIT_DIGITAL,	&MegadriveReset,     "reset"    },
	{"Dip A",		BIT_DIPSWITCH,	MegadriveDIP  + 0,   "dip"      },
	{"Dip B",		BIT_DIPSWITCH,	MegadriveDIP  + 1,   "dip"      },
};

STDINPUTINFO(Megadrive3p)

static struct BurnInputInfo Megadrive4pInputList[] = {
	{"P1 Start",		BIT_DIGITAL,	MegadriveJoy1 +  7, "p1 start"  },
	{"P1 Up",		BIT_DIGITAL,	MegadriveJoy1 +  0, "p1 up"     },
	{"P1 Down",		BIT_DIGITAL,	MegadriveJoy1 +  1, "p1 down"   },
	{"P1 Left",		BIT_DIGITAL,	MegadriveJoy1 +  2, "p1 left"   },
	{"P1 Right",		BIT_DIGITAL,	MegadriveJoy1 +  3, "p1 right"  },
	{"P1 Button A",		BIT_DIGITAL,	MegadriveJoy1 +  6, "p1 fire 1" },
	{"P1 Button B",		BIT_DIGITAL,	MegadriveJoy1 +  4, "p1 fire 2" },
	{"P1 Button C",		BIT_DIGITAL,	MegadriveJoy1 +  5, "p1 fire 3" },
	{"P1 Button X",		BIT_DIGITAL,	MegadriveJoy1 + 10, "p1 fire 4" },
	{"P1 Button Y",		BIT_DIGITAL,	MegadriveJoy1 +  9, "p1 fire 5" },
	{"P1 Button Z",		BIT_DIGITAL,	MegadriveJoy1 +  8, "p1 fire 6" },
	{"P1 Mode",		BIT_DIGITAL,	MegadriveJoy1 + 11, "p1 select" },

	{"P2 Start",		BIT_DIGITAL,	MegadriveJoy2 +  7, "p2 start"  },
	{"P2 Up",		BIT_DIGITAL,	MegadriveJoy2 +  0, "p2 up"     },
	{"P2 Down",		BIT_DIGITAL,	MegadriveJoy2 +  1, "p2 down"   },
	{"P2 Left",		BIT_DIGITAL,	MegadriveJoy2 +  2, "p2 left"   },
	{"P2 Right",		BIT_DIGITAL,	MegadriveJoy2 +  3, "p2 right"  },
	{"P2 Button A",		BIT_DIGITAL,	MegadriveJoy2 +  6, "p2 fire 1" },
	{"P2 Button B",		BIT_DIGITAL,	MegadriveJoy2 +  4, "p2 fire 2" },
	{"P2 Button C",		BIT_DIGITAL,	MegadriveJoy2 +  5, "p2 fire 3" },
	{"P2 Button X",		BIT_DIGITAL,	MegadriveJoy2 + 10, "p2 fire 4" },
	{"P2 Button Y",		BIT_DIGITAL,	MegadriveJoy2 +  9, "p2 fire 5" },
	{"P2 Button Z",		BIT_DIGITAL,	MegadriveJoy2 +  8, "p2 fire 6" },
	{"P2 Mode",		BIT_DIGITAL,	MegadriveJoy2 + 11, "p2 select" },

	{"P3 Start",		BIT_DIGITAL,	MegadriveJoy3 +  7, "p3 start"  },
	{"P3 Up",		BIT_DIGITAL,	MegadriveJoy3 +  0, "p3 up"     },
	{"P3 Down",		BIT_DIGITAL,	MegadriveJoy3 +  1, "p3 down"   },
	{"P3 Left",		BIT_DIGITAL,	MegadriveJoy3 +  2, "p3 left"   },
	{"P3 Right",		BIT_DIGITAL,	MegadriveJoy3 +  3, "p3 right"  },
	{"P3 Button A",		BIT_DIGITAL,	MegadriveJoy3 +  6, "p3 fire 1" },
	{"P3 Button B",		BIT_DIGITAL,	MegadriveJoy3 +  4, "p3 fire 2" },
	{"P3 Button C",		BIT_DIGITAL,	MegadriveJoy3 +  5, "p3 fire 3" },
	{"P3 Button X",		BIT_DIGITAL,	MegadriveJoy3 + 10, "p3 fire 4" },
	{"P3 Button Y",		BIT_DIGITAL,	MegadriveJoy3 +  9, "p3 fire 5" },
	{"P3 Button Z",		BIT_DIGITAL,	MegadriveJoy3 +  8, "p3 fire 6" },
	{"P3 Mode",		BIT_DIGITAL,	MegadriveJoy3 + 11, "p3 select" },

	{"P4 Start",		BIT_DIGITAL,	MegadriveJoy4 +  7, "p4 start"  },
	{"P4 Up",		BIT_DIGITAL,	MegadriveJoy4 +  0, "p4 up"     },
	{"P4 Down",		BIT_DIGITAL,	MegadriveJoy4 +  1, "p4 down"   },
	{"P4 Left",		BIT_DIGITAL,	MegadriveJoy4 +  2, "p4 left"   },
	{"P4 Right",		BIT_DIGITAL,	MegadriveJoy4 +  3, "p4 right"  },
	{"P4 Button A",		BIT_DIGITAL,	MegadriveJoy4 +  6, "p4 fire 1" },
	{"P4 Button B",		BIT_DIGITAL,	MegadriveJoy4 +  4, "p4 fire 2" },
	{"P4 Button C",		BIT_DIGITAL,	MegadriveJoy4 +  5, "p4 fire 3" },
	{"P4 Button X",		BIT_DIGITAL,	MegadriveJoy4 + 10, "p4 fire 4" },
	{"P4 Button Y",		BIT_DIGITAL,	MegadriveJoy4 +  9, "p4 fire 5" },
	{"P4 Button Z",		BIT_DIGITAL,	MegadriveJoy4 +  8, "p4 fire 6" },
	{"P4 Mode",		BIT_DIGITAL,	MegadriveJoy4 + 11, "p4 select" },

	{"Reset",		BIT_DIGITAL,	&MegadriveReset,     "reset"    },
	{"Dip A",		BIT_DIPSWITCH,	MegadriveDIP  + 0,   "dip"      },
	{"Dip B",		BIT_DIPSWITCH,	MegadriveDIP  + 1,   "dip"      },
};

STDINPUTINFO(Megadrive4p)

static struct BurnInputInfo Megadrive5pInputList[] = {
	{"P1 Start",		BIT_DIGITAL,	MegadriveJoy1 +  7, "p1 start"  },
	{"P1 Up",		BIT_DIGITAL,	MegadriveJoy1 +  0, "p1 up"     },
	{"P1 Down",		BIT_DIGITAL,	MegadriveJoy1 +  1, "p1 down"   },
	{"P1 Left",		BIT_DIGITAL,	MegadriveJoy1 +  2, "p1 left"   },
	{"P1 Right",		BIT_DIGITAL,	MegadriveJoy1 +  3, "p1 right"  },
	{"P1 Button A",		BIT_DIGITAL,	MegadriveJoy1 +  6, "p1 fire 1" },
	{"P1 Button B",		BIT_DIGITAL,	MegadriveJoy1 +  4, "p1 fire 2" },
	{"P1 Button C",		BIT_DIGITAL,	MegadriveJoy1 +  5, "p1 fire 3" },
	{"P1 Button X",		BIT_DIGITAL,	MegadriveJoy1 + 10, "p1 fire 4" },
	{"P1 Button Y",		BIT_DIGITAL,	MegadriveJoy1 +  9, "p1 fire 5" },
	{"P1 Button Z",		BIT_DIGITAL,	MegadriveJoy1 +  8, "p1 fire 6" },
	{"P1 Mode",		BIT_DIGITAL,	MegadriveJoy1 + 11, "p1 select" },

	{"P2 Start",		BIT_DIGITAL,	MegadriveJoy2 +  7, "p2 start"  },
	{"P2 Up",		BIT_DIGITAL,	MegadriveJoy2 +  0, "p2 up"     },
	{"P2 Down",		BIT_DIGITAL,	MegadriveJoy2 +  1, "p2 down"   },
	{"P2 Left",		BIT_DIGITAL,	MegadriveJoy2 +  2, "p2 left"   },
	{"P2 Right",		BIT_DIGITAL,	MegadriveJoy2 +  3, "p2 right"  },
	{"P2 Button A",		BIT_DIGITAL,	MegadriveJoy2 +  6, "p2 fire 1" },
	{"P2 Button B",		BIT_DIGITAL,	MegadriveJoy2 +  4, "p2 fire 2" },
	{"P2 Button C",		BIT_DIGITAL,	MegadriveJoy2 +  5, "p2 fire 3" },
	{"P2 Button X",		BIT_DIGITAL,	MegadriveJoy2 + 10, "p2 fire 4" },
	{"P2 Button Y",		BIT_DIGITAL,	MegadriveJoy2 +  9, "p2 fire 5" },
	{"P2 Button Z",		BIT_DIGITAL,	MegadriveJoy2 +  8, "p2 fire 6" },
	{"P2 Mode",		BIT_DIGITAL,	MegadriveJoy2 + 11, "p2 select" },

	{"P3 Start",		BIT_DIGITAL,	MegadriveJoy3 +  7, "p3 start"  },
	{"P3 Up",		BIT_DIGITAL,	MegadriveJoy3 +  0, "p3 up"     },
	{"P3 Down",		BIT_DIGITAL,	MegadriveJoy3 +  1, "p3 down"   },
	{"P3 Left",		BIT_DIGITAL,	MegadriveJoy3 +  2, "p3 left"   },
	{"P3 Right",		BIT_DIGITAL,	MegadriveJoy3 +  3, "p3 right"  },
	{"P3 Button A",		BIT_DIGITAL,	MegadriveJoy3 +  6, "p3 fire 1" },
	{"P3 Button B",		BIT_DIGITAL,	MegadriveJoy3 +  4, "p3 fire 2" },
	{"P3 Button C",		BIT_DIGITAL,	MegadriveJoy3 +  5, "p3 fire 3" },
	{"P3 Button X",		BIT_DIGITAL,	MegadriveJoy3 + 10, "p3 fire 4" },
	{"P3 Button Y",		BIT_DIGITAL,	MegadriveJoy3 +  9, "p3 fire 5" },
	{"P3 Button Z",		BIT_DIGITAL,	MegadriveJoy3 +  8, "p3 fire 6" },
	{"P3 Mode",		BIT_DIGITAL,	MegadriveJoy3 + 11, "p3 select" },

	{"P4 Start",		BIT_DIGITAL,	MegadriveJoy4 +  7, "p4 start"  },
	{"P4 Up",		BIT_DIGITAL,	MegadriveJoy4 +  0, "p4 up"     },
	{"P4 Down",		BIT_DIGITAL,	MegadriveJoy4 +  1, "p4 down"   },
	{"P4 Left",		BIT_DIGITAL,	MegadriveJoy4 +  2, "p4 left"   },
	{"P4 Right",		BIT_DIGITAL,	MegadriveJoy4 +  3, "p4 right"  },
	{"P4 Button A",		BIT_DIGITAL,	MegadriveJoy4 +  6, "p4 fire 1" },
	{"P4 Button B",		BIT_DIGITAL,	MegadriveJoy4 +  4, "p4 fire 2" },
	{"P4 Button C",		BIT_DIGITAL,	MegadriveJoy4 +  5, "p4 fire 3" },
	{"P4 Button X",		BIT_DIGITAL,	MegadriveJoy4 + 10, "p4 fire 4" },
	{"P4 Button Y",		BIT_DIGITAL,	MegadriveJoy4 +  9, "p4 fire 5" },
	{"P4 Button Z",		BIT_DIGITAL,	MegadriveJoy4 +  8, "p4 fire 6" },
	{"P4 Mode",		BIT_DIGITAL,	MegadriveJoy4 + 11, "p4 select" },

	{"P5 Start",		BIT_DIGITAL,	MegadriveJoy5 +  7, "p5 start"  },
	{"P5 Up",		BIT_DIGITAL,	MegadriveJoy5 +  0, "p5 up"     },
	{"P5 Down",		BIT_DIGITAL,	MegadriveJoy5 +  1, "p5 down"   },
	{"P5 Left",		BIT_DIGITAL,	MegadriveJoy5 +  2, "p5 left"   },
	{"P5 Right",		BIT_DIGITAL,	MegadriveJoy5 +  3, "p5 right"  },
	{"P5 Button A",		BIT_DIGITAL,	MegadriveJoy5 +  6, "p5 fire 1" },
	{"P5 Button B",		BIT_DIGITAL,	MegadriveJoy5 +  4, "p5 fire 2" },
	{"P5 Button C",		BIT_DIGITAL,	MegadriveJoy5 +  5, "p5 fire 3" },
	{"P5 Button X",		BIT_DIGITAL,	MegadriveJoy5 + 10, "p5 fire 4" },
	{"P5 Button Y",		BIT_DIGITAL,	MegadriveJoy5 +  9, "p5 fire 5" },
	{"P5 Button Z",		BIT_DIGITAL,	MegadriveJoy5 +  8, "p5 fire 6" },
	{"P5 Mode",		BIT_DIGITAL,	MegadriveJoy5 + 11, "p5 select" },

	{"Reset",		BIT_DIGITAL,	&MegadriveReset,     "reset"    },
	{"Dip A",		BIT_DIPSWITCH,	MegadriveDIP  + 0,   "dip"      },
	{"Dip B",		BIT_DIPSWITCH,	MegadriveDIP  + 1,   "dip"      },
};

STDINPUTINFO(Megadrive5p)

static struct BurnDIPInfo MegadriveDIPList[] = {
	{0x1a,	0xff, 0xff, 0x03,  NULL               },

	{0,	0xfe, 0,       5, "Hardware"          },
	{0x19,	0x01, 0xc1, 0x01, "Auto Detect"       },
	{0x19,	0x01, 0xc1, 0x00, "Japan NTSC"        },
	{0x19,	0x01, 0xc1, 0x40, "Japan PAL"         },
	{0x19,	0x01, 0xc1, 0x80, "USA"               },
	{0x19,	0x01, 0xc1, 0xc0, "Europe"            },
#if 0
	{0,	0xfe, 0,       2, "CD-ROM"            },
	{0x19,	0x01, 0x20, 0x20, "No"                },
	{0x19,	0x01, 0x20, 0x00, "Yes"               },
#endif
	{0,	0xfe, 0,       4, "32-Col Mode Draw"  },
	{0x1a,	0x01, 0x03, 0x00, "No Change"         },
	{0x1a,	0x01, 0x03, 0x01, "Center"            },
	{0x1a,	0x01, 0x03, 0x02, "Inner Zoom"        },
	{0x1a,  0x01, 0x03, 0x03, "Resize Screen/Window"},
};

static struct BurnDIPInfo AutoDetectRegionDIPList[] = {
	{0x19,	0xff,  0xff,	0x21,   NULL},
};

static struct BurnDIPInfo PALRegionDIPList[] = {
	{0x19,	0xff,  0xff,	0xe0,   NULL},
};

static struct BurnDIPInfo JNTSCRegionDIPList[] = {
	{0x19,	0xff,  0xff,	0x20,   NULL},
};

static struct BurnDIPInfo UNTSCRegionDIPList[] = {
	{0x19,	0xff,  0xff,	0x20|0x80,   NULL},
};

static struct BurnDIPInfo Megadrive3pDIPList[] = {
	{0x26,	0xff, 0xff, 0x03,  NULL               },

	{0,	0xfe, 0,       5, "Hardware"          },
	{0x25,	0x01, 0xc1, 0x01, "Auto Detect"       },
	{0x25,	0x01, 0xc1, 0x00, "Japan NTSC"        },
	{0x25,	0x01, 0xc1, 0x40, "Japan PAL"         },
	{0x25,	0x01, 0xc1, 0x80, "USA"               },
	{0x25,	0x01, 0xc1, 0xc0, "Europe"            },
#if 0
	{0,	0xfe, 0,       2, "CD-ROM"            },
	{0x25,	0x01, 0x20, 0x20, "No"                },
	{0x25,	0x01, 0x20, 0x00, "Yes"               },
#endif
	{0,	0xfe, 0,       4, "32-Col Mode Draw"  },
	{0x26,	0x01, 0x03, 0x00, "No Change"         },
	{0x26,	0x01, 0x03, 0x01, "Center"            },
	{0x26,	0x01, 0x03, 0x02, "Inner Zoom"        },
	{0x26,  0x01, 0x03, 0x03, "Resize Screen/Window"},
};

static struct BurnDIPInfo AutoDetectRegion3pDIPList[] = {
	{0x25,	0xff,  0xff,	0x21,   NULL},
};

static struct BurnDIPInfo Megadrive4pDIPList[] = {
	{0x32,	0xff, 0xff, 0x03,  NULL               },

	{0,	0xfe, 0,       5, "Hardware"          },
	{0x31,	0x01, 0xc1, 0x01, "Auto Detect"       },
	{0x31,	0x01, 0xc1, 0x00, "Japan NTSC"        },
	{0x31,	0x01, 0xc1, 0x40, "Japan PAL"         },
	{0x31,	0x01, 0xc1, 0x80, "USA"               },
	{0x31,	0x01, 0xc1, 0xc0, "Europe"            },
#if 0
	{0,	0xfe, 0,       2, "CD-ROM"            },
	{0x31,	0x01, 0x20, 0x20, "No"                },
	{0x31,	0x01, 0x20, 0x00, "Yes"               },
#endif
	{0,	0xfe, 0,       4, "32-Col Mode Draw"  },
	{0x32,	0x01, 0x03, 0x00, "No Change"         },
	{0x32,	0x01, 0x03, 0x01, "Center"            },
	{0x32,	0x01, 0x03, 0x02, "Inner Zoom"        },
	{0x32,  0x01, 0x03, 0x03, "Resize Screen/Window"},
};

static struct BurnDIPInfo AutoDetectRegion4pDIPList[] = {
	{0x31,	0xff,  0xff,	0x21,   NULL},
};

static struct BurnDIPInfo Megadrive5pDIPList[] = {
	{0x3e,	0xff, 0xff, 0x03,  NULL               },

	{0,	0xfe, 0,       5, "Hardware"          },
	{0x3d,	0x01, 0xc1, 0x01, "Auto Detect"       },
	{0x3d,	0x01, 0xc1, 0x00, "Japan NTSC"        },
	{0x3d,	0x01, 0xc1, 0x40, "Japan PAL"         },
	{0x3d,	0x01, 0xc1, 0x80, "USA"               },
	{0x3d,	0x01, 0xc1, 0xc0, "Europe"            },
#if 0
	{0,	0xfe, 0,       2, "CD-ROM"            },
	{0x3d,	0x01, 0x20, 0x20, "No"                },
	{0x3d,	0x01, 0x20, 0x00, "Yes"               },
#endif
	{0,	0xfe, 0,       4, "32-Col Mode Draw"  },
	{0x3e,	0x01, 0x03, 0x00, "No Change"         },
	{0x3e,	0x01, 0x03, 0x01, "Center"            },
	{0x3e,	0x01, 0x03, 0x02, "Inner Zoom"        },
	{0x3e,  0x01, 0x03, 0x03, "Resize Screen/Window"},
};

static struct BurnDIPInfo AutoDetectRegion5pDIPList[] = {
	{0x3d,	0xff,  0xff,	0x21,   NULL},
};

STDDIPINFOEXT(Megadrive, AutoDetectRegion, Megadrive)
STDDIPINFOEXT(MegadrivePAL, PALRegion, Megadrive)
STDDIPINFOEXT(MegadriveJNTSC, JNTSCRegion, Megadrive)
STDDIPINFOEXT(MegadriveUSANTSC, UNTSCRegion, Megadrive)
STDDIPINFOEXT(Megadrive3p, AutoDetectRegion3p, Megadrive3p)
STDDIPINFOEXT(Megadrive4p, AutoDetectRegion4p, Megadrive4p)
STDDIPINFOEXT(Megadrive5p, AutoDetectRegion5p, Megadrive5p)

INT32 MegadriveGetZipName(char** pszName, UINT32 i)
{
	static char szFilename[MAX_PATH];
	char* pszGameName = NULL;

	if (pszName == NULL) {
		return 1;
	}

	if (i == 0) {
		pszGameName = BurnDrvGetTextA(DRV_NAME);
	} else {
		pszGameName = BurnDrvGetTextA(DRV_PARENT);
	}

	if (pszGameName == NULL || i > 1) {
		*pszName = NULL;
		return 1;
	}

	// remove the "md_"
	memset(szFilename, 0, MAX_PATH);
	for (UINT32 j = 0; j < (strlen(pszGameName) - 3); j++) {
		szFilename[j] = pszGameName[j + 3];
	}

	*pszName = szFilename;

	return 0;
}

// Game Toshokan (Japan, Rev. A)
static struct BurnRomInfo md_gametoRomDesc[] = {
	{ "Game Toshokan (Japan, Rev A)(1990)(Sega).bin", 0x020000, 0xc185c819, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gameto)
STD_ROM_FN(md_gameto)

struct BurnDriver BurnDrvmd_gameto = {
	"md_gameto", NULL, NULL, NULL, "1990",
	"Game Toshokan (Japan, Rev. A)\0", "Need a 'Mega Modem' peripheral to work", "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_MISC, 0,
	MegadriveGetZipName, md_gametoRomInfo, md_gametoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines 2 - Turbo Tournament (Euro, J-Cart)
static struct BurnRomInfo md_micromc2RomDesc[] = {
	{ "Micro Machines 2 - Turbo Tournament (Euro, J-Cart)(1994)(Codemasters).bin", 0x100000, 0x42bfb7eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromc2)
STD_ROM_FN(md_micromc2)

struct BurnDriver BurnDrvmd_micromc2 = {
	"md_micromc2", NULL, NULL, NULL, "1994",
	"Micro Machines 2 - Turbo Tournament (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_RACING, 0,
	MegadriveGetZipName, md_micromc2RomInfo, md_micromc2RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines Turbo Tournament '96 (Euro, Rev. 1, J-Cart)
static struct BurnRomInfo md_microm96RomDesc[] = {
	{ "Micro Machines Turbo Tournament 96 (Euro, Rev 1, J-Cart)(1995)(Codemasters).bin", 0x100000, 0x23319d0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_microm96)
STD_ROM_FN(md_microm96)

struct BurnDriver BurnDrvmd_microm96 = {
	"md_microm96", NULL, NULL, NULL, "1995",
	"Micro Machines Turbo Tournament '96 (Euro, Rev. 1, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_RACING, 0,
	MegadriveGetZipName, md_microm96RomInfo, md_microm96RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pete Sampras Tennis (Euro, USA, J-Cart)
static struct BurnRomInfo md_samprasRomDesc[] = {
	{ "Pete Sampras Tennis (Euro, USA, J-Cart)(1994)(Codemasters).bin", 0x100000, 0x94e505b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sampras)
STD_ROM_FN(md_sampras)

struct BurnDriver BurnDrvmd_sampras = {
	"md_sampras", NULL, NULL, NULL, "1994",
	"Pete Sampras Tennis (Euro, USA, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_samprasRomInfo, md_samprasRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Smurfs, The (Euro, Rev. A)
static struct BurnRomInfo md_smurfsRomDesc[] = {
	{ "Smurfs, The (Euro, Rev A)(1995)(Infogrames).ic1", 0x100000, 0x88b30eff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smurfs)
STD_ROM_FN(md_smurfs)

struct BurnDriver BurnDrvmd_smurfs = {
	"md_smurfs", NULL, NULL, NULL, "1995",
	"Smurfs, The (Euro, Rev. A)\0", NULL, "Infogrames", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smurfsRomInfo, md_smurfsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soleil (Euro, Spanish)
static struct BurnRomInfo md_soleilsRomDesc[] = {
	{ "Soleil (Euro, Spanish)(1994)(Sega).bin", 0x200000, 0x9ed4c323, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soleils)
STD_ROM_FN(md_soleils)

struct BurnDriver BurnDrvmd_soleils = {
	"md_soleils", "md_soleil", NULL, NULL, "1994",
	"Soleil (Euro, Spanish)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_soleilsRomInfo, md_soleilsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soleil (Euro, French)
static struct BurnRomInfo md_soleilfRomDesc[] = {
	{ "Soleil (Euro, French)(1994)(Sega).bin", 0x200000, 0x08dc1ead, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soleilf)
STD_ROM_FN(md_soleilf)

struct BurnDriver BurnDrvmd_soleilf = {
	"md_soleilf", "md_soleil", NULL, NULL, "1994",
	"Soleil (Euro, French)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_soleilfRomInfo, md_soleilfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soleil (Euro, German)
static struct BurnRomInfo md_soleilgRomDesc[] = {
	{ "Soleil (Euro, German)(1994)(Sega).bin", 0x200000, 0x332b9ecd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soleilg)
STD_ROM_FN(md_soleilg)

struct BurnDriver BurnDrvmd_soleilg = {
	"md_soleilg", "md_soleil", NULL, NULL, "1994",
	"Soleil (Euro, German)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_soleilgRomInfo, md_soleilgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 (Euro)
static struct BurnRomInfo md_sonic3RomDesc[] = {
	{ "Sonic the Hedgehog 3 (Euro)(1994)(Sega).bin", 0x200000, 0x6a632503, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3)
STD_ROM_FN(md_sonic3)

struct BurnDriver BurnDrvmd_sonic3 = {
	"md_sonic3", NULL, NULL, NULL, "1994",
	"Sonic the Hedgehog 3 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3RomInfo, md_sonic3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 (USA)
static struct BurnRomInfo md_sonic3uRomDesc[] = {
	{ "Sonic the Hedgehog 3 (USA)(1994)(Sega).bin", 0x200000, 0x9bc192ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3u)
STD_ROM_FN(md_sonic3u)

struct BurnDriver BurnDrvmd_sonic3u = {
	"md_sonic3u", "md_sonic3", NULL, NULL, "1994",
	"Sonic the Hedgehog 3 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3uRomInfo, md_sonic3uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 (Japan, Korea)
static struct BurnRomInfo md_sonic3jRomDesc[] = {
	{ "Sonic the Hedgehog 3 (Japan, Korea)(1994)(Sega).bin", 0x200000, 0xf4951d1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3j)
STD_ROM_FN(md_sonic3j)

struct BurnDriver BurnDrvmd_sonic3j = {
	"md_sonic3j", "md_sonic3", NULL, NULL, "1994",
	"Sonic the Hedgehog 3 (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3jRomInfo, md_sonic3jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 (Prototype, 19931120)
static struct BurnRomInfo md_sonic3p1RomDesc[] = {
	{ "Sonic the Hedgehog 3 (Prototype, 19931120)(1994)(Sega).bin", 0x200000, 0xebc0af69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3p1)
STD_ROM_FN(md_sonic3p1)

struct BurnDriver BurnDrvmd_sonic3p1 = {
	"md_sonic3p1", "md_sonic3", NULL, NULL, "1994",
	"Sonic the Hedgehog 3 (Prototype, 19931120)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3p1RomInfo, md_sonic3p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 (Prototype, 19931103)
static struct BurnRomInfo md_sonic3p2RomDesc[] = {
	{ "Sonic the Hedgehog 3 (Prototype, 19931103)(1994)(Sega).bin", 0x200000, 0xe4a16a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3p2)
STD_ROM_FN(md_sonic3p2)

struct BurnDriver BurnDrvmd_sonic3p2 = {
	"md_sonic3p2", "md_sonic3", NULL, NULL, "1994",
	"Sonic the Hedgehog 3 (Prototype, 19931103)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3p2RomInfo, md_sonic3p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 (Pirate)
static struct BurnRomInfo md_sonic3pirRomDesc[] = {
	{ "Sonic the Hedgehog 3 (Pirate)(199x).bin", 0x200000, 0xc818f6fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3pir)
STD_ROM_FN(md_sonic3pir)

struct BurnDriver BurnDrvmd_sonic3pir = {
	"md_sonic3pir", "md_sonic3", NULL, NULL, "199?",
	"Sonic the Hedgehog 3 (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3pirRomInfo, md_sonic3pirRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Spinball (Euro)
static struct BurnRomInfo md_sspinRomDesc[] = {
	{ "Sonic Spinball (Euro)(1993)(Sega).bin", 0x100000, 0xaea0786d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sspin)
STD_ROM_FN(md_sspin)

struct BurnDriver BurnDrvmd_sspin = {
	"md_sspin", NULL, NULL, NULL, "1993",
	"Sonic Spinball (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, FBF_SONIC,
	MegadriveGetZipName, md_sspinRomInfo, md_sspinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Harrier II (World)
static struct BurnRomInfo md_sharrierRomDesc[] = {
	{ "Space Harrier II (World)(1989)(Sega).bin", 0x080000, 0xe5c9cbb0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sharrier)
STD_ROM_FN(md_sharrier)

struct BurnDriver BurnDrvmd_sharrier = {
	"md_sharrier", NULL, NULL, NULL, "1989",
	"Space Harrier II (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_sharrierRomInfo, md_sharrierRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Monaco GP (Euro, Japan, Rev. A)
static struct BurnRomInfo md_smgpRomDesc[] = {
	{ "Super Monaco GP (Euro, Japan, Rev. A)(1990)(Sega).bin", 0x080000, 0xbe91b28a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgp)
STD_ROM_FN(md_smgp)

struct BurnDriver BurnDrvmd_smgp = {
	"md_smgp", NULL, NULL, NULL, "1990",
	"Super Monaco GP (Euro, Japan, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_smgpRomInfo, md_smgpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Smash TV (Euro, USA)
static struct BurnRomInfo md_ssmashtvRomDesc[] = {
	{ "Super Smash TV (Euro, USA)(1992)(Flying Edge).bin", 0x080000, 0xf22412b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssmashtv)
STD_ROM_FN(md_ssmashtv)

struct BurnDriver BurnDrvmd_ssmashtv = {
	"md_ssmashtv", NULL, NULL, NULL, "1992",
	"Super Smash TV (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ssmashtvRomInfo, md_ssmashtvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Light Crusader (Euro)
static struct BurnRomInfo md_lightcRomDesc[] = {
	{ "Light Crusader (Euro)(1995)(Sega).bin", 0x200000, 0x52c7252b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lightc)
STD_ROM_FN(md_lightc)

struct BurnDriver BurnDrvmd_lightc = {
	"md_lightc", NULL, NULL, NULL, "1995",
	"Light Crusader (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_lightcRomInfo, md_lightcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN Speedworld (USA, Prototype)
static struct BurnRomInfo md_espnspedpRomDesc[] = {
	{ "u4.bin", 0x080000, 0x525788b1, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000  },
	{ "u5.bin", 0x080000, 0xada9c9a8, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001  },
	{ "u1.bin", 0x080000, 0xe8ee1029, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100000  },
	{ "u2.bin", 0x080000, 0x0f3ec491, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100001  },
};

STD_ROM_PICK(md_espnspedp)
STD_ROM_FN(md_espnspedp)

struct BurnDriver BurnDrvmd_espnspedp = {
	"md_espnspedp", "md_espnsped", NULL, NULL, "1994",
	"ESPN Speedworld (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_espnspedpRomInfo, md_espnspedpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN Sunday Night NFL (USA, Prototype)
static struct BurnRomInfo md_espnnflpRomDesc[] = {
	{ "u4.bin", 0x080000, 0x9f427221, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000  },
	{ "u5.bin", 0x080000, 0x3445f0e8, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001  },
	{ "u1.bin", 0x080000, 0x5d05efc5, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100000  },
	{ "u2.bin", 0x080000, 0x7ae6fd4b, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100001  },
};

STD_ROM_PICK(md_espnnflp)
STD_ROM_FN(md_espnnflp)

struct BurnDriver BurnDrvmd_espnnflp = {
	"md_espnnflp", "md_espnnfl", NULL, NULL, "1994",
	"ESPN Sunday Night NFL (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_espnnflpRomInfo, md_espnnflpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Incredible Crash Dummies, The (Euro, USA)
static struct BurnRomInfo md_crashdumRomDesc[] = {
	{ "Incredible Crash Dummies, The (Euro, USA)(1993)(Flying Edge).bin", 0x100000, 0x1f6e574a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crashdum)
STD_ROM_FN(md_crashdum)

struct BurnDriver BurnDrvmd_crashdum = {
	"md_crashdum", NULL, NULL, NULL, "1993",
	"Incredible Crash Dummies, The (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_crashdumRomInfo, md_crashdumRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESWAT - City Under Siege (Euro, USA, Rev. A)
static struct BurnRomInfo md_eswatRomDesc[] = {
	{ "ESWAT - City Under Siege (Euro, USA, Rev. A)(1990)(Sega).bin", 0x080000, 0xe72f8a36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eswat)
STD_ROM_FN(md_eswat)

struct BurnDriver BurnDrvmd_eswat = {
	"md_eswat", NULL, NULL, NULL, "1990",
	"ESWAT - City Under Siege (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_eswatRomInfo, md_eswatRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Evander Holyfield's 'Real Deal' Boxing (World)
static struct BurnRomInfo md_evanderRomDesc[] = {
	{ "Evander Holyfield's 'Real Deal' Boxing (World)(1992)(Sega).bin", 0x080000, 0x4fef37c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_evander)
STD_ROM_FN(md_evander)

struct BurnDriver BurnDrvmd_evander = {
	"md_evander", NULL, NULL, NULL, "1992",
	"Evander Holyfield's 'Real Deal' Boxing (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_evanderRomInfo, md_evanderRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ex-Mutants (Euro, USA)
static struct BurnRomInfo md_exmutantRomDesc[] = {
	{ "Ex-Mutants (Euro, USA)(1992)(Sega).bin", 0x100000, 0x33b1979f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exmutant)
STD_ROM_FN(md_exmutant)

struct BurnDriver BurnDrvmd_exmutant = {
	"md_exmutant", NULL, NULL, NULL, "1992",
	"Ex-Mutants (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_exmutantRomInfo, md_exmutantRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Galaxy Force II (World, Rev. B)
static struct BurnRomInfo md_gforce2RomDesc[] = {
	{ "Galaxy Force II (World, Rev. B)(1991)(Sega).bin", 0x100000, 0xd15f5c3c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gforce2)
STD_ROM_FN(md_gforce2)

struct BurnDriver BurnDrvmd_gforce2 = {
	"md_gforce2", NULL, NULL, NULL, "1991",
	"Galaxy Force II (World, Rev. B)\0", NULL, "CRI ~ Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_gforce2RomInfo, md_gforce2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mutant League Football (Euro, USA)
static struct BurnRomInfo md_mlfootbRomDesc[] = {
	{ "Mutant League Football (Euro, USA)(1993)(Electronic Arts).bin", 0x100000, 0xdce29c9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mlfootb)
STD_ROM_FN(md_mlfootb)

struct BurnDriver BurnDrvmd_mlfootb = {
	"md_mlfootb", NULL, NULL, NULL, "1993",
	"Mutant League Football (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mlfootbRomInfo, md_mlfootbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pink Goes to Hollywood (Euro, USA)
static struct BurnRomInfo md_pinkRomDesc[] = {
	{ "Pink Goes to Hollywood (Euro, USA)(1993)(TecMagik).bin", 0x100000, 0xb5804771, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pink)
STD_ROM_FN(md_pink)

struct BurnDriver BurnDrvmd_pink = {
	"md_pink", NULL, NULL, NULL, "1993",
	"Pink Goes to Hollywood (Euro, USA)\0", NULL, "TecMagik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pinkRomInfo, md_pinkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man and X-Men - Arcade's Revenge (Euro, USA)
static struct BurnRomInfo md_spidxmenRomDesc[] = {
	{ "Spider-Man and X-Men - Arcade's Revenge (Euro, USA)(1994)(Flying Edge).bin", 0x100000, 0x4a4414ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidxmen)
STD_ROM_FN(md_spidxmen)

struct BurnDriver BurnDrvmd_spidxmen = {
	"md_spidxmen", NULL, NULL, NULL, "1994",
	"Spider-Man and X-Men - Arcade's Revenge (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spidxmenRomInfo, md_spidxmenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zoom! (World)
static struct BurnRomInfo md_zoomRomDesc[] = {
	{ "Zoom! (World)(1990)(Sega).bin", 0x040000, 0x724d6965, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zoom)
STD_ROM_FN(md_zoom)

struct BurnDriver BurnDrvmd_zoom = {
	"md_zoom", NULL, NULL, NULL, "1990",
	"Zoom! (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_zoomRomInfo, md_zoomRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zany Golf (Euro, USA, Rev. 1)
static struct BurnRomInfo md_zanygolfRomDesc[] = {
	{ "Zany Golf (Euro, USA)(Rev 1)(1990)(Electronic Arts).bin", 0x080000, 0x74ed7607, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zanygolf)
STD_ROM_FN(md_zanygolf)

struct BurnDriver BurnDrvmd_zanygolf = {
	"md_zanygolf", NULL, NULL, NULL, "1990",
	"Zany Golf (Euro, USA, Rev. 1)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_zanygolfRomInfo, md_zanygolfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bugs Bunny in Double Trouble (Euro)
static struct BurnRomInfo md_bugsbunRomDesc[] = {
	{ "Bugs Bunny in Double Trouble (Euro)(1996)(Sega).bin", 0x200000, 0xcec0a0bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bugsbun)
STD_ROM_FN(md_bugsbun)

struct BurnDriver BurnDrvmd_bugsbun = {
	"md_bugsbun", NULL, NULL, NULL, "1996",
	"Bugs Bunny in Double Trouble (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bugsbunRomInfo, md_bugsbunRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kid Chameleon (Euro, Korea, USA)
static struct BurnRomInfo md_kidchamRomDesc[] = {
	{ "Kid Chameleon (Euro, Korea, USA)(1992)(Sega).bin", 0x100000, 0xce36e6cc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kidcham)
STD_ROM_FN(md_kidcham)

struct BurnDriver BurnDrvmd_kidcham = {
	"md_kidcham", NULL, NULL, NULL, "1992",
	"Kid Chameleon (Euro, Korea, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kidchamRomInfo, md_kidchamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 95 (Korea)
static struct BurnRomInfo md_fifa95kRomDesc[] = {
	{ "FIFA Soccer 95 (Korea)(1994)(Electronic Arts).bin", 0x200000, 0x012591f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa95k)
STD_ROM_FN(md_fifa95k)

struct BurnDriver BurnDrvmd_fifa95k = {
	"md_fifa95k", "md_fifa95", NULL, NULL, "1994",
	"FIFA Soccer 95 (Korea)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa95kRomInfo, md_fifa95kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shinobi III - Return of the Ninja Master (Euro)
static struct BurnRomInfo md_shinobi3RomDesc[] = {
	{ "Shinobi III - Return of the Ninja Master (Euro)(1993)(Sega).bin", 0x100000, 0x0b6d3eb5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinobi3)
STD_ROM_FN(md_shinobi3)

struct BurnDriver BurnDrvmd_shinobi3 = {
	"md_shinobi3", NULL, NULL, NULL, "1993",
	"Shinobi III - Return of the Ninja Master (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_shinobi3RomInfo, md_shinobi3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force II (Euro, USA)
static struct BurnRomInfo md_tf2RomDesc[] = {
	{ "Thunder Force II (Euro, USA)(1989)(Sega).bin", 0x080000, 0x9b1561b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf2)
STD_ROM_FN(md_tf2)

struct BurnDriver BurnDrvmd_tf2 = {
	"md_tf2", NULL, NULL, NULL, "1989",
	"Thunder Force II (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_tf2RomInfo, md_tf2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// QuackShot Starring Donald Duck ~ QuackShot: Guruzia Ou no Hihou (World)
static struct BurnRomInfo md_quackshtRomDesc[] = {
	{ "QuackShot Starring Donald Duck (World)(1991)(Sega).bin", 0x080000, 0x5dd28dd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP_CONTINUE_040000_100000 | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_quacksht)
STD_ROM_FN(md_quacksht)

struct BurnDriver BurnDrvmd_quacksht = {
	"md_quacksht", NULL, NULL, NULL, "1991",
	"QuackShot Starring Donald Duck ~ QuackShot: Guruzia Ou no Hihou (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_quackshtRomInfo, md_quackshtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Herzog Zwei (Euro, USA)
static struct BurnRomInfo md_herzogRomDesc[] = {
	{ "Herzog Zwei (Euro, USA)(1989)(Technosoft).bin", 0x080000, 0xa605b65b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_herzog)
STD_ROM_FN(md_herzog)

struct BurnDriver BurnDrvmd_herzog = {
	"md_herzog", NULL, NULL, NULL, "1989",
	"Herzog Zwei (Euro, USA)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_herzogRomInfo, md_herzogRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - Le Trésor du Roi Nole (Euro, French)
static struct BurnRomInfo md_landstlkfRomDesc[] = {
	{ "Landstalker - Le Tresor du Roi Nole (Euro, French)(1993)(Sega).bin", 0x200000, 0x5de7d917, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlkf)
STD_ROM_FN(md_landstlkf)

struct BurnDriver BurnDrvmd_landstlkf = {
	"md_landstlkf", "md_landstlk", NULL, NULL, "1993",
	"Landstalker - Le Tresor du Roi Nole (Euro, French)\0", NULL, "Sega", "Sega Megadrive",
	L"Landstalker - Le Tr\u00e9sor du Roi Nole (Euro, French)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkfRomInfo, md_landstlkfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog (Euro, USA)
static struct BurnRomInfo md_sonicRomDesc[] = {
	{ "Sonic the Hedgehog (Euro, USA)(1991)(Sega).bin", 0x080000, 0xf9394e97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic)
STD_ROM_FN(md_sonic)

struct BurnDriver BurnDrvmd_sonic = {
	"md_sonic", NULL, NULL, NULL, "1991",
	"Sonic the Hedgehog (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicRomInfo, md_sonicRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog (Prototype)
static struct BurnRomInfo md_sonicpRomDesc[] = {
	{ "Sonic the Hedgehog (Prototype)(1991)(Sega).bin", 0x080000, 0x917c9ca9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicp)
STD_ROM_FN(md_sonicp)

struct BurnDriver BurnDrvmd_sonicp = {
	"md_sonicp", "md_sonic", NULL, NULL, "1991",
	"Sonic the Hedgehog (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicpRomInfo, md_sonicpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 95 (Euro, USA)
static struct BurnRomInfo md_fifa95RomDesc[] = {
	{ "FIFA Soccer 95 (Euro, USA)(1994)(Electronic Arts).bin", 0x200000, 0xb389d036, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa95)
STD_ROM_FN(md_fifa95)

struct BurnDriver BurnDrvmd_fifa95 = {
	"md_fifa95", NULL, NULL, NULL, "1994",
	"FIFA Soccer 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa95RomInfo, md_fifa95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Skitchin (Euro, USA)
static struct BurnRomInfo md_skitchinRomDesc[] = {
	{ "Skitchin (Euro, USA)(1993)(Electronic Arts).bin", 0x200000, 0xf785f9d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skitchin)
STD_ROM_FN(md_skitchin)

struct BurnDriver BurnDrvmd_skitchin = {
	"md_skitchin", NULL, NULL, NULL, "1993",
	"Skitchin (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_skitchinRomInfo, md_skitchinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Paperboy 2 (Euro, USA)
static struct BurnRomInfo md_paperbo2RomDesc[] = {
	{ "Paperboy 2 (Euro, USA)(1992)(Tengen).bin", 0x100000, 0x1de28bb1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paperbo2)
STD_ROM_FN(md_paperbo2)

struct BurnDriver BurnDrvmd_paperbo2 = {
	"md_paperbo2", NULL, NULL, NULL, "1992",
	"Paperboy 2 (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_paperbo2RomInfo, md_paperbo2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jewel Master (Euro, USA, Rev. A)
static struct BurnRomInfo md_jewelmsRomDesc[] = {
	{ "Jewel Master (Euro, USA, Rev A)(1991)(Sega).bin", 0x080000, 0xcee98813, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jewelms)
STD_ROM_FN(md_jewelms)

struct BurnDriver BurnDrvmd_jewelms = {
	"md_jewelms", NULL, NULL, NULL, "1991",
	"Jewel Master (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jewelmsRomInfo, md_jewelmsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Side Pocket (USA)
static struct BurnRomInfo md_sidepockuRomDesc[] = {
	{ "Side Pocket (USA)(1992)(Data East).bin", 0x100000, 0xaf9f275d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sidepocku)
STD_ROM_FN(md_sidepocku)

struct BurnDriver BurnDrvmd_sidepocku = {
	"md_sidepocku", "md_sidepock", NULL, NULL, "1992",
	"Side Pocket (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sidepockuRomInfo, md_sidepockuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Psycho Pinball (Euro, 199410)
static struct BurnRomInfo md_psychoRomDesc[] = {
	{ "Psycho Pinball (Euro, 199410)(1994)(Codemasters).bin", 0x200000, 0x32dd8351, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psycho)
STD_ROM_FN(md_psycho)

struct BurnDriver BurnDrvmd_psycho = {
	"md_psycho", NULL, NULL, NULL, "1994",
	"Psycho Pinball (Euro, 199410)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_psychoRomInfo, md_psychoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Psycho Pinball (Euro, 199409)
static struct BurnRomInfo md_psycho1RomDesc[] = {
	{ "Psycho Pinball (Euro, 199409)(1994)(Codemasters).bin", 0x200000, 0x1ab8f1a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psycho1)
STD_ROM_FN(md_psycho1)

struct BurnDriver BurnDrvmd_psycho1 = {
	"md_psycho1", "md_psycho", NULL, NULL, "1994",
	"Psycho Pinball (Euro, 199409)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_psycho1RomInfo, md_psycho1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Psycho Pinball (Prototype)
static struct BurnRomInfo md_psychopRomDesc[] = {
	{ "Psycho Pinball (Prototype)(1994)(Codemasters).bin", 0x200000, 0xf29a5532, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psychop)
STD_ROM_FN(md_psychop)

struct BurnDriver BurnDrvmd_psychop = {
	"md_psychop", "md_psycho", NULL, NULL, "1994",
	"Psycho Pinball (Prototype)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_psychopRomInfo, md_psychopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines (Euro, USA)
static struct BurnRomInfo md_micromacRomDesc[] = {
	{ "Micro Machines (Euro, USA)(1993)(Codemasters).bin", 0x080000, 0x50081a0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromac)
STD_ROM_FN(md_micromac)

struct BurnDriver BurnDrvmd_micromac = {
	"md_micromac", NULL, NULL, NULL, "1993",
	"Micro Machines (Euro, USA)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_micromacRomInfo, md_micromacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 2 in 1 - Psycho Pinball & Micro Machines (Euro)
static struct BurnRomInfo md_2psymmacRomDesc[] = {
	{ "mdppf821.bin", 0x200000, 0x32dd8351, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
	{ "mdmm_acd3.bin", 0x080000, 0x50081a0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_200000  },
};

STD_ROM_PICK(md_2psymmac)
STD_ROM_FN(md_2psymmac)

struct BurnDriver BurnDrvmd_2psymmac = {
	"md_2psymmac", NULL, NULL, NULL, "1993",
	"2 in 1 - Psycho Pinball & Micro Machines (Euro)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_2psymmacRomInfo, md_2psymmacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 16 Ton (Japan, SegaNet)
static struct BurnRomInfo md_16tonRomDesc[] = {
	{ "16 ton (jpn) (sn).bin", 0x040000, 0x537f04b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_16ton)
STD_ROM_FN(md_16ton)

struct BurnDriver BurnDrvmd_16ton = {
	"md_16ton", NULL, NULL, NULL, "1991",
	"16 Ton (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_16tonRomInfo, md_16tonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 16 Ton (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_16tongnkRomDesc[] = {
	{ "16 ton (jpn) (gnk).bin", 0x040000, 0x98149eaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_16tongnk)
STD_ROM_FN(md_16tongnk)

struct BurnDriver BurnDrvmd_16tongnk = {
	"md_16tongnk", "md_16ton", NULL, NULL, "1991",
	"16 Ton (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_16tongnkRomInfo, md_16tongnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 2020 Super Baseball (Euro, USA)
static struct BurnRomInfo md_2020bbRomDesc[] = {
	{ "2020 Super Baseball (Euro, USA)(1994)(Electronic Arts).bin", 0x200000, 0xc17acee5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_2020bb)
STD_ROM_FN(md_2020bb)

struct BurnDriver BurnDrvmd_2020bb = {
	"md_2020bb", NULL, NULL, NULL, "1994",
	"2020 Super Baseball (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_2020bbRomInfo, md_2020bbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 2020 Toshi Super Baseball (Japan)
static struct BurnRomInfo md_2020bbjRomDesc[] = {
	{ "2020 Toshi Super Baseball (Japan)(1994)(Victor - Electronic Arts).bin", 0x200000, 0x2bbee127, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_2020bbj)
STD_ROM_FN(md_2020bbj)

struct BurnDriver BurnDrvmd_2020bbj = {
	"md_2020bbj", "md_2020bb", NULL, NULL, "1994",
	"2020 Toshi Super Baseball (Japan)\0", NULL, "Victor - Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_2020bbjRomInfo, md_2020bbjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 3 Ninjas Kick Back (USA)
static struct BurnRomInfo md_3ninjaRomDesc[] = {
	{ "3 Ninjas Kick Back (USA)(1994)(Psygnosis).bin", 0x200000, 0xe5a24999, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_3ninja)
STD_ROM_FN(md_3ninja)

struct BurnDriver BurnDrvmd_3ninja = {
	"md_3ninja", NULL, NULL, NULL, "1994",
	"3 Ninjas Kick Back (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_3ninjaRomInfo, md_3ninjaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 3 in 1 Flashback - World Championship Soccer - Tecmo World Cup 92 (Pirate)
static struct BurnRomInfo md_3in1fwtRomDesc[] = {
	{ "3 in 1 Flashback - World Championship Soccer - Tecmo World Cup 92 (Pirate)(199x).bin", 0x200000, 0xa8fd28d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_3in1fwt)
STD_ROM_FN(md_3in1fwt)

struct BurnDriver BurnDrvmd_3in1fwt = {
	"md_3in1fwt", NULL, NULL, NULL, "199?",
	"3 in 1 Flashback - World Championship Soccer - Tecmo World Cup 92 (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_3in1fwtRomInfo, md_3in1fwtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 3 in 1 Road Rash - Ms. Pac-Man - Block Out (Pirate)
static struct BurnRomInfo md_3in1rmbRomDesc[] = {
	{ "3 in 1 Road Rash - Ms. Pac-Man - Block Out (Pirate)(199x).bin", 0x100000, 0x13c96154, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_3in1rmb)
STD_ROM_FN(md_3in1rmb)

struct BurnDriver BurnDrvmd_3in1rmb = {
	"md_3in1rmb", NULL, NULL, NULL, "199?",
	"3 in 1 Road Rash - Ms. Pac-Man - Block Out (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_3in1rmbRomInfo, md_3in1rmbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 6-Pak (USA)
static struct BurnRomInfo md_6pakRomDesc[] = {
	{ "6-Pak (USA)(1996)(Sega).bin", 0x300000, 0x1a6f45dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_6pak)
STD_ROM_FN(md_6pak)

struct BurnDriver BurnDrvmd_6pak = {
	"md_6pak", NULL, NULL, NULL, "1996",
	"6-Pak (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_6pakRomInfo, md_6pakRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 688 Attack Sub (Euro, USA)
static struct BurnRomInfo md_688atsubRomDesc[] = {
	{ "688 Attack Sub (Euro, USA)(1991)(Sega).bin", 0x100000, 0xf2c58bf7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_688atsub)
STD_ROM_FN(md_688atsub)

struct BurnDriver BurnDrvmd_688atsub = {
	"md_688atsub", NULL, NULL, NULL, "1991",
	"688 Attack Sub (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_688atsubRomInfo, md_688atsubRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// A Ressha de Ikou MD - Take the 'A' Train (Japan)
static struct BurnRomInfo md_aresshmdRomDesc[] = {
	{ "A Ressha de Ikou MD - Take the 'A' Train (Japan)(1992)(Sega).bin", 0x080000, 0x3d45de4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aresshmd)
STD_ROM_FN(md_aresshmd)

struct BurnDriver BurnDrvmd_aresshmd = {
	"md_aresshmd", NULL, NULL, NULL, "1992",
	"A Ressha de Ikou MD - Take the 'A' Train (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SIM, 0,
	MegadriveGetZipName, md_aresshmdRomInfo, md_aresshmdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aa Harimanada (Japan)
static struct BurnRomInfo md_aaharimaRomDesc[] = {
	{ "Aa Harimanada (Japan)(1993)(Sega).bin", 0x200000, 0x065f6021, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aaharima)
STD_ROM_FN(md_aaharima)

struct BurnDriver BurnDrvmd_aaharima = {
	"md_aaharima", NULL, NULL, NULL, "1993",
	"Aa Harimanada (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aaharimaRomInfo, md_aaharimaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// AAAHH!!! Real Monsters (Euro)
static struct BurnRomInfo md_aaahhrmRomDesc[] = {
	{ "AAAHH!!! Real Monsters (Euro)(1995)(Viacom New Media).bin", 0x200000, 0x7ad115ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aaahhrm)
STD_ROM_FN(md_aaahhrm)

struct BurnDriver BurnDrvmd_aaahhrm = {
	"md_aaahhrm", NULL, NULL, NULL, "1995",
	"AAAHH!!! Real Monsters (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aaahhrmRomInfo, md_aaahhrmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// AAAHH!!! Real Monsters (USA)
static struct BurnRomInfo md_aaahhrmuRomDesc[] = {
	{ "AAAHH!!! Real Monsters (USA)(1995)(Viacom New Media).bin", 0x200000, 0xfdc80bfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aaahhrmu)
STD_ROM_FN(md_aaahhrmu)

struct BurnDriver BurnDrvmd_aaahhrmu = {
	"md_aaahhrmu", "md_aaahhrm", NULL, NULL, "1995",
	"AAAHH!!! Real Monsters (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aaahhrmuRomInfo, md_aaahhrmuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Action 52 (USA) (Unl)
static struct BurnRomInfo md_action52RomDesc[] = {
	{ "Action 52 (USA)(Unl)(1993)(Active Enterprises).bin", 0x200000, 0x29ff58ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_action52)
STD_ROM_FN(md_action52)

struct BurnDriver BurnDrvmd_action52 = {
	"md_action52", NULL, NULL, NULL, "1993",
	"Action 52 (USA) (Unl)\0", NULL, "Active Enterprises", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_action52RomInfo, md_action52RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Action 52 (USA, Alt) (Unl)
static struct BurnRomInfo md_action52aRomDesc[] = {
	{ "Action 52 (USA, Alt)(Unl)(1993)(Active Enterprises).bin", 0x200000, 0x8809d666, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_action52a)
STD_ROM_FN(md_action52a)

struct BurnDriver BurnDrvmd_action52a = {
	"md_action52a", "md_action52", NULL, NULL, "1993",
	"Action 52 (USA, Alt) (Unl)\0", NULL, "Active Enterprises", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_action52aRomInfo, md_action52aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Addams Family Values (Euro)
static struct BurnRomInfo md_addfamvRomDesc[] = {
	{ "Addams Family Values (Euro)(1994)(Ocean).bin", 0x200000, 0xb906b992, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_addfamv)
STD_ROM_FN(md_addfamv)

struct BurnDriver BurnDrvmd_addfamv = {
	"md_addfamv", NULL, NULL, NULL, "1994",
	"Addams Family Values (Euro)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_addfamvRomInfo, md_addfamvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Addams Family, The (Euro, USA)
static struct BurnRomInfo md_addfamRomDesc[] = {
	{ "Addams Family, The (Euro, USA)(1993)(Flying Edge).bin", 0x100000, 0x71f58614, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_addfam)
STD_ROM_FN(md_addfam)

struct BurnDriver BurnDrvmd_addfam = {
	"md_addfam", NULL, NULL, NULL, "1993",
	"Addams Family, The (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_addfamRomInfo, md_addfamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Addams Family, The (USA, Prototype)
static struct BurnRomInfo md_addfamp1RomDesc[] = {
	{ "Addams Family, The (USA, Prototype)(1993)(Flying Edge).bin", 0x100000, 0x2803a5ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_addfamp1)
STD_ROM_FN(md_addfamp1)

struct BurnDriver BurnDrvmd_addfamp1 = {
	"md_addfamp1", "md_addfam", NULL, NULL, "1993",
	"Addams Family, The (USA, Prototype)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_addfamp1RomInfo, md_addfamp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Advanced Daisenryaku - Deutsch Dengeki Sakusen (Japan, Rev. A)
static struct BurnRomInfo md_advdaisnRomDesc[] = {
	{ "Advanced Daisenryaku - Deutsch Dengeki Sakusen (Japan, Rev. A)(1991)(Sega).bin", 0x100000, 0xe0d5e18a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advdaisn)
STD_ROM_FN(md_advdaisn)

struct BurnDriver BurnDrvmd_advdaisn = {
	"md_advdaisn", NULL, NULL, NULL, "1991",
	"Advanced Daisenryaku - Deutsch Dengeki Sakusen (Japan, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_advdaisnRomInfo, md_advdaisnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Euro)
static struct BurnRomInfo md_advbatrRomDesc[] = {
	{ "Adventures of Batman & Robin, The (Euro)(1995)(Sega).bin", 0x200000, 0x355e8c39, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatr)
STD_ROM_FN(md_advbatr)

struct BurnDriver BurnDrvmd_advbatr = {
	"md_advbatr", NULL, NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrRomInfo, md_advbatrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950406)
static struct BurnRomInfo md_advbatrp12RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950406)(Sega).bin", 0x200000, 0xf05cf389, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp12)
STD_ROM_FN(md_advbatrp12)

struct BurnDriver BurnDrvmd_advbatrp12 = {
	"md_advbatrp12", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950406)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp12RomInfo, md_advbatrp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950410)
static struct BurnRomInfo md_advbatrp11RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950410)(Sega).bin", 0x200000, 0xd4f3a070, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp11)
STD_ROM_FN(md_advbatrp11)

struct BurnDriver BurnDrvmd_advbatrp11 = {
	"md_advbatrp11", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950410)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp11RomInfo, md_advbatrp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950411)
static struct BurnRomInfo md_advbatrp10RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950411)(Sega).bin", 0x200000, 0xb5b5a290, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp10)
STD_ROM_FN(md_advbatrp10)

struct BurnDriver BurnDrvmd_advbatrp10 = {
	"md_advbatrp10", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950411)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp10RomInfo, md_advbatrp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950418)
static struct BurnRomInfo md_advbatrp09RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950418)(Sega).bin", 0x200000, 0x6874142b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp09)
STD_ROM_FN(md_advbatrp09)

struct BurnDriver BurnDrvmd_advbatrp09 = {
	"md_advbatrp09", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950418)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp09RomInfo, md_advbatrp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950419)
static struct BurnRomInfo md_advbatrp08RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950419)(Sega).bin", 0x200000, 0x7002da56, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp08)
STD_ROM_FN(md_advbatrp08)

struct BurnDriver BurnDrvmd_advbatrp08 = {
	"md_advbatrp08", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950419)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp08RomInfo, md_advbatrp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950421)
static struct BurnRomInfo md_advbatrp07RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950421)(Sega).bin", 0x200000, 0x61f02f13, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp07)
STD_ROM_FN(md_advbatrp07)

struct BurnDriver BurnDrvmd_advbatrp07 = {
	"md_advbatrp07", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950421)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp07RomInfo, md_advbatrp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950422)
static struct BurnRomInfo md_advbatrp06RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950422)(Sega).bin", 0x200000, 0xeb8236b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp06)
STD_ROM_FN(md_advbatrp06)

struct BurnDriver BurnDrvmd_advbatrp06 = {
	"md_advbatrp06", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950422)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp06RomInfo, md_advbatrp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950424)
static struct BurnRomInfo md_advbatrp05RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950424)(Sega).bin", 0x200000, 0x253947f8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp05)
STD_ROM_FN(md_advbatrp05)

struct BurnDriver BurnDrvmd_advbatrp05 = {
	"md_advbatrp05", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950424)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp05RomInfo, md_advbatrp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950426)
static struct BurnRomInfo md_advbatrp04RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950426)(Sega).bin", 0x200000, 0xbc79f7ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp04)
STD_ROM_FN(md_advbatrp04)

struct BurnDriver BurnDrvmd_advbatrp04 = {
	"md_advbatrp04", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950426)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp04RomInfo, md_advbatrp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950427)
static struct BurnRomInfo md_advbatrp03RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950427)(Sega).bin", 0x200000, 0xfdac8190, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp03)
STD_ROM_FN(md_advbatrp03)

struct BurnDriver BurnDrvmd_advbatrp03 = {
	"md_advbatrp03", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950427)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp03RomInfo, md_advbatrp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950428)
static struct BurnRomInfo md_advbatrp02RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950428)(Sega).bin", 0x200000, 0x27a1524b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp02)
STD_ROM_FN(md_advbatrp02)

struct BurnDriver BurnDrvmd_advbatrp02 = {
	"md_advbatrp02", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950428)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp02RomInfo, md_advbatrp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Prototype, 19950501)
static struct BurnRomInfo md_advbatrp01RomDesc[] = {
	{ "Adventures of Batman & Robin, The (Prototype, 19950501)(Sega).bin", 0x200000, 0x589aa203, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrp01)
STD_ROM_FN(md_advbatrp01)

struct BurnDriver BurnDrvmd_advbatrp01 = {
	"md_advbatrp01", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (Prototype, 19950501)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrp01RomInfo, md_advbatrp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (USA)
static struct BurnRomInfo md_advbatruRomDesc[] = {
	{ "Adventures of Batman & Robin, The (USA)(1995)(Sega).bin", 0x200000, 0x0caaa4ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatru)
STD_ROM_FN(md_advbatru)

struct BurnDriver BurnDrvmd_advbatru = {
	"md_advbatru", "md_advbatr", NULL, NULL, "1995",
	"Adventures of Batman & Robin, The (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatruRomInfo, md_advbatruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Mighty Max, The (Euro)
static struct BurnRomInfo md_mightmaxRomDesc[] = {
	{ "Adventures of Mighty Max, The (Euro)(1994)(Ocean).bin", 0x100000, 0x24f1a3bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mightmax)
STD_ROM_FN(md_mightmax)

struct BurnDriver BurnDrvmd_mightmax = {
	"md_mightmax", NULL, NULL, NULL, "1994",
	"Adventures of Mighty Max, The (Euro)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mightmaxRomInfo, md_mightmaxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Mighty Max, The (USA)
static struct BurnRomInfo md_mightmaxuRomDesc[] = {
	{ "Adventures of Mighty Max, The (USA)(1994)(Ocean).bin", 0x100000, 0x55f13a00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mightmaxu)
STD_ROM_FN(md_mightmaxu)

struct BurnDriver BurnDrvmd_mightmaxu = {
	"md_mightmaxu", "md_mightmax", NULL, NULL, "1994",
	"Adventures of Mighty Max, The (USA)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mightmaxuRomInfo, md_mightmaxuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Rocky and Bullwinkle and Friends, The (USA)
static struct BurnRomInfo md_rockybwRomDesc[] = {
	{ "Adventures of Rocky and Bullwinkle and Friends, The (USA)(1993)(Absolute Ent.).bin", 0x100000, 0xef02d57b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rockybw)
STD_ROM_FN(md_rockybw)

struct BurnDriver BurnDrvmd_rockybw = {
	"md_rockybw", NULL, NULL, NULL, "1993",
	"Adventures of Rocky and Bullwinkle and Friends, The (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rockybwRomInfo, md_rockybwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero the Acro-Bat (Euro)
static struct BurnRomInfo md_aeroRomDesc[] = {
	{ "Aero the Acro-Bat (Euro)(1993)(Sunsoft).bin", 0x100000, 0x1a3eaf57, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aero)
STD_ROM_FN(md_aero)

struct BurnDriver BurnDrvmd_aero = {
	"md_aero", NULL, NULL, NULL, "1993",
	"Aero the Acro-Bat (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aeroRomInfo, md_aeroRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero the Acro-Bat (Euro, Prototype)
static struct BurnRomInfo md_aeropRomDesc[] = {
	{ "Aero the Acro-Bat (Euro, Prototype)(1993)(Sunsoft).bin", 0x100000, 0xdcd14b10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aerop)
STD_ROM_FN(md_aerop)

struct BurnDriver BurnDrvmd_aerop = {
	"md_aerop", "md_aero", NULL, NULL, "1993",
	"Aero the Acro-Bat (Euro, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aeropRomInfo, md_aeropRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero the Acro-Bat (USA)
static struct BurnRomInfo md_aerouRomDesc[] = {
	{ "Aero the Acro-Bat (USA)(1993)(Sunsoft).bin", 0x100000, 0xa3a7a8b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aerou)
STD_ROM_FN(md_aerou)

struct BurnDriver BurnDrvmd_aerou = {
	"md_aerou", "md_aero", NULL, NULL, "1993",
	"Aero the Acro-Bat (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aerouRomInfo, md_aerouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero the Acro-Bat 2 (Euro)
static struct BurnRomInfo md_aero2RomDesc[] = {
	{ "Aero the Acro-Bat 2 (Euro)(1994)(Sunsoft).bin", 0x200000, 0xa451f9a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aero2)
STD_ROM_FN(md_aero2)

struct BurnDriver BurnDrvmd_aero2 = {
	"md_aero2", NULL, NULL, NULL, "1994",
	"Aero the Acro-Bat 2 (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aero2RomInfo, md_aero2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero the Acro-Bat 2 (USA)
static struct BurnRomInfo md_aero2uRomDesc[] = {
	{ "Aero the Acro-Bat 2 (USA)(1994)(Sunsoft).bin", 0x200000, 0x39eb74eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aero2u)
STD_ROM_FN(md_aero2u)

struct BurnDriver BurnDrvmd_aero2u = {
	"md_aero2u", "md_aero2", NULL, NULL, "1994",
	"Aero the Acro-Bat 2 (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aero2uRomInfo, md_aero2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aerobiz (USA)
static struct BurnRomInfo md_aerobizRomDesc[] = {
	{ "Aerobiz (USA)(1992)(Koei).bin", 0x100000, 0xcfaa9bce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aerobiz)
STD_ROM_FN(md_aerobiz)

struct BurnDriver BurnDrvmd_aerobiz = {
	"md_aerobiz", NULL, NULL, NULL, "1992",
	"Aerobiz (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_aerobizRomInfo, md_aerobizRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Air Management - Oozora ni Kakeru (Japan)
static struct BurnRomInfo md_airmanagRomDesc[] = {
	{ "Air Management - Oozora ni Kakeru (Japan)(1992)(Koei).bin", 0x100000, 0xb3db0c71, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_airmanag)
STD_ROM_FN(md_airmanag)

struct BurnDriver BurnDrvmd_airmanag = {
	"md_airmanag", "md_aerobiz", NULL, NULL, "1992",
	"Air Management - Oozora ni Kakeru (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_airmanagRomInfo, md_airmanagRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aerobiz Supersonic (USA)
static struct BurnRomInfo md_aerobizsRomDesc[] = {
	{ "Aerobiz Supersonic (USA)(1994)(Koei).bin", 0x100000, 0x9377f1b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aerobizs)
STD_ROM_FN(md_aerobizs)

struct BurnDriver BurnDrvmd_aerobizs = {
	"md_aerobizs", NULL, NULL, NULL, "1994",
	"Aerobiz Supersonic (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_aerobizsRomInfo, md_aerobizsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Air Management II - Koukuuou o Mezase (Japan)
static struct BurnRomInfo md_airmang2RomDesc[] = {
	{ "Air Management II - Koukuuou o Mezase (Japan)(1994)(Koei).bin", 0x100000, 0x4582817b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_airmang2)
STD_ROM_FN(md_airmang2)

struct BurnDriver BurnDrvmd_airmang2 = {
	"md_airmang2", "md_aerobizs", NULL, NULL, "1994",
	"Air Management II - Koukuuou o Mezase (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_airmang2RomInfo, md_airmang2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// After Burner II (Euro, USA)
static struct BurnRomInfo md_aburner2RomDesc[] = {
	{ "After Burner II (Euro, USA)(1990)(Sega).bin", 0x080000, 0xccafe00e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aburner2)
STD_ROM_FN(md_aburner2)

struct BurnDriver BurnDrvmd_aburner2 = {
	"md_aburner2", NULL, NULL, NULL, "1990",
	"After Burner II (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_aburner2RomInfo, md_aburner2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// After Burner II (Japan)
static struct BurnRomInfo md_aburner2jRomDesc[] = {
	{ "After Burner II (Japan)(1990)(Denpa).bin", 0x080000, 0x4ff37e66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aburner2j)
STD_ROM_FN(md_aburner2j)

struct BurnDriver BurnDrvmd_aburner2j = {
	"md_aburner2j", "md_aburner2", NULL, NULL, "1990",
	"After Burner II (Japan)\0", NULL, "Denpa Shinbunsha", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_aburner2jRomInfo, md_aburner2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Air Buster: Trouble Specialty Raid Unit (USA)
static struct BurnRomInfo md_airbustrRomDesc[] = {
	{ "Air Buster - Trouble Specialty Raid Unit (USA)(1991)(Kaneko).bin", 0x080000, 0xf3d65baa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_airbustr)
STD_ROM_FN(md_airbustr)

struct BurnDriver BurnDrvmd_airbustr = {
	"md_airbustr", NULL, NULL, NULL, "1991",
	"Air Buster: Trouble Specialty Raid Unit (USA)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_airbustrRomInfo, md_airbustrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero Blasters: Trouble Specialty Raid Unit (Japan)
static struct BurnRomInfo md_aeroblstRomDesc[] = {
	{ "Aero Blasters - Trouble Specialty Raid Unit (Japan)(1991)(Kaneko).bin", 0x080000, 0xa00da987, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aeroblst)
STD_ROM_FN(md_aeroblst)

struct BurnDriver BurnDrvmd_aeroblst = {
	"md_aeroblst", "md_airbustr", NULL, NULL, "1991",
	"Aero Blasters: Trouble Specialty Raid Unit (Japan)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_aeroblstRomInfo, md_aeroblstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Air Diver (USA)
static struct BurnRomInfo md_airdiverRomDesc[] = {
	{ "Air Diver (USA)(1990)(Seismic).bin", 0x080000, 0x2041885e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_airdiver)
STD_ROM_FN(md_airdiver)

struct BurnDriver BurnDrvmd_airdiver = {
	"md_airdiver", NULL, NULL, NULL, "1990",
	"Air Diver (USA)\0", NULL, "Seismic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_airdiverRomInfo, md_airdiverRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Air Diver (Japan)
static struct BurnRomInfo md_airdiverjRomDesc[] = {
	{ "Air Diver (Japan)(1990)(Asmik Ace).bin", 0x080000, 0x9e2d5b91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_airdiverj)
STD_ROM_FN(md_airdiverj)

struct BurnDriver BurnDrvmd_airdiverj = {
	"md_airdiverj", "md_airdiver", NULL, NULL, "1990",
	"Air Diver (Japan)\0", NULL, "Asmik Ace", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_airdiverjRomInfo, md_airdiverjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Akira (Prototype)
static struct BurnRomInfo md_akirapRomDesc[] = {
	{ "Akira (Prototype)(1995)(Black Pearl).bin", 0x200000, 0x6d32d468, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_akirap)
STD_ROM_FN(md_akirap)

struct BurnDriver BurnDrvmd_akirap = {
	"md_akirap", NULL, NULL, NULL, "1995",
	"Akira (Prototype)\0", NULL, "Black Pearl Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_akirapRomInfo, md_akirapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Aladdin (Euro)
static struct BurnRomInfo md_aladdinRomDesc[] = {
	{ "Disney's Aladdin (Euro)(1993)(Sega).bin", 0x200000, 0xd1845e8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdin)
STD_ROM_FN(md_aladdin)

struct BurnDriver BurnDrvmd_aladdin = {
	"md_aladdin", NULL, NULL, NULL, "1993",
	"Disney's Aladdin (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdinRomInfo, md_aladdinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Aladdin - Final Cut (USA)
static struct BurnRomInfo md_aladdinfcRomDesc[] = {
	{ "Aladdin - Final Cut (USA)(2019)(Sega).bin", 0x2460b4, 0xdd66b3fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdinfc)
STD_ROM_FN(md_aladdinfc)

struct BurnDriver BurnDrvmd_aladdinfc = {
	"md_aladdinfc", "md_aladdin", NULL, NULL, "2019",
	"Disney's Aladdin - Final Cut (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdinfcRomInfo, md_aladdinfcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};


// Disney's Aladdin (Japan)
static struct BurnRomInfo md_aladdinjRomDesc[] = {
	{ "Disney's Aladdin (Japan)(1993)(Sega).bin", 0x200000, 0xfb5aacf0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdinj)
STD_ROM_FN(md_aladdinj)

struct BurnDriver BurnDrvmd_aladdinj = {
	"md_aladdinj", "md_aladdin", NULL, NULL, "1993",
	"Disney's Aladdin (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdinjRomInfo, md_aladdinjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Aladdin (USA)
static struct BurnRomInfo md_aladdinuRomDesc[] = {
	{ "Disney's Aladdin (USA)(1993)(Sega).bin", 0x200000, 0xed427ea9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdinu)
STD_ROM_FN(md_aladdinu)

struct BurnDriver BurnDrvmd_aladdinu = {
	"md_aladdinu", "md_aladdin", NULL, NULL, "1993",
	"Disney's Aladdin (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdinuRomInfo, md_aladdinuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Aladdin (USA, Prototype)
static struct BurnRomInfo md_aladdinupRomDesc[] = {
	{ "Disney's Aladdin (USA, Prototype)(1993)(Sega).bin", 0x200000, 0x8c60ef73, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdinup)
STD_ROM_FN(md_aladdinup)

struct BurnDriver BurnDrvmd_aladdinup = {
	"md_aladdinup", "md_aladdin", NULL, NULL, "1993",
	"Disney's Aladdin (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdinupRomInfo, md_aladdinupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alex Kidd in the Enchanted Castle (Euro)
static struct BurnRomInfo md_alexkidd1RomDesc[] = {
	{ "Alex Kidd in the Enchanted Castle (Euro)(1990)(Sega).bin", 0x040000, 0xc3a52529, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alexkidd1)
STD_ROM_FN(md_alexkidd1)

struct BurnDriver BurnDrvmd_alexkidd1 = {
	"md_alexkidd1", "md_alexkidd", NULL, NULL, "1990",
	"Alex Kidd in the Enchanted Castle (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alexkidd1RomInfo, md_alexkidd1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alex Kidd in the Enchanted Castle (Euro, Rev. A)
static struct BurnRomInfo md_alexkiddRomDesc[] = {
	{ "Alex Kidd in the Enchanted Castle (Euro, Rev A)(1990)(Sega).bin", 0x040000, 0x778a0f00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alexkidd)
STD_ROM_FN(md_alexkidd)

struct BurnDriver BurnDrvmd_alexkidd = {
	"md_alexkidd", NULL, NULL, NULL, "1990",
	"Alex Kidd in the Enchanted Castle (Euro, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alexkiddRomInfo, md_alexkiddRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alex Kidd Tenkuu Majou (Japan)
static struct BurnRomInfo md_alexkiddjRomDesc[] = {
	{ "Alex Kidd Tenkuu Majou (Japan)(1989)(Sega).bin", 0x040000, 0x8a5ed856, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alexkiddj)
STD_ROM_FN(md_alexkiddj)

struct BurnDriver BurnDrvmd_alexkiddj = {
	"md_alexkiddj", "md_alexkidd", NULL, NULL, "1989",
	"Alex Kidd Tenkuu Majou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alexkiddjRomInfo, md_alexkiddjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alex Kidd Cheongong Maseong (Korea)
static struct BurnRomInfo md_alexkiddkRomDesc[] = {
	{ "Alex Kidd Cheongong Maseong (Korea)(1990)(Samsung).bin", 0x040000, 0x5b0678fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alexkiddk)
STD_ROM_FN(md_alexkiddk)

struct BurnDriver BurnDrvmd_alexkiddk = {
	"md_alexkiddk", "md_alexkidd", NULL, NULL, "1990",
	"Alex Kidd Cheongong Maseong (Korea)\0", NULL, "Samsung", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alexkiddkRomInfo, md_alexkiddkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alex Kidd in the Enchanted Castle (USA)
static struct BurnRomInfo md_alexkidduRomDesc[] = {
	{ "Alex Kidd in the Enchanted Castle (USA)(1989)(Sega).bin", 0x040000, 0x47dba0ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alexkiddu)
STD_ROM_FN(md_alexkiddu)

struct BurnDriver BurnDrvmd_alexkiddu = {
	"md_alexkiddu", "md_alexkidd", NULL, NULL, "1989",
	"Alex Kidd in the Enchanted Castle (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alexkidduRomInfo, md_alexkidduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien³ (Euro, USA, Rev. A)
static struct BurnRomInfo md_alien3RomDesc[] = {
	{ "Alien3 (Euro, USA, Rev A)(1993)(Arena Entertainment).bin", 0x080000, 0xb327fd1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alien3)
STD_ROM_FN(md_alien3)

struct BurnDriver BurnDrvmd_alien3 = {
	"md_alien3", NULL, NULL, NULL, "1993",
	"Alien3 (Euro, USA, Rev. A)\0", NULL, "Arena Entertainment", "Sega Megadrive",
	L"Alien\u00b3 (Euro, USA, Rev. A)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alien3RomInfo, md_alien3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien³ (Euro, USA)
static struct BurnRomInfo md_alien3aRomDesc[] = {
	{ "Alien3 (Euro, USA)(1993)(Arena Entertainment).bin", 0x080000, 0xa3b00d6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alien3a)
STD_ROM_FN(md_alien3a)

struct BurnDriver BurnDrvmd_alien3a = {
	"md_alien3a", "md_alien3", NULL, NULL, "1993",
	"Alien3 (Euro, USA)\0", NULL, "Arena Entertainment", "Sega Megadrive",
	L"Alien\u00b3 (Euro, USA)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alien3aRomInfo, md_alien3aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Soldier (Euro)
static struct BurnRomInfo md_aliensolRomDesc[] = {
	{ "Alien Soldier (Euro)(1995)(Sega).bin", 0x200000, 0x0496e06c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aliensol)
STD_ROM_FN(md_aliensol)

struct BurnDriver BurnDrvmd_aliensol = {
	"md_aliensol", NULL, NULL, NULL, "1995",
	"Alien Soldier (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aliensolRomInfo, md_aliensolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Soldier (Japan)
static struct BurnRomInfo md_aliensoljRomDesc[] = {
	{ "Alien Soldier (Japan)(1995)(Sega).bin", 0x200000, 0x90fa1539, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aliensolj)
STD_ROM_FN(md_aliensolj)

struct BurnDriver BurnDrvmd_aliensolj = {
	"md_aliensolj", "md_aliensol", NULL, NULL, "1995",
	"Alien Soldier (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aliensoljRomInfo, md_aliensoljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Soldier (Hack, Italian)
//Translation project: https://romhacking.it/project/view/id/47
static struct BurnRomInfo md_aliensoliRomDesc[] = {
	{ "Alien Soldier (Hack, Italian)(200x).bin", 0x200000, 0xe5e614a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aliensoli)
STD_ROM_FN(md_aliensoli)

struct BurnDriver BurnDrvmd_aliensoli = {
	"md_aliensoli", "md_aliensol", NULL, NULL, "200?",
	"Alien Soldier (Hack, Italian)\0", NULL, "Unknown", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aliensoliRomInfo, md_aliensoliRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Storm (World)
static struct BurnRomInfo md_astormRomDesc[] = {
	{ "Alien Storm (World)(1991)(Sega).bin", 0x080000, 0xf5ac8de5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_astorm)
STD_ROM_FN(md_astorm)

struct BurnDriver BurnDrvmd_astorm = {
	"md_astorm", NULL, NULL, NULL, "1991",
	"Alien Storm (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_SHOOT, 0,
	MegadriveGetZipName, md_astormRomInfo, md_astormRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alisia Dragoon (Euro)
static struct BurnRomInfo md_alisiadRomDesc[] = {
	{ "Alisia Dragoon (Euro)(1992)(Sega).bin", 0x100000, 0x28165bd1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alisiad)
STD_ROM_FN(md_alisiad)

struct BurnDriver BurnDrvmd_alisiad = {
	"md_alisiad", NULL, NULL, NULL, "1992",
	"Alisia Dragoon (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alisiadRomInfo, md_alisiadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alisia Dragoon (Japan)
static struct BurnRomInfo md_alisiadjRomDesc[] = {
	{ "Alisia Dragoon (Japan)(1992)(Game Arts).bin", 0x100000, 0x4d476722, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alisiadj)
STD_ROM_FN(md_alisiadj)

struct BurnDriver BurnDrvmd_alisiadj = {
	"md_alisiadj", "md_alisiad", NULL, NULL, "1992",
	"Alisia Dragoon (Japan)\0", NULL, "Game Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alisiadjRomInfo, md_alisiadjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alisia Dragoon (USA)
static struct BurnRomInfo md_alisiaduRomDesc[] = {
	{ "Alisia Dragoon (USA)(1992)(Sega).bin", 0x100000, 0xd28d5c40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alisiadu)
STD_ROM_FN(md_alisiadu)

struct BurnDriver BurnDrvmd_alisiadu = {
	"md_alisiadu", "md_alisiad", NULL, NULL, "1992",
	"Alisia Dragoon (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alisiaduRomInfo, md_alisiaduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Altered Beast (Euro, USA)
static struct BurnRomInfo md_altbeastRomDesc[] = {
	{ "Altered Beast (Euro, USA)(1989)(Sega).bin", 0x080000, 0x154d59bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_altbeast)
STD_ROM_FN(md_altbeast)

struct BurnDriver BurnDrvmd_altbeast = {
	"md_altbeast", NULL, NULL, NULL, "1989",
	"Altered Beast (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_altbeastRomInfo, md_altbeastRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Juuouki (Japan, Rev. 1)
static struct BurnRomInfo md_juuoukiRomDesc[] = {
	{ "Juuouki (Japan, Rev 1)(1988)(Sega).bin", 0x080000, 0xb2233e87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_juuouki)
STD_ROM_FN(md_juuouki)

struct BurnDriver BurnDrvmd_juuouki = {
	"md_juuouki", "md_altbeast", NULL, NULL, "1988",
	"Juuouki (Japan, Rev. 1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_juuoukiRomInfo, md_juuoukiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Juuouki (Japan)
static struct BurnRomInfo md_juuouki1RomDesc[] = {
	{ "Juuouki (Japan)(1988)(Sega).bin", 0x080000, 0x1b7c96c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_juuouki1)
STD_ROM_FN(md_juuouki1)

struct BurnDriver BurnDrvmd_juuouki1 = {
	"md_juuouki1", "md_altbeast", NULL, NULL, "1988",
	"Juuouki (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_juuouki1RomInfo, md_juuouki1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// American Gladiators (USA)
static struct BurnRomInfo md_amergladRomDesc[] = {
	{ "American Gladiators (USA)(1992)(GameTek).bin", 0x100000, 0x9952fa85, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_amerglad)
STD_ROM_FN(md_amerglad)

struct BurnDriver BurnDrvmd_amerglad = {
	"md_amerglad", NULL, NULL, NULL, "1992",
	"American Gladiators (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_amergladRomInfo, md_amergladRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Andre Agassi Tennis (Euro)
static struct BurnRomInfo md_agassiRomDesc[] = {
	{ "Andre Agassi Tennis (Euro)(1992)(TecMagik).bin", 0x080000, 0x224256c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_agassi)
STD_ROM_FN(md_agassi)

struct BurnDriver BurnDrvmd_agassi = {
	"md_agassi", NULL, NULL, NULL, "1992",
	"Andre Agassi Tennis (Euro)\0", NULL, "TecMagik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_agassiRomInfo, md_agassiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Andre Agassi Tennis (USA)
static struct BurnRomInfo md_agassiuRomDesc[] = {
	{ "Andre Agassi Tennis (USA)(1992)(TecMagik).bin", 0x080000, 0xe755dd51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_agassiu)
STD_ROM_FN(md_agassiu)

struct BurnDriver BurnDrvmd_agassiu = {
	"md_agassiu", "md_agassi", NULL, NULL, "1992",
	"Andre Agassi Tennis (USA)\0", NULL, "TecMagik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_agassiuRomInfo, md_agassiuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Andre Agassi Tennis (USA, Prototype)
static struct BurnRomInfo md_agassiupRomDesc[] = {
	{ "Andre Agassi Tennis (USA, Prototype)(1992)(TecMagik).bin", 0x080000, 0x3bbf700d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_agassiup)
STD_ROM_FN(md_agassiup)

struct BurnDriver BurnDrvmd_agassiup = {
	"md_agassiup", "md_agassi", NULL, NULL, "1992",
	"Andre Agassi Tennis (USA, Prototype)\0", NULL, "TecMagik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_agassiupRomInfo, md_agassiupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Animaniacs (Euro)
static struct BurnRomInfo md_animaniaRomDesc[] = {
	{ "Animaniacs (Euro)(1994)(Konami).bin", 0x100000, 0x92b6f255, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_animania)
STD_ROM_FN(md_animania)

struct BurnDriver BurnDrvmd_animania = {
	"md_animania", NULL, NULL, NULL, "1994",
	"Animaniacs (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_animaniaRomInfo, md_animaniaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Animaniacs (USA)
static struct BurnRomInfo md_animaniauRomDesc[] = {
	{ "Animaniacs (USA)(1994)(Konami).bin", 0x100000, 0x86224d86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_animaniau)
STD_ROM_FN(md_animaniau)

struct BurnDriver BurnDrvmd_animaniau = {
	"md_animaniau", "md_animania", NULL, NULL, "1994",
	"Animaniacs (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_animaniauRomInfo, md_animaniauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Another World (Euro)
static struct BurnRomInfo md_anotherwRomDesc[] = {
	{ "Another World (Euro)(1993)(Virgin Games).bin", 0x100000, 0xe9742041, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_anotherw)
STD_ROM_FN(md_anotherw)

struct BurnDriver BurnDrvmd_anotherw = {
	"md_anotherw", NULL, NULL, NULL, "1993",
	"Another World (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_anotherwRomInfo, md_anotherwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Out of This World (USA)
static struct BurnRomInfo md_ootwRomDesc[] = {
	{ "Out of This World (USA)(1993)(Virgin Games).bin", 0x100000, 0x2da36e01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ootw)
STD_ROM_FN(md_ootw)

struct BurnDriver BurnDrvmd_ootw = {
	"md_ootw", "md_anotherw", NULL, NULL, "1993",
	"Out of This World (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_ootwRomInfo, md_ootwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Out of this World (USA, Prototype)
static struct BurnRomInfo md_ootwpRomDesc[] = {
	{ "Out of this World (USA, Prototype)(1993)(Virgin Games).bin", 0x100000, 0x3aad905a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ootwp)
STD_ROM_FN(md_ootwp)

struct BurnDriver BurnDrvmd_ootwp = {
	"md_ootwp", "md_anotherw", NULL, NULL, "1993",
	"Out of this World (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_ootwpRomInfo, md_ootwpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aquatic Games Starring James Pond and the Aquabats, The (Euro, USA)
static struct BurnRomInfo md_aquagameRomDesc[] = {
	{ "Aquatic Games Starring James Pond and the Aquabats, The (Euro, USA)(1992)(EA).bin", 0x080000, 0x400f4ba7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aquagame)
STD_ROM_FN(md_aquagame)

struct BurnDriver BurnDrvmd_aquagame = {
	"md_aquagame", NULL, NULL, NULL, "1992",
	"Aquatic Games Starring James Pond and the Aquabats, The (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_aquagameRomInfo, md_aquagameRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arcade Classics (Euro, USA)
static struct BurnRomInfo md_arcadeclRomDesc[] = {
	{ "Arcade Classics (Euro, USA)(1996)(Sega).bin", 0x080000, 0x8aed2090, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arcadecl)
STD_ROM_FN(md_arcadecl)

struct BurnDriver BurnDrvmd_arcadecl = {
	"md_arcadecl", NULL, NULL, NULL, "1996",
	"Arcade Classics (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_arcadeclRomInfo, md_arcadeclRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arcade's Greatest Hits (Euro)
static struct BurnRomInfo md_arcadeghRomDesc[] = {
	{ "Arcade's Greatest Hits (Euro)(1996)(Midway).bin", 0x080000, 0xc0dce0e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arcadegh)
STD_ROM_FN(md_arcadegh)

struct BurnDriver BurnDrvmd_arcadegh = {
	"md_arcadegh", NULL, NULL, NULL, "1996",
	"Arcade's Greatest Hits (Euro)\0", NULL, "Midway", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_ACTION, 0,
	MegadriveGetZipName, md_arcadeghRomInfo, md_arcadeghRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arch Rivals (Euro, USA)
static struct BurnRomInfo md_archrivlRomDesc[] = {
	{ "Arch Rivals (Euro, USA)(1992)(Flying Edge).bin", 0x080000, 0xe389d7e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_archrivl)
STD_ROM_FN(md_archrivl)

struct BurnDriver BurnDrvmd_archrivl = {
	"md_archrivl", NULL, NULL, NULL, "1992",
	"Arch Rivals (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_archrivlRomInfo, md_archrivlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arcus Odyssey (USA)
static struct BurnRomInfo md_arcusRomDesc[] = {
	{ "Arcus Odyssey (USA)(1991)(Wolf Team).bin", 0x100000, 0xbc4d9b20, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arcus)
STD_ROM_FN(md_arcus)

struct BurnDriver BurnDrvmd_arcus = {
	"md_arcus", NULL, NULL, NULL, "1991",
	"Arcus Odyssey (USA)\0", NULL, "Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_arcusRomInfo, md_arcusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arcus Odyssey (Japan)
static struct BurnRomInfo md_arcusjRomDesc[] = {
	{ "Arcus Odyssey (Japan)(1991)(Wolf Team).bin", 0x100000, 0x41c5fb4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arcusj)
STD_ROM_FN(md_arcusj)

struct BurnDriver BurnDrvmd_arcusj = {
	"md_arcusj", "md_arcus", NULL, NULL, "1991",
	"Arcus Odyssey (Japan)\0", NULL, "Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_arcusjRomInfo, md_arcusjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Ariel the Little Mermaid (Euro, USA)
static struct BurnRomInfo md_arielRomDesc[] = {
	{ "Disney's Ariel the Little Mermaid (Euro, USA)(1992)(Sega).bin", 0x080000, 0x58e297df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ariel)
STD_ROM_FN(md_ariel)

struct BurnDriver BurnDrvmd_ariel = {
	"md_ariel", NULL, NULL, NULL, "1992",
	"Disney's Ariel the Little Mermaid (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_arielRomInfo, md_arielRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arnold Palmer Tournament Golf (Euro, USA)
static struct BurnRomInfo md_arnoldpRomDesc[] = {
	{ "Arnold Palmer Tournament Golf (Euro, USA)(1989)(Sega).bin", 0x080000, 0x35b995ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arnoldp)
STD_ROM_FN(md_arnoldp)

struct BurnDriver BurnDrvmd_arnoldp = {
	"md_arnoldp", NULL, NULL, NULL, "1989",
	"Arnold Palmer Tournament Golf (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_arnoldpRomInfo, md_arnoldpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Naomichi Ozaki no Super Masters (Japan)
static struct BurnRomInfo md_smastersRomDesc[] = {
	{ "Naomichi Ozaki no Super Masters (Japan)(1989)(Sega).bin", 0x080000, 0x088ba825, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smasters)
STD_ROM_FN(md_smasters)

struct BurnDriver BurnDrvmd_smasters = {
	"md_smasters", "md_arnoldp", NULL, NULL, "1989",
	"Naomichi Ozaki no Super Masters (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_smastersRomInfo, md_smastersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arrow Flash (World)
static struct BurnRomInfo md_arrowRomDesc[] = {
	{ "Arrow Flash (World)(1990)(Sega).bin", 0x080000, 0xd49f8444, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arrow)
STD_ROM_FN(md_arrow)

struct BurnDriver BurnDrvmd_arrow = {
	"md_arrow", NULL, NULL, NULL, "1990",
	"Arrow Flash (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_arrowRomInfo, md_arrowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arrow Flash (USA, Prototype)
static struct BurnRomInfo md_arrowpRomDesc[] = {
	{ "Arrow Flash (USA, Prototype)(1990)(Renovation - Sega).bin", 0x080000, 0x4d89e66b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arrowp)
STD_ROM_FN(md_arrowp)

struct BurnDriver BurnDrvmd_arrowp = {
	"md_arrowp", "md_arrow", NULL, NULL, "1990",
	"Arrow Flash (USA, Prototype)\0", NULL, "Renovation - Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_arrowpRomInfo, md_arrowpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art Alive (World)
static struct BurnRomInfo md_artaliveRomDesc[] = {
	{ "Art Alive (World)(1991)(Sega).bin", 0x020000, 0xf1b72cdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_artalive)
STD_ROM_FN(md_artalive)

struct BurnDriver BurnDrvmd_artalive = {
	"md_artalive", NULL, NULL, NULL, "1991",
	"Art Alive (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_artaliveRomInfo, md_artaliveRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art of Fighting (Euro)
static struct BurnRomInfo md_aofRomDesc[] = {
	{ "Art of Fighting (Euro)(1994)(Sega).bin", 0x200000, 0x9970c422, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aof)
STD_ROM_FN(md_aof)

struct BurnDriver BurnDrvmd_aof = {
	"md_aof", NULL, NULL, NULL, "1994",
	"Art of Fighting (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aofRomInfo, md_aofRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art of Fighting (Prototype, 19940711)
static struct BurnRomInfo md_aofpRomDesc[] = {
	{ "Art of Fighting (Prototype, 19940711)(Sega).bin", 0x200000, 0x19ce567d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aofp)
STD_ROM_FN(md_aofp)

struct BurnDriver BurnDrvmd_aofp = {
	"md_aofp", "md_aof", NULL, NULL, "1994",
	"Art of Fighting (Prototype, 19940711)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aofpRomInfo, md_aofpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art of Fighting (USA)
static struct BurnRomInfo md_aofuRomDesc[] = {
	{ "Art of Fighting (USA)(1994)(Sega).bin", 0x200000, 0xc9a57e07, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aofu)
STD_ROM_FN(md_aofu)

struct BurnDriver BurnDrvmd_aofu = {
	"md_aofu", "md_aof", NULL, NULL, "1994",
	"Art of Fighting (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aofuRomInfo, md_aofuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ryuuko no Ken (Japan)
static struct BurnRomInfo md_ryukokenRomDesc[] = {
	{ "Ryuuko no Ken (Japan)(1994)(Sega).bin", 0x200000, 0x054cf5f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ryukoken)
STD_ROM_FN(md_ryukoken)

struct BurnDriver BurnDrvmd_ryukoken = {
	"md_ryukoken", "md_aof", NULL, NULL, "1994",
	"Ryuuko no Ken (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ryukokenRomInfo, md_ryukokenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Astérix and the Great Rescue (Euro)
static struct BurnRomInfo md_astergreRomDesc[] = {
	{ "Asterix and the Great Rescue (Euro)(1993)(Sega).bin", 0x200000, 0x4735fee6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_astergre)
STD_ROM_FN(md_astergre)

struct BurnDriver BurnDrvmd_astergre = {
	"md_astergre", NULL, NULL, NULL, "1993",
	"Asterix and the Great Rescue (Euro)\0", NULL, "Sega", "Sega Megadrive",
	L"Ast\u00e9rix and the Great Rescue (Euro)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_astergreRomInfo, md_astergreRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Astérix and the Great Rescue (USA)
static struct BurnRomInfo md_astergreuRomDesc[] = {
	{ "Asterix and the Great Rescue (USA)(1994)(Sega).bin", 0x200000, 0x7f112cd8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_astergreu)
STD_ROM_FN(md_astergreu)

struct BurnDriver BurnDrvmd_astergreu = {
	"md_astergreu", "md_astergre", NULL, NULL, "1994",
	"Asterix and the Great Rescue (USA)\0", NULL, "Sega", "Sega Megadrive",
	L"Ast\u00e9rix and the Great Rescue (USA)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_astergreuRomInfo, md_astergreuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Astérix and the Power of the Gods (Euro)
static struct BurnRomInfo md_asterpgRomDesc[] = {
	{ "Asterix and the Power of the Gods (Euro)(1995)(Sega).bin", 0x200000, 0x4ff1d83f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asterpg)
STD_ROM_FN(md_asterpg)

struct BurnDriver BurnDrvmd_asterpg = {
	"md_asterpg", NULL, NULL, NULL, "1995",
	"Asterix and the Power of the Gods (Euro)\0", NULL, "Sega", "Sega Megadrive",
	L"Ast\u00e9rix and the Power of the Gods (Euro)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_asterpgRomInfo, md_asterpgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Astérix and the Power of the Gods (Euro, Prototype)
static struct BurnRomInfo md_asterpgpRomDesc[] = {
	{ "Asterix and the Power of the Gods (Euro, Prototype)(1995)(Sega).bin", 0x200000, 0x45c8b5b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asterpgp)
STD_ROM_FN(md_asterpgp)

struct BurnDriver BurnDrvmd_asterpgp = {
	"md_asterpgp", "md_asterpg", NULL, NULL, "1995",
	"Asterix and the Power of the Gods (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	L"Ast\u00e9rix and the Power of the Gods (Euro, Prototype)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_asterpgpRomInfo, md_asterpgpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Atomic Robo-Kid (USA)
static struct BurnRomInfo md_atomroboRomDesc[] = {
	{ "Atomic Robo-Kid (USA)(1990)(Treco).bin", 0x080000, 0x7cd8169e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atomrobo)
STD_ROM_FN(md_atomrobo)

struct BurnDriver BurnDrvmd_atomrobo = {
	"md_atomrobo", NULL, NULL, NULL, "1990",
	"Atomic Robo-Kid (USA)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_atomroboRomInfo, md_atomroboRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Atomic Robo-Kid (Japan)
static struct BurnRomInfo md_atomrobojRomDesc[] = {
	{ "Atomic Robo-Kid (Japan)(1990)(Treco).bin", 0x080000, 0xe833067e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atomroboj)
STD_ROM_FN(md_atomroboj)

struct BurnDriver BurnDrvmd_atomroboj = {
	"md_atomroboj", "md_atomrobo", NULL, NULL, "1990",
	"Atomic Robo-Kid (Japan)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_atomrobojRomInfo, md_atomrobojRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Atomic Runner (Euro)
static struct BurnRomInfo md_atomrunRomDesc[] = {
	{ "Atomic Runner (Euro)(1992)(Data East).bin", 0x100000, 0xb3c05418, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atomrun)
STD_ROM_FN(md_atomrun)

struct BurnDriver BurnDrvmd_atomrun = {
	"md_atomrun", NULL, NULL, NULL, "1992",
	"Atomic Runner (Euro)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_atomrunRomInfo, md_atomrunRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Atomic Runner (USA)
static struct BurnRomInfo md_atomrunuRomDesc[] = {
	{ "Atomic Runner (USA)(1992)(Data East).bin", 0x100000, 0x0677c210, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atomrunu)
STD_ROM_FN(md_atomrunu)

struct BurnDriver BurnDrvmd_atomrunu = {
	"md_atomrunu", "md_atomrun", NULL, NULL, "1992",
	"Atomic Runner (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_atomrunuRomInfo, md_atomrunuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chelnov (Japan)
static struct BurnRomInfo md_chelnovRomDesc[] = {
	{ "Chelnov (Japan)(1992)(Data East).bin", 0x100000, 0xb2fe74d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chelnov)
STD_ROM_FN(md_chelnov)

struct BurnDriver BurnDrvmd_chelnov = {
	"md_chelnov", "md_atomrun", NULL, NULL, "1992",
	"Chelnov (Japan)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chelnovRomInfo, md_chelnovRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Euro)
static struct BurnRomInfo md_atptourRomDesc[] = {
	{ "ATP Tour Championship Tennis (Euro)(1995)(Sega).bin", 0x200000, 0x1a3da8c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptour)
STD_ROM_FN(md_atptour)

struct BurnDriver BurnDrvmd_atptour = {
	"md_atptour", NULL, NULL, NULL, "1995",
	"ATP Tour Championship Tennis (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourRomInfo, md_atptourRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940802)
static struct BurnRomInfo md_atptourp4RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940802)(Sega).bin", 0x200000, 0x686a9fa1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp4)
STD_ROM_FN(md_atptourp4)

struct BurnDriver BurnDrvmd_atptourp4 = {
	"md_atptourp4", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940802)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp4RomInfo, md_atptourp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940805)
static struct BurnRomInfo md_atptourp3RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940805)(Sega).bin", 0x200000, 0xa1fef967, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp3)
STD_ROM_FN(md_atptourp3)

struct BurnDriver BurnDrvmd_atptourp3 = {
	"md_atptourp3", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940805)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp3RomInfo, md_atptourp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940808)
static struct BurnRomInfo md_atptourp2RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940808)(Sega).bin", 0x200000, 0xe6398864, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp2)
STD_ROM_FN(md_atptourp2)

struct BurnDriver BurnDrvmd_atptourp2 = {
	"md_atptourp2", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp2RomInfo, md_atptourp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940719)
static struct BurnRomInfo md_atptourp6RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940719)(Sega).bin", 0x200000, 0xcb927488, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp6)
STD_ROM_FN(md_atptourp6)

struct BurnDriver BurnDrvmd_atptourp6 = {
	"md_atptourp6", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940719)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp6RomInfo, md_atptourp6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940723)
static struct BurnRomInfo md_atptourp5RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940723)(Sega).bin", 0x200000, 0xa15d5051, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp5)
STD_ROM_FN(md_atptourp5)

struct BurnDriver BurnDrvmd_atptourp5 = {
	"md_atptourp5", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940723)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp5RomInfo, md_atptourp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940509)
static struct BurnRomInfo md_atptourp7RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940509)(Sega).bin", 0x200000, 0xb17a8dbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp7)
STD_ROM_FN(md_atptourp7)

struct BurnDriver BurnDrvmd_atptourp7 = {
	"md_atptourp7", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940509)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp7RomInfo, md_atptourp7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (Prototype, 19940908)
static struct BurnRomInfo md_atptourp1RomDesc[] = {
	{ "ATP Tour Championship Tennis (Prototype, 19940908)(Sega).bin", 0x200000, 0xb83f4ca4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptourp1)
STD_ROM_FN(md_atptourp1)

struct BurnDriver BurnDrvmd_atptourp1 = {
	"md_atptourp1", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (Prototype, 19940908)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptourp1RomInfo, md_atptourp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ATP Tour Championship Tennis (USA)
static struct BurnRomInfo md_atptouruRomDesc[] = {
	{ "ATP Tour Championship Tennis (USA)(1994)(Sega).bin", 0x200000, 0x8c822884, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atptouru)
STD_ROM_FN(md_atptouru)

struct BurnDriver BurnDrvmd_atptouru = {
	"md_atptouru", "md_atptour", NULL, NULL, "1994",
	"ATP Tour Championship Tennis (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_atptouruRomInfo, md_atptouruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Australian Rugby League (Euro)
static struct BurnRomInfo md_austrarlRomDesc[] = {
	{ "Australian Rugby League (Euro)(1994)(Electronic Arts).bin", 0x200000, 0xac5bc26a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_austrarl)
STD_ROM_FN(md_austrarl)

struct BurnDriver BurnDrvmd_austrarl = {
	"md_austrarl", NULL, NULL, NULL, "1994",
	"Australian Rugby League (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_austrarlRomInfo, md_austrarlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Australian Rugby League (USA, Prototype)
static struct BurnRomInfo md_austrarlpRomDesc[] = {
	{ "Australian Rugby League (USA, Prototype)(1994)(Electronic Arts).bin", 0x200000, 0x51117c67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_austrarlp)
STD_ROM_FN(md_austrarlp)

struct BurnDriver BurnDrvmd_austrarlp = {
	"md_austrarlp", "md_austrarl", NULL, NULL, "1994",
	"Australian Rugby League (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_austrarlpRomInfo, md_austrarlpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Awesome Possum (USA)
static struct BurnRomInfo md_awepossmRomDesc[] = {
	{ "Awesome Possum (USA)(1993)(Tengen).bin", 0x200000, 0x1f07577f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_awepossm)
STD_ROM_FN(md_awepossm)

struct BurnDriver BurnDrvmd_awepossm = {
	"md_awepossm", NULL, NULL, NULL, "1993",
	"Awesome Possum (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_awepossmRomInfo, md_awepossmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Awesome Possum (USA, Prototype)
static struct BurnRomInfo md_awepossmpRomDesc[] = {
	{ "Awesome Possum (USA, Prototype)(1993)(Tengen).bin", 0x200000, 0x0158dc53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_awepossmp)
STD_ROM_FN(md_awepossmp)

struct BurnDriver BurnDrvmd_awepossmp = {
	"md_awepossmp", "md_awepossm", NULL, NULL, "1993",
	"Awesome Possum (USA, Prototype)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_awepossmpRomInfo, md_awepossmpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aworg (Japan, SegaNet)
static struct BurnRomInfo md_aworgRomDesc[] = {
	{ "Aworg (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0x069c27c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aworg)
STD_ROM_FN(md_aworg)

struct BurnDriver BurnDrvmd_aworg = {
	"md_aworg", NULL, NULL, NULL, "1991",
	"Aworg (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_aworgRomInfo, md_aworgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// AWS Pro Moves Soccer (USA)
static struct BurnRomInfo md_awsproRomDesc[] = {
	{ "AWS Pro Moves Soccer (USA)(1993)(ASCII Ent.).bin", 0x080000, 0x707017e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_awspro)
STD_ROM_FN(md_awspro)

struct BurnDriver BurnDrvmd_awspro = {
	"md_awspro", NULL, NULL, NULL, "1993",
	"AWS Pro Moves Soccer (USA)\0", NULL, "ASCII Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_awsproRomInfo, md_awsproRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ayrton Senna's Super Monaco GP II (Euro, Japan)
static struct BurnRomInfo md_smgp2RomDesc[] = {
	{ "Ayrton Senna's Super Monaco GP II (Euro, Japan)(1992)(Sega).bin", 0x100000, 0x60af0f76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgp2)
STD_ROM_FN(md_smgp2)

struct BurnDriver BurnDrvmd_smgp2 = {
	"md_smgp2", NULL, NULL, NULL, "1992",
	"Ayrton Senna's Super Monaco GP II (Euro, Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_smgp2RomInfo, md_smgp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ayrton Senna's Super Monaco GP II (USA)
static struct BurnRomInfo md_smgp2uRomDesc[] = {
	{ "Ayrton Senna's Super Monaco GP II (USA)(1992)(Sega).bin", 0x100000, 0xeac8ded6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgp2u)
STD_ROM_FN(md_smgp2u)

struct BurnDriver BurnDrvmd_smgp2u = {
	"md_smgp2u", "md_smgp2", NULL, NULL, "1992",
	"Ayrton Senna's Super Monaco GP II (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_smgp2uRomInfo, md_smgp2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// B.O.B. (Euro, USA)
static struct BurnRomInfo md_bobRomDesc[] = {
	{ "B.O.B. (Euro, USA)(1993)(Electronic Arts).bin", 0x100000, 0xeaa2acb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bob)
STD_ROM_FN(md_bob)

struct BurnDriver BurnDrvmd_bob = {
	"md_bob", NULL, NULL, NULL, "1993",
	"B.O.B. (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bobRomInfo, md_bobRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// B.O.B. (USA, Prototype)
static struct BurnRomInfo md_bobpRomDesc[] = {
	{ "B.O.B. (USA, Prototype)(1993)(Electronic Arts).bin", 0x100000, 0xe3e8421e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bobp)
STD_ROM_FN(md_bobp)

struct BurnDriver BurnDrvmd_bobp = {
	"md_bobp", "md_bob", NULL, NULL, "1993",
	"B.O.B. (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bobpRomInfo, md_bobpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Funky B.O.B. (Japan)
static struct BurnRomInfo md_spacebobRomDesc[] = {
	{ "Space Funky B.O.B. (Japan)(1993)(Electronic Arts).bin", 0x100000, 0xe9310d3b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spacebob)
STD_ROM_FN(md_spacebob)

struct BurnDriver BurnDrvmd_spacebob = {
	"md_spacebob", "md_bob", NULL, NULL, "1993",
	"Space Funky B.O.B. (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spacebobRomInfo, md_spacebobRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Baby Boom (Prototype, 19940811)
static struct BurnRomInfo md_babyboomRomDesc[] = {
	{ "Baby Boom (Prototype, 19940811)(Sega).bin", 0x200000, 0xbd697054, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_babyboom)
STD_ROM_FN(md_babyboom)

struct BurnDriver BurnDrvmd_babyboom = {
	"md_babyboom", NULL, NULL, NULL, "1994",
	"Baby Boom (Prototype, 19940811)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_babyboomRomInfo, md_babyboomRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Baby Boom (Prototype, 19940603)
static struct BurnRomInfo md_babyboom1RomDesc[] = {
	{ "Baby Boom (Prototype, 19940603)(Sega).bin", 0x200000, 0xc0d97f6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_babyboom1)
STD_ROM_FN(md_babyboom1)

struct BurnDriver BurnDrvmd_babyboom1 = {
	"md_babyboom1", "md_babyboom", NULL, NULL, "1994",
	"Baby Boom (Prototype, 19940603)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_babyboom1RomInfo, md_babyboom1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Baby Boom (Prototype, 19940606)
static struct BurnRomInfo md_babyboom2RomDesc[] = {
	{ "Baby Boom (Prototype, 19940606)(Sega).bin", 0x200000, 0x6e0cf48d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_babyboom2)
STD_ROM_FN(md_babyboom2)

struct BurnDriver BurnDrvmd_babyboom2 = {
	"md_babyboom2", "md_babyboom", NULL, NULL, "1994",
	"Baby Boom (Prototype, 19940606)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_babyboom2RomInfo, md_babyboom2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Baby's Day Out (USA, Prototype)
static struct BurnRomInfo md_babydRomDesc[] = {
	{ "Baby's Day Out (USA, Prototype)(1994)(Hi Tech Expressions).bin", 0x100000, 0xb2e7cc49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_babyd)
STD_ROM_FN(md_babyd)

struct BurnDriver BurnDrvmd_babyd = {
	"md_babyd", NULL, NULL, NULL, "1994",
	"Baby's Day Out (USA, Prototype)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_babydRomInfo, md_babydRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Baby's Day Out (USA, Prototype, Earlier)
static struct BurnRomInfo md_babydoRomDesc[] = {
	{ "Baby's Day Out (USA, Prototype, Earlier)(1994)(Hi Tech Expressions).bin", 0x100000, 0x459b891c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_babydo)
STD_ROM_FN(md_babydo)

struct BurnDriver BurnDrvmd_babydo = {
	"md_babydo", "md_babyd", NULL, NULL, "1994",
	"Baby's Day Out (USA, Prototype, Earlier)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_babydoRomInfo, md_babydoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Back to the Future Part III (Euro)
static struct BurnRomInfo md_backtof3RomDesc[] = {
	{ "Back to the Future Part III (Euro)(1991)(Imageworks).bin", 0x080000, 0x2737f92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_backtof3)
STD_ROM_FN(md_backtof3)

struct BurnDriver BurnDrvmd_backtof3 = {
	"md_backtof3", NULL, NULL, NULL, "1991",
	"Back to the Future Part III (Euro)\0", NULL, "Imageworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_backtof3RomInfo, md_backtof3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Back to the Future Part III (USA)
static struct BurnRomInfo md_backtof3uRomDesc[] = {
	{ "Back to the Future Part III (USA)(1991)(Arena Entertainment).bin", 0x080000, 0x66a388c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_backtof3u)
STD_ROM_FN(md_backtof3u)

struct BurnDriver BurnDrvmd_backtof3u = {
	"md_backtof3u", "md_backtof3", NULL, NULL, "1991",
	"Back to the Future Part III (USA)\0", NULL, "Arena Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_backtof3uRomInfo, md_backtof3uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bahamut Senki (Japan)
static struct BurnRomInfo md_bahamutsRomDesc[] = {
	{ "Bahamut Senki (Japan)(1991)(Sega).bin", 0x080000, 0xb1e268da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bahamuts)
STD_ROM_FN(md_bahamuts)

struct BurnDriver BurnDrvmd_bahamuts = {
	"md_bahamuts", NULL, NULL, NULL, "1991",
	"Bahamut Senki (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_bahamutsRomInfo, md_bahamutsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ball Jacks (Euro, Japan)
static struct BurnRomInfo md_balljackRomDesc[] = {
	{ "Ball Jacks (Euro, Japan)(1993)(Namco).bin", 0x040000, 0xf5c3c54f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_balljack)
STD_ROM_FN(md_balljack)

struct BurnDriver BurnDrvmd_balljack = {
	"md_balljack", NULL, NULL, NULL, "1993",
	"Ball Jacks (Euro, Japan)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_balljackRomInfo, md_balljackRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ballz 3D (Euro, USA)
static struct BurnRomInfo md_ballz3dRomDesc[] = {
	{ "Ballz 3D (Euro, USA)(1994)(Accolade).bin", 0x200000, 0xb362b705, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ballz3d)
STD_ROM_FN(md_ballz3d)

struct BurnDriver BurnDrvmd_ballz3d = {
	"md_ballz3d", NULL, NULL, NULL, "1994",
	"Ballz 3D (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ballz3dRomInfo, md_ballz3dRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ballz 3D (Prototype 199409xx)
static struct BurnRomInfo md_ballz3dp1RomDesc[] = {
	{ "Ballz 3D (Prototype 199409xx)(Accolade).bin", 0x200000, 0xd349ab90, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ballz3dp1)
STD_ROM_FN(md_ballz3dp1)

struct BurnDriver BurnDrvmd_ballz3dp1 = {
	"md_ballz3dp1", "md_ballz3d", NULL, NULL, "1994",
	"Ballz 3D (Prototype 199409xx)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ballz3dp1RomInfo, md_ballz3dp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ballz 3D (USA, Prototype 199406xx)
static struct BurnRomInfo md_ballz3dp2RomDesc[] = {
	{ "Ballz 3D (USA, Prototype 199406xx)(Accolade).bin", 0x200000, 0xc89ad87e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ballz3dp2)
STD_ROM_FN(md_ballz3dp2)

struct BurnDriver BurnDrvmd_ballz3dp2 = {
	"md_ballz3dp2", "md_ballz3d", NULL, NULL, "1994",
	"Ballz 3D (USA, Prototype 199406xx)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ballz3dp2RomInfo, md_ballz3dp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbie Super Model (USA)
static struct BurnRomInfo md_barbiesmRomDesc[] = {
	{ "Barbie Super Model (USA)(1992)(Hi Tech Expressions).bin", 0x100000, 0x81c9662b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbiesm)
STD_ROM_FN(md_barbiesm)

struct BurnDriver BurnDrvmd_barbiesm = {
	"md_barbiesm", NULL, NULL, NULL, "1992",
	"Barbie Super Model (USA)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MINIGAMES | GBF_ADV, 0,
	MegadriveGetZipName, md_barbiesmRomInfo, md_barbiesmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbie Vacation Adventure (USA, Prototype)
static struct BurnRomInfo md_barbvacRomDesc[] = {
	{ "Barbie Vacation Adventure (USA, Prototype)(1994)(Hi Tech Expressions).bin", 0x100000, 0x10e0ba69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbvac)
STD_ROM_FN(md_barbvac)

struct BurnDriver BurnDrvmd_barbvac = {
	"md_barbvac", NULL, NULL, NULL, "1994",
	"Barbie Vacation Adventure (USA, Prototype)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_barbvacRomInfo, md_barbvacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barkley Shut Up and Jam! (Euro, USA)
static struct BurnRomInfo md_barkleyRomDesc[] = {
	{ "Barkley Shut Up and Jam! (Euro, USA)(1993)(Accolade).bin", 0x100000, 0x63fbf497, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barkley)
STD_ROM_FN(md_barkley)

struct BurnDriver BurnDrvmd_barkley = {
	"md_barkley", NULL, NULL, NULL, "1993",
	"Barkley Shut Up and Jam! (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_barkleyRomInfo, md_barkleyRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barkley Shut Up and Jam! 2 (USA)
static struct BurnRomInfo md_barkley2RomDesc[] = {
	{ "Barkley Shut Up and Jam! 2 (USA)(1995)(Accolade).bin", 0x200000, 0x321bb6bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barkley2)
STD_ROM_FN(md_barkley2)

struct BurnDriver BurnDrvmd_barkley2 = {
	"md_barkley2", NULL, NULL, NULL, "1995",
	"Barkley Shut Up and Jam! 2 (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_barkley2RomInfo, md_barkley2RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barkley Shut Up and Jam! 2 (USA, Prototype)
static struct BurnRomInfo md_barkley2pRomDesc[] = {
	{ "Barkley Shut Up and Jam! 2 (USA, Prototype)(1995)(Accolade).bin", 0x200000, 0xde27357b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barkley2p)
STD_ROM_FN(md_barkley2p)

struct BurnDriver BurnDrvmd_barkley2p = {
	"md_barkley2p", "md_barkley2", NULL, NULL, "1995",
	"Barkley Shut Up and Jam! 2 (USA, Prototype)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_barkley2pRomInfo, md_barkley2pRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barney's Hide & Seek Game (USA)
static struct BurnRomInfo md_barneyRomDesc[] = {
	{ "Barney's Hide & Seek Game (USA)(1993)(Sega).bin", 0x100000, 0x1efa9d53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barney)
STD_ROM_FN(md_barney)

struct BurnDriver BurnDrvmd_barney = {
	"md_barney", NULL, NULL, NULL, "1993",
	"Barney's Hide & Seek Game (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_barneyRomInfo, md_barneyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// BASS Masters Classic (USA)
static struct BurnRomInfo md_bassmcRomDesc[] = {
	{ "BASS Masters Classic (USA)(1995)(Black Pearl).bin", 0x200000, 0xcf1ff00a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bassmc)
STD_ROM_FN(md_bassmc)

struct BurnDriver BurnDrvmd_bassmc = {
	"md_bassmc", NULL, NULL, NULL, "1995",
	"BASS Masters Classic (USA)\0", NULL, "Black Pearl Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bassmcRomInfo, md_bassmcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// BASS Masters Classic - Pro Edition (USA)
static struct BurnRomInfo md_bassmproRomDesc[] = {
	{ "BASS Masters Classic - Pro Edition (USA)(1996)(THQ).bin", 0x200000, 0x9eddeb3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bassmpro)
STD_ROM_FN(md_bassmpro)

struct BurnDriver BurnDrvmd_bassmpro = {
	"md_bassmpro", NULL, NULL, NULL, "1996",
	"BASS Masters Classic - Pro Edition (USA)\0", NULL, "THQ Inc.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bassmproRomInfo, md_bassmproRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman (Euro)
static struct BurnRomInfo md_batmanRomDesc[] = {
	{ "Batman (Euro)(1990)(Sega).bin", 0x080000, 0x61c60c35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batman)
STD_ROM_FN(md_batman)

struct BurnDriver BurnDrvmd_batman = {
	"md_batman", NULL, NULL, NULL, "1990",
	"Batman (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmanRomInfo, md_batmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman (Japan)
static struct BurnRomInfo md_batmanjRomDesc[] = {
	{ "Batman (Japan)(1990)(Sunsoft).bin", 0x080000, 0xd7b4febf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmanj)
STD_ROM_FN(md_batmanj)

struct BurnDriver BurnDrvmd_batmanj = {
	"md_batmanj", "md_batman", NULL, NULL, "1990",
	"Batman (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmanjRomInfo, md_batmanjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman (USA)
static struct BurnRomInfo md_batmanuRomDesc[] = {
	{ "Batman (USA)(1990)(Sunsoft).bin", 0x080000, 0x017410ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmanu)
STD_ROM_FN(md_batmanu)

struct BurnDriver BurnDrvmd_batmanu = {
	"md_batmanu", "md_batman", NULL, NULL, "1990",
	"Batman (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmanuRomInfo, md_batmanuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman - Revenge of the Joker (USA)
static struct BurnRomInfo md_batmanrjRomDesc[] = {
	{ "Batman - Revenge of the Joker (USA)(1992)(Sunsoft).bin", 0x100000, 0xcaa044a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmanrj)
STD_ROM_FN(md_batmanrj)

struct BurnDriver BurnDrvmd_batmanrj = {
	"md_batmanrj", NULL, NULL, NULL, "1992",
	"Batman - Revenge of the Joker (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmanrjRomInfo, md_batmanrjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman Forever (World)
static struct BurnRomInfo md_batmanfRomDesc[] = {
	{ "Batman Forever (World)(1995)(Acclaim).bin", 0x300000, 0x8b723d01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmanf)
STD_ROM_FN(md_batmanf)

struct BurnDriver BurnDrvmd_batmanf = {
	"md_batmanf", NULL, NULL, NULL, "1995",
	"Batman Forever (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_batmanfRomInfo, md_batmanfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman Returns (World)
static struct BurnRomInfo md_batmanrnRomDesc[] = {
	{ "Batman Returns (World)(1992)(Sega).bin", 0x100000, 0x4a3225c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmanrn)
STD_ROM_FN(md_batmanrn)

struct BurnDriver BurnDrvmd_batmanrn = {
	"md_batmanrn", NULL, NULL, NULL, "1992",
	"Batman Returns (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmanrnRomInfo, md_batmanrnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Golfer Yui (Japan)
static struct BurnRomInfo md_battlyuiRomDesc[] = {
	{ "Battle Golfer Yui (Japan)(1991)(Sega).bin", 0x080000, 0x4aa03e4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlyui)
STD_ROM_FN(md_battlyui)

struct BurnDriver BurnDrvmd_battlyui = {
	"md_battlyui", NULL, NULL, NULL, "1991",
	"Battle Golfer Yui (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC | GBF_ADV, 0,
	MegadriveGetZipName, md_battlyuiRomInfo, md_battlyuiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Golfer Yui (Hack, English)
// Source : http://www.romhacking.net/translations/3364/
static struct BurnRomInfo md_battlyuieRomDesc[] = {
	{ "Battle Golfer Yui (Hack, English)(2017)(filler).bin", 0x100000, 0x2d7e868c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlyuie)
STD_ROM_FN(md_battlyuie)

struct BurnDriver BurnDrvmd_battlyuie = {
	"md_battlyuie", "md_battlyui", NULL, NULL, "2017",
	"Battle Golfer Yui (Hack, English)\0", NULL, "filler", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC | GBF_ADV, 0,
	MegadriveGetZipName, md_battlyuieRomInfo, md_battlyuieRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Mania Daiginjou (Japan, Korea)
static struct BurnRomInfo md_btlmanidRomDesc[] = {
	{ "Battle Mania Daiginjou (Japan, Korea)(1993)(Vic Tokai).bin", 0x100000, 0x312fa0f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btlmanid)
STD_ROM_FN(md_btlmanid)

struct BurnDriver BurnDrvmd_btlmanid = {
	"md_btlmanid", NULL, NULL, NULL, "1993",
	"Battle Mania Daiginjou (Japan, Korea)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_btlmanidRomInfo, md_btlmanidRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Mania Daiginjou (Hack, English)
// Source : http://www.romhacking.net/translations/1075/
static struct BurnRomInfo md_btlmanideRomDesc[] = {
	{ "Battle Mania Daiginjou (Hack, English)(2006)(Jon Najar).bin", 0x100000, 0xfab20c39, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btlmanide)
STD_ROM_FN(md_btlmanide)

struct BurnDriver BurnDrvmd_btlmanide = {
	"md_btlmanide", "md_btlmanid", NULL, NULL, "2006",
	"Battle Mania Daiginjou (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_btlmanideRomInfo, md_btlmanideRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Squadron (Euro, USA)
static struct BurnRomInfo md_battlesqRomDesc[] = {
	{ "Battle Squadron (Euro, USA)(1990)(Electronic Arts).bin", 0x080000, 0x0feaa8bf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlesq)
STD_ROM_FN(md_battlesq)

struct BurnDriver BurnDrvmd_battlesq = {
	"md_battlesq", NULL, NULL, NULL, "1990",
	"Battle Squadron (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_battlesqRomInfo, md_battlesqRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Squadron (USA, Prototype)
static struct BurnRomInfo md_battlesqpRomDesc[] = {
	{ "Battle Squadron (USA, Prototype)(Electronic Arts).bin", 0x080000, 0x43a76b45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlesqp)
STD_ROM_FN(md_battlesqp)

struct BurnDriver BurnDrvmd_battlesqp = {
	"md_battlesqp", "md_battlesq", NULL, NULL, "1990",
	"Battle Squadron (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_battlesqpRomInfo, md_battlesqpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battlemaster (USA)
static struct BurnRomInfo md_battlemsRomDesc[] = {
	{ "Battlemaster (USA)(1991)(Arena Entertainment).bin", 0x080000, 0xfd2b35e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlems)
STD_ROM_FN(md_battlems)

struct BurnDriver BurnDrvmd_battlems = {
	"md_battlems", NULL, NULL, NULL, "1991",
	"Battlemaster (USA)\0", NULL, "Arena Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_battlemsRomInfo, md_battlemsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// BattleTech (USA)
static struct BurnRomInfo md_btechRomDesc[] = {
	{ "BattleTech (USA)(1994)(Extreme Entertainment Group).bin", 0x200000, 0x409e5d14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btech)
STD_ROM_FN(md_btech)

struct BurnDriver BurnDrvmd_btech = {
	"md_btech", NULL, NULL, NULL, "1994",
	"BattleTech (USA)\0", NULL, "Extreme Entertainment Group", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_btechRomInfo, md_btechRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battletoads & Double Dragon - The Ultimate Team (USA)
static struct BurnRomInfo md_btoadsddRomDesc[] = {
	{ "Battletoads & Double Dragon - The Ultimate Team (USA)(1993)(Tradewest).bin", 0x100000, 0x8239dd17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btoadsdd)
STD_ROM_FN(md_btoadsdd)

struct BurnDriver BurnDrvmd_btoadsdd = {
	"md_btoadsdd", NULL, NULL, NULL, "1993",
	"Battletoads & Double Dragon - The Ultimate Team (USA)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_btoadsddRomInfo, md_btoadsddRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battletoads (World)
static struct BurnRomInfo md_btoadsRomDesc[] = {
	{ "Battletoads (World)(1991)(Tradewest).bin", 0x080000, 0xd10e103a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btoads)
STD_ROM_FN(md_btoads)

struct BurnDriver BurnDrvmd_btoads = {
	"md_btoads", NULL, NULL, NULL, "1991",
	"Battletoads (World)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_btoadsRomInfo, md_btoadsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beastball (Euro, Prototype)
static struct BurnRomInfo md_beastbalRomDesc[] = {
	{ "Beastball (Euro, Prototype)(1993)(Spectrum HoloByte).bin", 0x0fb8e0, 0x6a176576, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beastbal)
STD_ROM_FN(md_beastbal)

struct BurnDriver BurnDrvmd_beastbal = {
	"md_beastbal", NULL, NULL, NULL, "1993",
	"Beastball (Euro, Prototype)\0", NULL, "Spectrum HoloByte", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_beastbalRomInfo, md_beastbalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beast Wrestler (USA)
static struct BurnRomInfo md_beastwRomDesc[] = {
	{ "Beast Wrestler (USA)(1991)(Renovation).bin", 0x100000, 0x0ca5bb64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beastw)
STD_ROM_FN(md_beastw)

struct BurnDriver BurnDrvmd_beastw = {
	"md_beastw", NULL, NULL, NULL, "1991",
	"Beast Wrestler (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_beastwRomInfo, md_beastwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beast Warriors (Japan)
static struct BurnRomInfo md_beastwjRomDesc[] = {
	{ "Beast Warriors (Japan)(1991)(Riot).bin", 0x100000, 0x4646c694, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beastwj)
STD_ROM_FN(md_beastwj)

struct BurnDriver BurnDrvmd_beastwj = {
	"md_beastwj", "md_beastw", NULL, NULL, "1991",
	"Beast Warriors (Japan)\0", NULL, "Telenet Japan Co. - Riot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_beastwjRomInfo, md_beastwjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Beauty and the Beast - Belle's Quest (USA)
static struct BurnRomInfo md_beautyRomDesc[] = {
	{ "Disney's Beauty and the Beast - Belle's Quest (USA)(1993)(Sunsoft).bin", 0x100000, 0xbefb6fae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beauty)
STD_ROM_FN(md_beauty)

struct BurnDriver BurnDrvmd_beauty = {
	"md_beauty", NULL, NULL, NULL, "1993",
	"Disney's Beauty and the Beast - Belle's Quest (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beautyRomInfo, md_beautyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's Beauty and the Beast - Roar of the Beast (USA)
static struct BurnRomInfo md_beautyrbRomDesc[] = {
	{ "Disney's Beauty and the Beast - Roar of the Beast (USA)(1993)(Sunsoft).bin", 0x100000, 0x13e7b519, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beautyrb)
STD_ROM_FN(md_beautyrb)

struct BurnDriver BurnDrvmd_beautyrb = {
	"md_beautyrb", NULL, NULL, NULL, "1993",
	"Disney's Beauty and the Beast - Roar of the Beast (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beautyrbRomInfo, md_beautyrbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beavis and Butt-Head (Euro)
static struct BurnRomInfo md_beavisRomDesc[] = {
	{ "Beavis and Butt-Head (Euro)(1994)(Viacom New Media).bin", 0x200000, 0xc7b6435e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beavis)
STD_ROM_FN(md_beavis)

struct BurnDriver BurnDrvmd_beavis = {
	"md_beavis", NULL, NULL, NULL, "1994",
	"Beavis and Butt-Head (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_beavisRomInfo, md_beavisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beavis and Butt-Head (USA)
static struct BurnRomInfo md_beavisuRomDesc[] = {
	{ "Beavis and Butt-Head (USA)(1994)(Viacom New Media).bin", 0x200000, 0xf5d7b948, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beavisu)
STD_ROM_FN(md_beavisu)

struct BurnDriver BurnDrvmd_beavisu = {
	"md_beavisu", "md_beavis", NULL, NULL, "1994",
	"Beavis and Butt-Head (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_beavisuRomInfo, md_beavisuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beavis and Butt-Head (USA, Prototype)
static struct BurnRomInfo md_beavisupRomDesc[] = {
	{ "Beavis and Butt-Head (USA, Prototype)(1994)(Viacom New Media).bin", 0x200000, 0x81ed5335, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beavisup)
STD_ROM_FN(md_beavisup)

struct BurnDriver BurnDrvmd_beavisup = {
	"md_beavisup", "md_beavis", NULL, NULL, "1994",
	"Beavis and Butt-Head (USA, Prototype)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_beavisupRomInfo, md_beavisupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (USA)
static struct BurnRomInfo md_berensRomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (USA)(1994)(Sega).bin", 0x100000, 0x1f86237b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berens)
STD_ROM_FN(md_berens)

struct BurnDriver BurnDrvmd_berens = {
	"md_berens", NULL, NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensRomInfo, md_berensRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940428)
static struct BurnRomInfo md_berensp19RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940428)(Sega).bin", 0x100000, 0xf222e946, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp19)
STD_ROM_FN(md_berensp19)

struct BurnDriver BurnDrvmd_berensp19 = {
	"md_berensp19", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940428)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp19RomInfo, md_berensp19RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940429)
static struct BurnRomInfo md_berensp18RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940429)(Sega).bin", 0x100000, 0xe21493b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp18)
STD_ROM_FN(md_berensp18)

struct BurnDriver BurnDrvmd_berensp18 = {
	"md_berensp18", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940429)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp18RomInfo, md_berensp18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940801)
static struct BurnRomInfo md_berensp05RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940801)(Sega).bin", 0x100000, 0xb7cd465c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp05)
STD_ROM_FN(md_berensp05)

struct BurnDriver BurnDrvmd_berensp05 = {
	"md_berensp05", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940801)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp05RomInfo, md_berensp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940802)
static struct BurnRomInfo md_berensp04RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940802)(Sega).bin", 0x100000, 0x383ad564, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp04)
STD_ROM_FN(md_berensp04)

struct BurnDriver BurnDrvmd_berensp04 = {
	"md_berensp04", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940802)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp04RomInfo, md_berensp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940803)
static struct BurnRomInfo md_berensp03RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940803)(Sega).bin", 0x100000, 0x18f268a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp03)
STD_ROM_FN(md_berensp03)

struct BurnDriver BurnDrvmd_berensp03 = {
	"md_berensp03", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940803)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp03RomInfo, md_berensp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940805)
static struct BurnRomInfo md_berensp02RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940805)(Sega).bin", 0x100000, 0x24159b6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp02)
STD_ROM_FN(md_berensp02)

struct BurnDriver BurnDrvmd_berensp02 = {
	"md_berensp02", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940805)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp02RomInfo, md_berensp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940808)
static struct BurnRomInfo md_berensp01RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940808)(Sega).bin", 0x100000, 0x58b6b0fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp01)
STD_ROM_FN(md_berensp01)

struct BurnDriver BurnDrvmd_berensp01 = {
	"md_berensp01", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp01RomInfo, md_berensp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940709)
static struct BurnRomInfo md_berensp08RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940709)(Sega).bin", 0x100000, 0xbf6aa405, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp08)
STD_ROM_FN(md_berensp08)

struct BurnDriver BurnDrvmd_berensp08 = {
	"md_berensp08", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940709)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp08RomInfo, md_berensp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940716)
static struct BurnRomInfo md_berensp07RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940716)(Sega).bin", 0x100000, 0xc84aad8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp07)
STD_ROM_FN(md_berensp07)

struct BurnDriver BurnDrvmd_berensp07 = {
	"md_berensp07", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940716)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp07RomInfo, md_berensp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940720)
static struct BurnRomInfo md_berensp06RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940720)(Sega).bin", 0x100000, 0xabee4c5e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp06)
STD_ROM_FN(md_berensp06)

struct BurnDriver BurnDrvmd_berensp06 = {
	"md_berensp06", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940720)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp06RomInfo, md_berensp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940602)
static struct BurnRomInfo md_berensp10RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940602)(Sega).bin", 0x100000, 0x83cf19e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp10)
STD_ROM_FN(md_berensp10)

struct BurnDriver BurnDrvmd_berensp10 = {
	"md_berensp10", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940602)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp10RomInfo, md_berensp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940610)
static struct BurnRomInfo md_berensp09RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940610)(Sega).bin", 0x100000, 0xa748e2cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp09)
STD_ROM_FN(md_berensp09)

struct BurnDriver BurnDrvmd_berensp09 = {
	"md_berensp09", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940610)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp09RomInfo, md_berensp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940323)
static struct BurnRomInfo md_berensp20RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940323)(Sega).bin", 0x100000, 0xbfbcd7cc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp20)
STD_ROM_FN(md_berensp20)

struct BurnDriver BurnDrvmd_berensp20 = {
	"md_berensp20", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940323)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp20RomInfo, md_berensp20RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940506)
static struct BurnRomInfo md_berensp17RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940506)(Sega).bin", 0x100000, 0x713c14d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp17)
STD_ROM_FN(md_berensp17)

struct BurnDriver BurnDrvmd_berensp17 = {
	"md_berensp17", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940506)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp17RomInfo, md_berensp17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940511)
static struct BurnRomInfo md_berensp16RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940511)(Sega).bin", 0x100000, 0xf7b81c6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp16)
STD_ROM_FN(md_berensp16)

struct BurnDriver BurnDrvmd_berensp16 = {
	"md_berensp16", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940511)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp16RomInfo, md_berensp16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940517)
static struct BurnRomInfo md_berensp15RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940517)(Sega).bin", 0x100000, 0xe1855ade, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp15)
STD_ROM_FN(md_berensp15)

struct BurnDriver BurnDrvmd_berensp15 = {
	"md_berensp15", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940517)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp15RomInfo, md_berensp15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940519)
static struct BurnRomInfo md_berensp14RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940519)(Sega).bin", 0x100000, 0x07c9f71f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp14)
STD_ROM_FN(md_berensp14)

struct BurnDriver BurnDrvmd_berensp14 = {
	"md_berensp14", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940519)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp14RomInfo, md_berensp14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940523)
static struct BurnRomInfo md_berensp13RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940523)(Sega).bin", 0x100000, 0x913887b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp13)
STD_ROM_FN(md_berensp13)

struct BurnDriver BurnDrvmd_berensp13 = {
	"md_berensp13", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940523)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp13RomInfo, md_berensp13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940526)
static struct BurnRomInfo md_berensp12RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940526)(Sega).bin", 0x100000, 0xd33c0fa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp12)
STD_ROM_FN(md_berensp12)

struct BurnDriver BurnDrvmd_berensp12 = {
	"md_berensp12", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940526)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp12RomInfo, md_berensp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Prototype, 19940530)
static struct BurnRomInfo md_berensp11RomDesc[] = {
	{ "Berenstain Bears' Camping Adventure, The (Prototype, 19940530)(Sega).bin", 0x100000, 0x9c3bf429, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berensp11)
STD_ROM_FN(md_berensp11)

struct BurnDriver BurnDrvmd_berensp11 = {
	"md_berensp11", "md_berens", NULL, NULL, "1994",
	"Berenstain Bears' Camping Adventure, The (Prototype, 19940530)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berensp11RomInfo, md_berensp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Best of the Best - Championship Karate (USA)
static struct BurnRomInfo md_bestofRomDesc[] = {
	{ "Best of the Best - Championship Karate (USA)(1993)(Electro Brain).bin", 0x100000, 0xc3d6a5d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bestof)
STD_ROM_FN(md_bestof)

struct BurnDriver BurnDrvmd_bestof = {
	"md_bestof", NULL, NULL, NULL, "1993",
	"Best of the Best - Championship Karate (USA)\0", NULL, "Electro Brain", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_bestofRomInfo, md_bestofRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Best of the Best - Championship Karate (Euro, Prototype)
static struct BurnRomInfo md_bestofpRomDesc[] = {
	{ "Best of the Best - Championship Karate (Euro, Prototype)(1993)(Electro Brain).bin", 0x100000, 0xf842240b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bestofp)
STD_ROM_FN(md_bestofp)

struct BurnDriver BurnDrvmd_bestofp = {
	"md_bestofp", "md_bestof", NULL, NULL, "1993",
	"Best of the Best - Championship Karate (Euro, Prototype)\0", NULL, "Electro Brain", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_bestofpRomInfo, md_bestofpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kick Boxing, The (Japan, Korea)
static struct BurnRomInfo md_kickboxRomDesc[] = {
	{ "Kick Boxing, The (Japan, Korea)(1993)(Micro World).bin", 0x100000, 0x9bdc230c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kickbox)
STD_ROM_FN(md_kickbox)

struct BurnDriver BurnDrvmd_kickbox = {
	"md_kickbox", "md_bestof", NULL, NULL, "1993",
	"Kick Boxing, The (Japan, Korea)\0", NULL, "Micro World", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kickboxRomInfo, md_kickboxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beyond Zero Tolerance (USA, Prototype)
static struct BurnRomInfo md_beyondztRomDesc[] = {
	{ "Beyond Zero Tolerance (USA, Prototype)(1995)(Accolade).bin", 0x200000, 0xc61ed2ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beyondzt)
STD_ROM_FN(md_beyondzt)

struct BurnDriver BurnDrvmd_beyondzt = {
	"md_beyondzt", NULL, NULL, NULL, "1995",
	"Beyond Zero Tolerance (USA, Prototype)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_beyondztRomInfo, md_beyondztRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bible Adventures (USA, v5.0) (Unl)
static struct BurnRomInfo md_bibleadvRomDesc[] = {
	{ "Bible Adventures (USA, v5.0)(Unl)(1995)(Wisdom Tree).bin", 0x080000, 0x64446b77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bibleadv)
STD_ROM_FN(md_bibleadv)

struct BurnDriver BurnDrvmd_bibleadv = {
	"md_bibleadv", NULL, NULL, NULL, "1995",
	"Bible Adventures (USA, v5.0) (Unl)\0", NULL, "Wisdom Tree", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bibleadvRomInfo, md_bibleadvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bill Walsh College Football (Euro, USA)
static struct BurnRomInfo md_billwlshRomDesc[] = {
	{ "Bill Walsh College Football (Euro, USA)(1993)(Electronic Arts).bin", 0x100000, 0x3ed83362, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_billwlsh)
STD_ROM_FN(md_billwlsh)

struct BurnDriver BurnDrvmd_billwlsh = {
	"md_billwlsh", NULL, NULL, NULL, "1993",
	"Bill Walsh College Football (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_billwlshRomInfo, md_billwlshRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bill Walsh College Football 95 (USA)
static struct BurnRomInfo md_billwl95RomDesc[] = {
	{ "Bill Walsh College Football 95 (USA)(Electronic Arts).bin", 0x200000, 0xa582f45a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_billwl95)
STD_ROM_FN(md_billwl95)

struct BurnDriver BurnDrvmd_billwl95 = {
	"md_billwl95", NULL, NULL, NULL, "1994",
	"Bill Walsh College Football 95 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_billwl95RomInfo, md_billwl95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bimini Run (USA)
static struct BurnRomInfo md_biminiRomDesc[] = {
	{ "Bimini Run (USA)(1990)(Nuvision Entertainment).bin", 0x080000, 0xd4dc5188, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bimini)
STD_ROM_FN(md_bimini)

struct BurnDriver BurnDrvmd_bimini = {
	"md_bimini", NULL, NULL, NULL, "1990",
	"Bimini Run (USA)\0", NULL, "Nuvision Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_biminiRomInfo, md_biminiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bio Hazard Battle (Euro, USA)
static struct BurnRomInfo md_biohazrbRomDesc[] = {
	{ "Bio Hazard Battle (Euro, USA)(1992)(Sega).bin", 0x100000, 0x95b0ea2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_biohazrb)
STD_ROM_FN(md_biohazrb)

struct BurnDriver BurnDrvmd_biohazrb = {
	"md_biohazrb", NULL, NULL, NULL, "1992",
	"Bio Hazard Battle (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_biohazrbRomInfo, md_biohazrbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bio Hazard Battle (USA, Prototype)
static struct BurnRomInfo md_biohazrbpRomDesc[] = {
	{ "Bio Hazard Battle (USA, Prototype)(1992)(Sega).bin", 0x100000, 0xdd10dd1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_biohazrbp)
STD_ROM_FN(md_biohazrbp)

struct BurnDriver BurnDrvmd_biohazrbp = {
	"md_biohazrbp", "md_biohazrb", NULL, NULL, "1992",
	"Bio Hazard Battle (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_biohazrbpRomInfo, md_biohazrbpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bio Hazard Battle (Prototype)
static struct BurnRomInfo md_biohazrbp1RomDesc[] = {
	{ "Bio Hazard Battle (Prototype)(1992)(Sega).bin", 0x100000, 0x4f19a73d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_biohazrbp1)
STD_ROM_FN(md_biohazrbp1)

struct BurnDriver BurnDrvmd_biohazrbp1 = {
	"md_biohazrbp1", "md_biohazrb", NULL, NULL, "1992",
	"Bio Hazard Battle (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_biohazrbp1RomInfo, md_biohazrbp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crying - Aseimei Sensou (Japan)
static struct BurnRomInfo md_cryingRomDesc[] = {
	{ "Crying - Aseimei Sensou (Japan)(1992)(Sega).bin", 0x100000, 0x4aba1d6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crying)
STD_ROM_FN(md_crying)

struct BurnDriver BurnDrvmd_crying = {
	"md_crying", "md_biohazrb", NULL, NULL, "1992",
	"Crying - Aseimei Sensou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_cryingRomInfo, md_cryingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blades of Vengeance (Euro, USA)
static struct BurnRomInfo md_bladevenRomDesc[] = {
	{ "Blades of Vengeance (Euro, USA)(1993)(Electronic Arts).bin", 0x100000, 0x74c65a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bladeven)
STD_ROM_FN(md_bladeven)

struct BurnDriver BurnDrvmd_bladeven = {
	"md_bladeven", NULL, NULL, NULL, "1993",
	"Blades of Vengeance (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bladevenRomInfo, md_bladevenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blaster Master 2 (USA)
static struct BurnRomInfo md_bmaster2RomDesc[] = {
	{ "Blaster Master 2 (USA)(1993)(Sunsoft).bin", 0x100000, 0xc11e4ba1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bmaster2)
STD_ROM_FN(md_bmaster2)

struct BurnDriver BurnDrvmd_bmaster2 = {
	"md_bmaster2", NULL, NULL, NULL, "1993",
	"Blaster Master 2 (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bmaster2RomInfo, md_bmaster2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blaster Master 2 (USA, Prototype)
static struct BurnRomInfo md_bmaster2pRomDesc[] = {
	{ "Blaster Master 2 (USA, Prototype)(1993)(Sunsoft).bin", 0x100000, 0x08f78c70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bmaster2p)
STD_ROM_FN(md_bmaster2p)

struct BurnDriver BurnDrvmd_bmaster2p = {
	"md_bmaster2p", "md_bmaster2", NULL, NULL, "1993",
	"Blaster Master 2 (USA, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bmaster2pRomInfo, md_bmaster2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blockbuster World Video Game Championship II (USA)
static struct BurnRomInfo md_blockbRomDesc[] = {
	{ "Blockbuster World Video Game Championship II (USA)(1995)(Acclaim).bin", 0x400000, 0x4385e366, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_blockb)
STD_ROM_FN(md_blockb)

struct BurnDriver BurnDrvmd_blockb = {
	"md_blockb", NULL, NULL, NULL, "1995",
	"Blockbuster World Video Game Championship II (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_blockbRomInfo, md_blockbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blockout (World)
static struct BurnRomInfo md_blockoutRomDesc[] = {
	{ "Blockout (World)(1991)(Electronic Arts).bin", 0x020000, 0x5e2966f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_blockout)
STD_ROM_FN(md_blockout)

struct BurnDriver BurnDrvmd_blockout = {
	"md_blockout", NULL, NULL, NULL, "1991",
	"Blockout (World)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_blockoutRomInfo, md_blockoutRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bloodshot ~ Battle Frenzy (Euro)
static struct BurnRomInfo md_bloodshtRomDesc[] = {
	{ "Bloodshot - Battle Frenzy (Euro)(1994)(Domark).bin", 0x200000, 0xf9f2bceb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bloodsht)
STD_ROM_FN(md_bloodsht)

struct BurnDriver BurnDrvmd_bloodsht = {
	"md_bloodsht", NULL, NULL, NULL, "1994",
	"Bloodshot ~ Battle Frenzy (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_MAZE, 0,
	MegadriveGetZipName, md_bloodshtRomInfo, md_bloodshtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bloodshot ~ Battle Frenzy (Hack, Texture Fix)
static struct BurnRomInfo md_bloodshtfixRomDesc[] = {
	{ "Blood Shot Texture Fix (2021)(Diogo Ribeiro).bin", 2097152, 0xf99c0fdf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bloodshtfix)
STD_ROM_FN(md_bloodshtfix)

struct BurnDriver BurnDrvmd_bloodshtfix = {
	"md_bloodshtfix", "md_bloodsht", NULL, NULL, "1994-2021",
	"Bloodshot ~ Battle Frenzy (Hack, Texture Fix)\0", NULL, "Domark - Diogo Ribeiro", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_MAZE, 0,
	MegadriveGetZipName, md_bloodshtfixRomInfo, md_bloodshtfixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blue Almanac (Japan)
static struct BurnRomInfo md_bluealmaRomDesc[] = {
	{ "Blue Almanac (Japan)(1991)(Kodansha).bin", 0x100000, 0x7222ebb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bluealma)
STD_ROM_FN(md_bluealma)

struct BurnDriver BurnDrvmd_bluealma = {
	"md_bluealma", NULL, NULL, NULL, "1991",
	"Blue Almanac (Japan)\0", NULL, "Kodansha", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_bluealmaRomInfo, md_bluealmaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (Euro)
static struct BurnRomInfo md_bodycoRomDesc[] = {
	{ "Body Count (Euro)(1994)(Sega).bin", 0x100000, 0x3575a030, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodyco)
STD_ROM_FN(md_bodyco)

struct BurnDriver BurnDrvmd_bodyco = {
	"md_bodyco", NULL, NULL, NULL, "1994",
	"Body Count (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycoRomInfo, md_bodycoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (Brazil)
static struct BurnRomInfo md_bodycobRomDesc[] = {
	{ "Body Count (Brazil)(1994)(Tec Toy).bin", 0x100000, 0x649607d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodycob)
STD_ROM_FN(md_bodycob)

struct BurnDriver BurnDrvmd_bodycob = {
	"md_bodycob", "md_bodyco", NULL, NULL, "1994",
	"Body Count (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycobRomInfo, md_bodycobRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (Euro, Prototype)
static struct BurnRomInfo md_bodycopRomDesc[] = {
	{ "Body Count (Euro, Prototype)(1994)(Sega).bin", 0x100000, 0xb4ffb6ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodycop)
STD_ROM_FN(md_bodycop)

struct BurnDriver BurnDrvmd_bodycop = {
	"md_bodycop", "md_bodyco", NULL, NULL, "1994",
	"Body Count (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycopRomInfo, md_bodycopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (USA, Prototype, 19940208)
static struct BurnRomInfo md_bodycop4RomDesc[] = {
	{ "Body Count (USA, Prototype, 19940208)(Sega).bin", 0x0ff900, 0xc5fed897, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodycop4)
STD_ROM_FN(md_bodycop4)

struct BurnDriver BurnDrvmd_bodycop4 = {
	"md_bodycop4", "md_bodyco", NULL, NULL, "1994",
	"Body Count (USA, Prototype, 19940208)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycop4RomInfo, md_bodycop4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (USA, Prototype, 19940127)
static struct BurnRomInfo md_bodycop5RomDesc[] = {
	{ "Body Count (USA, Prototype, 19940127)(Sega).bin", 0x100000, 0x66ca4e71, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodycop5)
STD_ROM_FN(md_bodycop5)

struct BurnDriver BurnDrvmd_bodycop5 = {
	"md_bodycop5", "md_bodyco", NULL, NULL, "1994",
	"Body Count (USA, Prototype, 19940127)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycop5RomInfo, md_bodycop5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (USA, Prototype, 19940303)
static struct BurnRomInfo md_bodycop3RomDesc[] = {
	{ "Body Count (USA, Prototype, 19940303)(Sega).bin", 0x100000, 0x6abc6e77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodycop3)
STD_ROM_FN(md_bodycop3)

struct BurnDriver BurnDrvmd_bodycop3 = {
	"md_bodycop3", "md_bodyco", NULL, NULL, "1994",
	"Body Count (USA, Prototype, 19940303)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycop3RomInfo, md_bodycop3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Body Count (USA, Prototype, 19940308)
static struct BurnRomInfo md_bodycop2RomDesc[] = {
	{ "Body Count (USA, Prototype, 19940308)(Sega).bin", 0x100000, 0x8965213f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bodycop2)
STD_ROM_FN(md_bodycop2)

struct BurnDriver BurnDrvmd_bodycop2 = {
	"md_bodycop2", "md_bodyco", NULL, NULL, "1994",
	"Body Count (USA, Prototype, 19940308)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_bodycop2RomInfo, md_bodycop2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bomber (Brazil)
static struct BurnRomInfo md_bomberRomDesc[] = {
	{ "Bomber (Brazil)(2005)(Tec Toy).bin", 0x020000, 0x6389a658, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bomber)
STD_ROM_FN(md_bomber)

struct BurnDriver BurnDrvmd_bomber = {
	"md_bomber", NULL, NULL, NULL, "2005",
	"Bomber (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_bomberRomInfo, md_bomberRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonanza Bros. (Euro, Japan, Rev. A)
static struct BurnRomInfo md_bnzabrosRomDesc[] = {
	{ "Bonanza Bros. (Euro, Japan, Rev A)(1991)(Sega).bin", 0x080000, 0xc6aac589, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bnzabros)
STD_ROM_FN(md_bnzabros)

struct BurnDriver BurnDrvmd_bnzabros = {
	"md_bnzabros", NULL, NULL, NULL, "1991",
	"Bonanza Bros. (Euro, Japan, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_bnzabrosRomInfo, md_bnzabrosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonanza Bros. (Euro, Japan)
static struct BurnRomInfo md_bnzabros1RomDesc[] = {
	{ "Bonanza Bros. (Euro, Japan)(1991)(Sega).bin", 0x080000, 0xadf6476c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bnzabros1)
STD_ROM_FN(md_bnzabros1)

struct BurnDriver BurnDrvmd_bnzabros1 = {
	"md_bnzabros1", "md_bnzabros", NULL, NULL, "1991",
	"Bonanza Bros. (Euro, Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_bnzabros1RomInfo, md_bnzabros1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonanza Bros. (USA, Korea)
static struct BurnRomInfo md_bnzabrosuRomDesc[] = {
	{ "Bonanza Bros. (USA, Korea)(1991)(Sega).bin", 0x080000, 0x20d1ad4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bnzabrosu)
STD_ROM_FN(md_bnzabrosu)

struct BurnDriver BurnDrvmd_bnzabrosu = {
	"md_bnzabrosu", "md_bnzabros", NULL, NULL, "1991",
	"Bonanza Bros. (USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_bnzabrosuRomInfo, md_bnzabrosuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (Euro, USA)
static struct BurnRomInfo md_bonkersRomDesc[] = {
	{ "Bonkers (Euro, USA)(1994)(Sega).bin", 0x100000, 0xd1e66017, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkers)
STD_ROM_FN(md_bonkers)

struct BurnDriver BurnDrvmd_bonkers = {
	"md_bonkers", NULL, NULL, NULL, "1994",
	"Bonkers (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkersRomInfo, md_bonkersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (USA, Prototype, 19940328)
static struct BurnRomInfo md_bonkersp5RomDesc[] = {
	{ "Bonkers (USA, Prototype, 19940328)(Sega).bin", 0x100000, 0xcd67c588, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkersp5)
STD_ROM_FN(md_bonkersp5)

struct BurnDriver BurnDrvmd_bonkersp5 = {
	"md_bonkersp5", "md_bonkers", NULL, NULL, "1994",
	"Bonkers (USA, Prototype, 19940328)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkersp5RomInfo, md_bonkersp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (USA, Prototype, 19940503)
static struct BurnRomInfo md_bonkersp4RomDesc[] = {
	{ "Bonkers (USA, Prototype, 19940503)(Sega).bin", 0x100000, 0xe4cd0d61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkersp4)
STD_ROM_FN(md_bonkersp4)

struct BurnDriver BurnDrvmd_bonkersp4 = {
	"md_bonkersp4", "md_bonkers", NULL, NULL, "1994",
	"Bonkers (USA, Prototype, 19940503)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkersp4RomInfo, md_bonkersp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (USA, Prototype, 19941004)
static struct BurnRomInfo md_bonkersp3RomDesc[] = {
	{ "Bonkers (USA, Prototype, 19941004)(Sega).bin", 0x100000, 0x913cc834, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkersp3)
STD_ROM_FN(md_bonkersp3)

struct BurnDriver BurnDrvmd_bonkersp3 = {
	"md_bonkersp3", "md_bonkers", NULL, NULL, "1994",
	"Bonkers (USA, Prototype, 19941004)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkersp3RomInfo, md_bonkersp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (USA, Prototype, 19941025)
static struct BurnRomInfo md_bonkersp2RomDesc[] = {
	{ "Bonkers (USA, Prototype, 19941025)(Sega).bin", 0x100000, 0x3e5edc4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkersp2)
STD_ROM_FN(md_bonkersp2)

struct BurnDriver BurnDrvmd_bonkersp2 = {
	"md_bonkersp2", "md_bonkers", NULL, NULL, "1994",
	"Bonkers (USA, Prototype, 19941025)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkersp2RomInfo, md_bonkersp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (USA, Prototype, 19941029)
static struct BurnRomInfo md_bonkersp1RomDesc[] = {
	{ "Bonkers (USA, Prototype, 19941029)(Sega).bin", 0x100000, 0x7b84793e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkersp1)
STD_ROM_FN(md_bonkersp1)

struct BurnDriver BurnDrvmd_bonkersp1 = {
	"md_bonkersp1", "md_bonkers", NULL, NULL, "1994",
	"Bonkers (USA, Prototype, 19941029)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkersp1RomInfo, md_bonkersp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Boogerman - A Pick and Flick Adventure (Euro)
static struct BurnRomInfo md_boogerRomDesc[] = {
	{ "Boogerman - A Pick and Flick Adventure (Euro)(1994)(Interplay).bin", 0x300000, 0xdbc4340c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_booger)
STD_ROM_FN(md_booger)

struct BurnDriver BurnDrvmd_booger = {
	"md_booger", NULL, NULL, NULL, "1994",
	"Boogerman - A Pick and Flick Adventure (Euro)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_boogerRomInfo, md_boogerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Boogerman - A Pick and Flick Adventure (USA)
static struct BurnRomInfo md_boogeruRomDesc[] = {
	{ "Boogerman - A Pick and Flick Adventure (USA)(1994)(Interplay).bin", 0x300000, 0x1a7a2bec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_boogeru)
STD_ROM_FN(md_boogeru)

struct BurnDriver BurnDrvmd_boogeru = {
	"md_boogeru", "md_booger", NULL, NULL, "1994",
	"Boogerman - A Pick and Flick Adventure (USA)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_boogeruRomInfo, md_boogeruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Boxing Legends of the Ring (USA)
static struct BurnRomInfo md_boxinglgRomDesc[] = {
	{ "Boxing Legends of the Ring (USA)(1993)(Electro Brain).bin", 0x100000, 0x00f225ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_boxinglg)
STD_ROM_FN(md_boxinglg)

struct BurnDriver BurnDrvmd_boxinglg = {
	"md_boxinglg", NULL, NULL, NULL, "1993",
	"Boxing Legends of the Ring (USA)\0", NULL, "Electro Brain", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_boxinglgRomInfo, md_boxinglgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chavez II (USA)
static struct BurnRomInfo md_chavez2RomDesc[] = {
	{ "Chavez II (USA)(1993)(American Softworks).bin", 0x100000, 0x5bc0dbb8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chavez2)
STD_ROM_FN(md_chavez2)

struct BurnDriver BurnDrvmd_chavez2 = {
	"md_chavez2", "md_boxinglg", NULL, NULL, "1993",
	"Chavez II (USA)\0", NULL, "American Softworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_chavez2RomInfo, md_chavez2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bram Stoker's Dracula (Euro)
static struct BurnRomInfo md_draculaRomDesc[] = {
	{ "Bram Stoker's Dracula (Euro)(1993)(Sony Imagesoft).bin", 0x100000, 0x9ba5a063, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dracula)
STD_ROM_FN(md_dracula)

struct BurnDriver BurnDrvmd_dracula = {
	"md_dracula", NULL, NULL, NULL, "1993",
	"Bram Stoker's Dracula (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_draculaRomInfo, md_draculaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bram Stoker's Dracula (USA)
static struct BurnRomInfo md_draculauRomDesc[] = {
	{ "Bram Stoker's Dracula (USA)(1993)(Sony Imagesoft).bin", 0x100000, 0x077084a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_draculau)
STD_ROM_FN(md_draculau)

struct BurnDriver BurnDrvmd_draculau = {
	"md_draculau", "md_dracula", NULL, NULL, "1993",
	"Bram Stoker's Dracula (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_draculauRomInfo, md_draculauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brett Hull Hockey '95 (USA)
static struct BurnRomInfo md_bretthRomDesc[] = {
	{ "Brett Hull Hockey '95 (USA)(1994)(Accolade).bin", 0x200000, 0xf7775a09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bretth)
STD_ROM_FN(md_bretth)

struct BurnDriver BurnDrvmd_bretth = {
	"md_bretth", NULL, NULL, NULL, "1994",
	"Brett Hull Hockey '95 (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bretthRomInfo, md_bretthRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brian Lara Cricket (Euro, 199506)
static struct BurnRomInfo md_brianlarRomDesc[] = {
	{ "Brian Lara Cricket (Euro, 199506)(Codemasters).bin", 0x100000, 0x408cf5c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_brianlar)
STD_ROM_FN(md_brianlar)

struct BurnDriver BurnDrvmd_brianlar = {
	"md_brianlar", NULL, NULL, NULL, "1995",
	"Brian Lara Cricket (Euro, 199506)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_brianlarRomInfo, md_brianlarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brian Lara Cricket (Euro, 199503)
static struct BurnRomInfo md_brianlar1RomDesc[] = {
	{ "Brian Lara Cricket (Euro, 199503)(Codemasters).bin", 0x100000, 0x90f5c2b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_brianlar1)
STD_ROM_FN(md_brianlar1)

struct BurnDriver BurnDrvmd_brianlar1 = {
	"md_brianlar1", "md_brianlar", NULL, NULL, "1995",
	"Brian Lara Cricket (Euro, 199503)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_brianlar1RomInfo, md_brianlar1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brian Lara Cricket 96 (Euro, 199604)
static struct BurnRomInfo md_brianl96RomDesc[] = {
	{ "Brian Lara Cricket 96 (Euro, 199604)(Codemasters).bin", 0x100000, 0xfe52f7e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_brianl96)
STD_ROM_FN(md_brianl96)

struct BurnDriver BurnDrvmd_brianl96 = {
	"md_brianl96", NULL, NULL, NULL, "1996",
	"Brian Lara Cricket 96 (Euro, 199604)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CODE_MASTERS, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_brianl96RomInfo, md_brianl96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brian Lara Cricket 96 (Euro, 199603)
static struct BurnRomInfo md_brianl96aRomDesc[] = {
	{ "Brian Lara Cricket 96 (Euro, 199603)(Codemasters).bin", 0x100000, 0xfa3024af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_brianl96a)
STD_ROM_FN(md_brianl96a)

struct BurnDriver BurnDrvmd_brianl96a = {
	"md_brianl96a", "md_brianl96", NULL, NULL, "1996",
	"Brian Lara Cricket 96 (Euro, 199603)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CODE_MASTERS, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_brianl96aRomInfo, md_brianl96aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brutal - Paws of Fury (Euro)
static struct BurnRomInfo md_brutalRomDesc[] = {
	{ "Brutal - Paws of Fury (Euro)(1994)(GameTek).bin", 0x200000, 0x7e9a8d32, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_brutal)
STD_ROM_FN(md_brutal)

struct BurnDriver BurnDrvmd_brutal = {
	"md_brutal", NULL, NULL, NULL, "1994",
	"Brutal - Paws of Fury (Euro)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_brutalRomInfo, md_brutalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brutal - Paws of Fury (USA)
static struct BurnRomInfo md_brutaluRomDesc[] = {
	{ "Brutal - Paws of Fury (USA)(1994)(GameTek).bin", 0x200000, 0x98d502cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_brutalu)
STD_ROM_FN(md_brutalu)

struct BurnDriver BurnDrvmd_brutalu = {
	"md_brutalu", "md_brutal", NULL, NULL, "1994",
	"Brutal - Paws of Fury (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_brutaluRomInfo, md_brutaluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubba'n'Stix (Euro)
static struct BurnRomInfo md_bubbaRomDesc[] = {
	{ "Bubba'n'Stix (Euro)(1994)(Core Design).bin", 0x100000, 0xb467432e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubba)
STD_ROM_FN(md_bubba)

struct BurnDriver BurnDrvmd_bubba = {
	"md_bubba", NULL, NULL, NULL, "1994",
	"Bubba'n'Stix (Euro)\0", NULL, "Core Design", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubbaRomInfo, md_bubbaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubba'n'Stix (Euro, Prototype)
static struct BurnRomInfo md_bubbapRomDesc[] = {
	{ "Bubba'n'Stix (Euro, Prototype)(1994)(Core Design).bin", 0x100000, 0xa8731cb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubbap)
STD_ROM_FN(md_bubbap)

struct BurnDriver BurnDrvmd_bubbap = {
	"md_bubbap", "md_bubba", NULL, NULL, "1994",
	"Bubba'n'Stix (Euro, Prototype)\0", NULL, "Core Design", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubbapRomInfo, md_bubbapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubba'n'Stix - A Strategy Adventure (USA)
static struct BurnRomInfo md_bubbauRomDesc[] = {
	{ "Bubba'n'Stix - A Strategy Adventure (USA)(1993)(Core Design).bin", 0x100000, 0xd45cb46f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubbau)
STD_ROM_FN(md_bubbau)

struct BurnDriver BurnDrvmd_bubbau = {
	"md_bubbau", "md_bubba", NULL, NULL, "1993",
	"Bubba'n'Stix - A Strategy Adventure (USA)\0", NULL, "Core Design", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubbauRomInfo, md_bubbauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubble and Squeak (Euro)
static struct BurnRomInfo md_bubblesqRomDesc[] = {
	{ "Bubble and Squeak (Euro)(1994)(Sunsoft).bin", 0x080000, 0x86151bf1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubblesq)
STD_ROM_FN(md_bubblesq)

struct BurnDriver BurnDrvmd_bubblesq = {
	"md_bubblesq", NULL, NULL, NULL, "1994",
	"Bubble and Squeak (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubblesqRomInfo, md_bubblesqRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubble and Squeak (USA)
static struct BurnRomInfo md_bubblesquRomDesc[] = {
	{ "Bubble and Squeak (USA)(1994)(Sunsoft).bin", 0x080000, 0x28c4a006, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubblesqu)
STD_ROM_FN(md_bubblesqu)

struct BurnDriver BurnDrvmd_bubblesqu = {
	"md_bubblesqu", "md_bubblesq", NULL, NULL, "1994",
	"Bubble and Squeak (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubblesquRomInfo, md_bubblesquRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubsy in Claws Encounters of the Furred Kind (Euro, USA)
static struct BurnRomInfo md_bubsyRomDesc[] = {
	{ "Bubsy in Claws Encounters of the Furred Kind (Euro, USA)(1993)(Accolade).bin", 0x200000, 0x3e30d365, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubsy)
STD_ROM_FN(md_bubsy)

struct BurnDriver BurnDrvmd_bubsy = {
	"md_bubsy", NULL, NULL, NULL, "1993",
	"Bubsy in Claws Encounters of the Furred Kind (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubsyRomInfo, md_bubsyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubsy II (Euro, USA)
static struct BurnRomInfo md_bubsy2RomDesc[] = {
	{ "Bubsy II (Euro, USA)(1994)(Accolade).bin", 0x200000, 0xf8beff56, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubsy2)
STD_ROM_FN(md_bubsy2)

struct BurnDriver BurnDrvmd_bubsy2 = {
	"md_bubsy2", NULL, NULL, NULL, "1994",
	"Bubsy II (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubsy2RomInfo, md_bubsy2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Buck Rogers - Countdown to Doomsday (Euro, USA)
static struct BurnRomInfo md_buckrogRomDesc[] = {
	{ "Buck Rogers - Countdown to Doomsday (Euro, USA)(1991)(Electronic Arts).bin", 0x100000, 0x44e3bfff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_buckrog)
STD_ROM_FN(md_buckrog)

struct BurnDriver BurnDrvmd_buckrog = {
	"md_buckrog", NULL, NULL, NULL, "1991",
	"Buck Rogers - Countdown to Doomsday (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_04000, GBF_RPG, 0,
	MegadriveGetZipName, md_buckrogRomInfo, md_buckrogRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Budokan - The Martial Spirit (Euro)
static struct BurnRomInfo md_budokanRomDesc[] = {
	{ "Budokan - The Martial Spirit (Euro)(1990)(Electronic Arts).bin", 0x080000, 0x97add5bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_budokan)
STD_ROM_FN(md_budokan)

struct BurnDriver BurnDrvmd_budokan = {
	"md_budokan", NULL, NULL, NULL, "1990",
	"Budokan - The Martial Spirit (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_budokanRomInfo, md_budokanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Budokan - The Martial Spirit (USA)
static struct BurnRomInfo md_budokanuRomDesc[] = {
	{ "Budokan - The Martial Spirit (USA)(1990)(Electronic Arts).bin", 0x080000, 0xacd9f5fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_budokanu)
STD_ROM_FN(md_budokanu)

struct BurnDriver BurnDrvmd_budokanu = {
	"md_budokanu", "md_budokan", NULL, NULL, "1990",
	"Budokan - The Martial Spirit (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_budokanuRomInfo, md_budokanuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Budokan - The Martial Spirit (Prototype, 19900925)
static struct BurnRomInfo md_budokanpRomDesc[] = {
	{ "Budokan - The Martial Spirit (Prototype, 19900925)(Electronic Arts).bin", 0x080000, 0x43532e3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_budokanp)
STD_ROM_FN(md_budokanp)

struct BurnDriver BurnDrvmd_budokanp = {
	"md_budokanp", "md_budokan", NULL, NULL, "1990",
	"Budokan - The Martial Spirit (Prototype, 19900925)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_budokanpRomInfo, md_budokanpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bugs Bunny in Double Trouble (USA)
static struct BurnRomInfo md_bugsbunuRomDesc[] = {
	{ "Bugs Bunny in Double Trouble (USA)(1996)(Sega).bin", 0x200000, 0x365305a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bugsbunu)
STD_ROM_FN(md_bugsbunu)

struct BurnDriver BurnDrvmd_bugsbunu = {
	"md_bugsbunu", "md_bugsbun", NULL, NULL, "1996",
	"Bugs Bunny in Double Trouble (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bugsbunuRomInfo, md_bugsbunuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bulls vs. Blazers and the NBA Playoffs (Euro, USA)
static struct BurnRomInfo md_bullvsblRomDesc[] = {
	{ "Bulls vs Blazers and the NBA Playoffs (Euro, USA)(1993)(Electronic Arts).bin", 0x100000, 0xd4e4b4e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bullvsbl)
STD_ROM_FN(md_bullvsbl)

struct BurnDriver BurnDrvmd_bullvsbl = {
	"md_bullvsbl", NULL, NULL, NULL, "1993",
	"Bulls vs. Blazers and the NBA Playoffs (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bullvsblRomInfo, md_bullvsblRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bulls vs Lakers and the NBA Playoffs (Euro, USA)
static struct BurnRomInfo md_bullvslaRomDesc[] = {
	{ "Bulls vs Lakers and the NBA Playoffs (Euro, USA)(1992)(Electronic Arts).bin", 0x100000, 0xe56023a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bullvsla)
STD_ROM_FN(md_bullvsla)

struct BurnDriver BurnDrvmd_bullvsla = {
	"md_bullvsla", NULL, NULL, NULL, "1992",
	"Bulls vs Lakers and the NBA Playoffs (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bullvslaRomInfo, md_bullvslaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Burning Force (Euro)
static struct BurnRomInfo md_burnforcRomDesc[] = {
	{ "Burning Force (Euro)(1991)(Sega).bin", 0x080000, 0x776ff6ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_burnforc)
STD_ROM_FN(md_burnforc)

struct BurnDriver BurnDrvmd_burnforc = {
	"md_burnforc", NULL, NULL, NULL, "1991",
	"Burning Force (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_burnforcRomInfo, md_burnforcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Burning Force (Japan)
static struct BurnRomInfo md_burnforcjRomDesc[] = {
	{ "Burning Force (Japan)(1990)(Namcot).bin", 0x080000, 0x0c1deb47, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_burnforcj)
STD_ROM_FN(md_burnforcj)

struct BurnDriver BurnDrvmd_burnforcj = {
	"md_burnforcj", "md_burnforc", NULL, NULL, "1990",
	"Burning Force (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_burnforcjRomInfo, md_burnforcjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Burning Force (USA)
static struct BurnRomInfo md_burnforcuRomDesc[] = {
	{ "Burning Force (USA)(1990)(Namco).bin", 0x080000, 0xbdc8f02c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_burnforcu)
STD_ROM_FN(md_burnforcu)

struct BurnDriver BurnDrvmd_burnforcu = {
	"md_burnforcu", "md_burnforc", NULL, NULL, "1990",
	"Burning Force (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_burnforcuRomInfo, md_burnforcuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cadash (USA, Asia, Korea)
static struct BurnRomInfo md_cadashRomDesc[] = {
	{ "Cadash (USA, Asia, Korea)(1992)(Taito).bin", 0x080000, 0x13bdf374, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cadash)
STD_ROM_FN(md_cadash)

struct BurnDriver BurnDrvmd_cadash = {
	"md_cadash", NULL, NULL, NULL, "1992",
	"Cadash (USA, Asia, Korea)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_RPG, 0,
	MegadriveGetZipName, md_cadashRomInfo, md_cadashRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Caesars Palace (USA)
static struct BurnRomInfo md_caesarsRomDesc[] = {
	{ "Caesars Palace (USA)(1993)(Virgin Games).bin", 0x080000, 0x8fdaa9bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_caesars)
STD_ROM_FN(md_caesars)

struct BurnDriver BurnDrvmd_caesars = {
	"md_caesars", NULL, NULL, NULL, "1993",
	"Caesars Palace (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CASINO, 0,
	MegadriveGetZipName, md_caesarsRomInfo, md_caesarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cal Ripken Jr. Baseball (USA)
static struct BurnRomInfo md_calripknRomDesc[] = {
	{ "Cal Ripken Jr. Baseball (USA)(1992)(Mindscape).bin", 0x100000, 0x9b1c96c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_calripkn)
STD_ROM_FN(md_calripkn)

struct BurnDriver BurnDrvmd_calripkn = {
	"md_calripkn", NULL, NULL, NULL, "1992",
	"Cal Ripken Jr. Baseball (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_calripknRomInfo, md_calripknRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cal.50 - Caliber Fifty (USA)
static struct BurnRomInfo md_cal50RomDesc[] = {
	{ "Cal.50 - Caliber Fifty (USA)(1991)(Mentrix Software).bin", 0x100000, 0x44f4fa05, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cal50)
STD_ROM_FN(md_cal50)

struct BurnDriver BurnDrvmd_cal50 = {
	"md_cal50", NULL, NULL, NULL, "1991",
	"Cal.50 - Caliber Fifty (USA)\0", NULL, "Mentrix Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cal50RomInfo, md_cal50RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// California Games (Euro, USA)
static struct BurnRomInfo md_calgamesRomDesc[] = {
	{ "California Games (Euro, USA)(1991)(Sega).bin", 0x080000, 0x43b1b672, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_calgames)
STD_ROM_FN(md_calgames)

struct BurnDriver BurnDrvmd_calgames = {
	"md_calgames", NULL, NULL, NULL, "1991",
	"California Games (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 9, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_calgamesRomInfo, md_calgamesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cannon Fodder (Euro)
static struct BurnRomInfo md_cfodderRomDesc[] = {
	{ "Cannon Fodder (Euro)(1994)(Virgin Interactive).bin", 0x180000, 0xad217654, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cfodder)
STD_ROM_FN(md_cfodder)

struct BurnDriver BurnDrvmd_cfodder = {
	"md_cfodder", NULL, NULL, NULL, "1994",
	"Cannon Fodder (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_cfodderRomInfo, md_cfodderRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain America and the Avengers (Euro)
static struct BurnRomInfo md_captavenRomDesc[] = {
	{ "Captain America and the Avengers (Euro)(1992)(Data East).bin", 0x100000, 0x43225612, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captaven)
STD_ROM_FN(md_captaven)

struct BurnDriver BurnDrvmd_captaven = {
	"md_captaven", NULL, NULL, NULL, "1992",
	"Captain America and the Avengers (Euro)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_captavenRomInfo, md_captavenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain America and the Avengers (USA)
static struct BurnRomInfo md_captavenuRomDesc[] = {
	{ "Captain America and the Avengers (USA)(1992)(Data East).bin", 0x100000, 0xe0639ca2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captavenu)
STD_ROM_FN(md_captavenu)

struct BurnDriver BurnDrvmd_captavenu = {
	"md_captavenu", "md_captaven", NULL, NULL, "1992",
	"Captain America and the Avengers (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_captavenuRomInfo, md_captavenuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain America and the Avengers (USA, Prototype)
static struct BurnRomInfo md_captavenupRomDesc[] = {
	{ "Captain America and the Avengers (USA, Prototype)(1992)(Data East).bin", 0x100000, 0xbaac59c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captavenup)
STD_ROM_FN(md_captavenup)

struct BurnDriver BurnDrvmd_captavenup = {
	"md_captavenup", "md_captaven", NULL, NULL, "1992",
	"Captain America and the Avengers (USA, Prototype)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_captavenupRomInfo, md_captavenupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain Lang (Japan)
static struct BurnRomInfo md_captlangRomDesc[] = {
	{ "Captain Lang (Japan)(1994)(Data East).bin", 0x100000, 0x61ba8199, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captlang)
STD_ROM_FN(md_captlang)

struct BurnDriver BurnDrvmd_captlang = {
	"md_captlang", "md_havoc", NULL, NULL, "1994",
	"Captain Lang (Japan)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_captlangRomInfo, md_captlangRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain Planet and the Planeteers (Euro)
static struct BurnRomInfo md_captplanRomDesc[] = {
	{ "Captain Planet and the Planeteers (Euro)(1993)(Sega).bin", 0x080000, 0x7672efa5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captplan)
STD_ROM_FN(md_captplan)

struct BurnDriver BurnDrvmd_captplan = {
	"md_captplan", NULL, NULL, NULL, "1993",
	"Captain Planet and the Planeteers (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_captplanRomInfo, md_captplanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain Planet and the Planeteers (USA)
static struct BurnRomInfo md_captplanuRomDesc[] = {
	{ "Captain Planet and the Planeteers (USA)(1993)(Sega).bin", 0x080000, 0xbf2cbd3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captplanu)
STD_ROM_FN(md_captplanu)

struct BurnDriver BurnDrvmd_captplanu = {
	"md_captplanu", "md_captplan", NULL, NULL, "1993",
	"Captain Planet and the Planeteers (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_captplanuRomInfo, md_captplanuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Capt'n Havoc (Euro)
static struct BurnRomInfo md_havocRomDesc[] = {
	{ "Capt'n Havoc (Euro)(1994)(Codemasters).bin", 0x100000, 0x76e6d20d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_havoc)
STD_ROM_FN(md_havoc)

struct BurnDriver BurnDrvmd_havoc = {
	"md_havoc", NULL, NULL, NULL, "1994",
	"Capt'n Havoc (Euro)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_havocRomInfo, md_havocRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Castle of Illusion Starring Mickey Mouse (Euro, USA)
static struct BurnRomInfo md_castlillRomDesc[] = {
	{ "Castle of Illusion Starring Mickey Mouse (Euro, USA)(1990)(Sega).bin", 0x080000, 0xba4e9fd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_castlill)
STD_ROM_FN(md_castlill)

struct BurnDriver BurnDrvmd_castlill = {
	"md_castlill", NULL, NULL, NULL, "1990",
	"Castle of Illusion Starring Mickey Mouse (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_castlillRomInfo, md_castlillRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Castle of Illusion - Fushigi no Oshiro Daibouken (Japan)
static struct BurnRomInfo md_castlilljRomDesc[] = {
	{ "Castle of Illusion - Fushigi no Oshiro Daibouken (Japan)(1990)(Sega).bin", 0x080000, 0xce8333c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_castlillj)
STD_ROM_FN(md_castlillj)

struct BurnDriver BurnDrvmd_castlillj = {
	"md_castlillj", "md_castlill", NULL, NULL, "1990",
	"Castle of Illusion - Fushigi no Oshiro Daibouken (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_castlilljRomInfo, md_castlilljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Castlevania - The New Generation (Euro)
static struct BurnRomInfo md_cvaniaRomDesc[] = {
	{ "Castlevania - The New Generation (Euro)(1994)(Konami).bin", 0x100000, 0x4dd4e4a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cvania)
STD_ROM_FN(md_cvania)

struct BurnDriver BurnDrvmd_cvania = {
	"md_cvania", NULL, NULL, NULL, "1994",
	"Castlevania - The New Generation (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cvaniaRomInfo, md_cvaniaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Castlevania - The New Generation (Euro, Prototype)
static struct BurnRomInfo md_cvaniapRomDesc[] = {
	{ "Castlevania - The New Generation (Euro, Prototype)(1994)(Konami).bin", 0x100000, 0x84cd103a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cvaniap)
STD_ROM_FN(md_cvaniap)

struct BurnDriver BurnDrvmd_cvaniap = {
	"md_cvaniap", "md_cvania", NULL, NULL, "1994",
	"Castlevania - The New Generation (Euro, Prototype)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cvaniapRomInfo, md_cvaniapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Castlevania - Bloodlines (USA)
static struct BurnRomInfo md_cvaniauRomDesc[] = {
	{ "Castlevania - Bloodlines (USA)(1994)(Konami).bin", 0x100000, 0xfb1ea6df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cvaniau)
STD_ROM_FN(md_cvaniau)

struct BurnDriver BurnDrvmd_cvaniau = {
	"md_cvaniau", "md_cvania", NULL, NULL, "1994",
	"Castlevania - Bloodlines (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cvaniauRomInfo, md_cvaniauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Akumajou Dracula - Vampire Killer (Japan)
static struct BurnRomInfo md_akumajoRomDesc[] = {
	{ "Akumajou Dracula - Vampire Killer (Japan)(1994)(Konami).bin", 0x100000, 0x91b57d2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_akumajo)
STD_ROM_FN(md_akumajo)

struct BurnDriver BurnDrvmd_akumajo = {
	"md_akumajo", "md_cvania", NULL, NULL, "1994",
	"Akumajou Dracula - Vampire Killer (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_akumajoRomInfo, md_akumajoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Centurion - Defender of Rome (Euro, USA)
static struct BurnRomInfo md_centurRomDesc[] = {
	{ "Centurion - Defender of Rome (Euro, USA)(1991)(Electronic Arts).bin", 0x0c0000, 0x21283b14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_centur)
STD_ROM_FN(md_centur)

struct BurnDriver BurnDrvmd_centur = {
	"md_centur", NULL, NULL, NULL, "1991",
	"Centurion - Defender of Rome (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_centurRomInfo, md_centurRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chakan (Euro, USA)
static struct BurnRomInfo md_chakanRomDesc[] = {
	{ "Chakan (Euro, USA)(1992)(Sega).bin", 0x100000, 0x046a48de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chakan)
STD_ROM_FN(md_chakan)

struct BurnDriver BurnDrvmd_chakan = {
	"md_chakan", NULL, NULL, NULL, "1992",
	"Chakan (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chakanRomInfo, md_chakanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chakan (19921006 Build)
static struct BurnRomInfo md_chakanpRomDesc[] = {
	{ "Chakan (Prototype, 19921006)(Sega).bin", 0x100000, 0x77b7e85f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chakanp)
STD_ROM_FN(md_chakanp)

struct BurnDriver BurnDrvmd_chakanp = {
	"md_chakanp", "md_chakan", NULL, NULL, "1992",
	"Chakan (Prototype, 19921006)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chakanpRomInfo, md_chakanpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Champions World Class Soccer (World)
static struct BurnRomInfo md_champwcsRomDesc[] = {
	{ "Champions World Class Soccer (World)(1994)(Flying Edge).bin", 0x100000, 0x883e33db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_champwcs)
STD_ROM_FN(md_champwcs)

struct BurnDriver BurnDrvmd_champwcs = {
	"md_champwcs", NULL, NULL, NULL, "1994",
	"Champions World Class Soccer (World)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_champwcsRomInfo, md_champwcsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Champions World Class Soccer (Prototype, 19940318)
static struct BurnRomInfo md_champwcspRomDesc[] = {
	{ "Champions World Class Soccer (Prototype, 19940318)(Flying Edge).bin", 0x100000, 0x7b3eb69d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_champwcsp)
STD_ROM_FN(md_champwcsp)

struct BurnDriver BurnDrvmd_champwcsp = {
	"md_champwcsp", "md_champwcs", NULL, NULL, "1994",
	"Champions World Class Soccer (Prototype, 19940318)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_champwcspRomInfo, md_champwcspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Championship Bowling (USA)
static struct BurnRomInfo md_champbwlRomDesc[] = {
	{ "Championship Bowling (USA)(1993)(Mentrix Software).bin", 0x080000, 0x1bf92520, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_champbwl)
STD_ROM_FN(md_champbwl)

struct BurnDriver BurnDrvmd_champbwl = {
	"md_champbwl", NULL, NULL, NULL, "1993",
	"Championship Bowling (USA)\0", NULL, "Mentrix Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_champbwlRomInfo, md_champbwlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Boogie Woogie Bowling (Japan)
static struct BurnRomInfo md_boogieRomDesc[] = {
	{ "Boogie Woogie Bowling (Japan)(1993)(Visco).bin", 0x080000, 0xccf52828, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_boogie)
STD_ROM_FN(md_boogie)

struct BurnDriver BurnDrvmd_boogie = {
	"md_boogie", "md_champbwl", NULL, NULL, "1993",
	"Boogie Woogie Bowling (Japan)\0", NULL, "Visco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_boogieRomInfo, md_boogieRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Championship Pool (USA)
static struct BurnRomInfo md_champoolRomDesc[] = {
	{ "Championship Pool (USA)(1993)(Mindscape).bin", 0x100000, 0x253512cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_champool)
STD_ROM_FN(md_champool)

struct BurnDriver BurnDrvmd_champool = {
	"md_champool", NULL, NULL, NULL, "1993",
	"Championship Pool (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 8, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_champoolRomInfo, md_champoolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Championship Pro-Am (USA)
static struct BurnRomInfo md_cproamRomDesc[] = {
	{ "Championship Pro-Am (USA)(1992)(Tradewest).bin", 0x040000, 0xb496de28, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cproam)
STD_ROM_FN(md_cproam)

struct BurnDriver BurnDrvmd_cproam = {
	"md_cproam", NULL, NULL, NULL, "1992",
	"Championship Pro-Am (USA)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_cproamRomInfo, md_cproamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chaos Engine, The (Euro)
static struct BurnRomInfo md_chaosengRomDesc[] = {
	{ "Chaos Engine, The (Euro)(1992)(Microprose).bin", 0x180000, 0xbd9eecf4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chaoseng)
STD_ROM_FN(md_chaoseng)

struct BurnDriver BurnDrvmd_chaoseng = {
	"md_chaoseng", NULL, NULL, NULL, "1992",
	"Chaos Engine, The (Euro)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_chaosengRomInfo, md_chaosengRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soldiers of Fortune (USA)
static struct BurnRomInfo md_soldfortRomDesc[] = {
	{ "Soldiers of Fortune (USA)(1993)(Spectrum HoloByte).bin", 0x180000, 0xa84d28a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soldfort)
STD_ROM_FN(md_soldfort)

struct BurnDriver BurnDrvmd_soldfort = {
	"md_soldfort", "md_chaoseng", NULL, NULL, "1993",
	"Soldiers of Fortune (USA)\0", NULL, "Spectrum HoloByte", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_soldfortRomInfo, md_soldfortRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chaos Engine 2, The (Euro, Prototype)
static struct BurnRomInfo md_chaosen2RomDesc[] = {
	{ "Chaos Engine 2, The (Euro, Prototype)(199x)(Bitmap Brothers).bin", 0x100000, 0x3fb045c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chaosen2)
STD_ROM_FN(md_chaosen2)

struct BurnDriver BurnDrvmd_chaosen2 = {
	"md_chaosen2", NULL, NULL, NULL, "199?",
	"Chaos Engine 2, The (Euro, Prototype)\0", NULL, "Renegade - Bitmap Brothers", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_chaosen2RomInfo, md_chaosen2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chase H.Q. II (USA)
static struct BurnRomInfo md_chasehq2RomDesc[] = {
	{ "Chase H.Q. II (USA)(1992)(Taito).bin", 0x080000, 0xf39e4bf2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chasehq2)
STD_ROM_FN(md_chasehq2)

struct BurnDriver BurnDrvmd_chasehq2 = {
	"md_chasehq2", NULL, NULL, NULL, "1992",
	"Chase H.Q. II (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_chasehq2RomInfo, md_chasehq2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super H.Q. (Japan)
static struct BurnRomInfo md_superhqRomDesc[] = {
	{ "Super H.Q. (Japan)(1992)(Taito).bin", 0x080000, 0xab2c52b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_superhq)
STD_ROM_FN(md_superhq)

struct BurnDriver BurnDrvmd_superhq = {
	"md_superhq", "md_chasehq2", NULL, NULL, "1992",
	"Super H.Q. (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_superhqRomInfo, md_superhqRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cheese Cat-Astrophe Starring Speedy Gonzales (Euro)
static struct BurnRomInfo md_cheeseRomDesc[] = {
	{ "cheese cat-astrophe starring speedy gonzales (euro).bin", 0x200000, 0xff634b28, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cheese)
STD_ROM_FN(md_cheese)

struct BurnDriver BurnDrvmd_cheese = {
	"md_cheese", NULL, NULL, NULL, "1995",
	"Cheese Cat-Astrophe Starring Speedy Gonzales (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_cheeseRomInfo, md_cheeseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chester Cheetah - Too Cool to Fool (USA)
static struct BurnRomInfo md_chesterRomDesc[] = {
	{ "chester cheetah - too cool to fool (usa).bin", 0x100000, 0x250e3ec3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chester)
STD_ROM_FN(md_chester)

struct BurnDriver BurnDrvmd_chester = {
	"md_chester", NULL, NULL, NULL, "1992",
	"Chester Cheetah - Too Cool to Fool (USA)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chesterRomInfo, md_chesterRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chester Cheetah - Wild Wild Quest (USA)
static struct BurnRomInfo md_chesterwRomDesc[] = {
	{ "chester cheetah - wild wild quest (usa).bin", 0x100000, 0xb97b735d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chesterw)
STD_ROM_FN(md_chesterw)

struct BurnDriver BurnDrvmd_chesterw = {
	"md_chesterw", NULL, NULL, NULL, "1992",
	"Chester Cheetah - Wild Wild Quest (USA)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chesterwRomInfo, md_chesterwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chi Chi's Pro Challenge Golf (USA)
static struct BurnRomInfo md_chichiRomDesc[] = {
	{ "chi chi's pro challenge golf (usa).bin", 0x100000, 0x9c3973a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chichi)
STD_ROM_FN(md_chichi)

struct BurnDriver BurnDrvmd_chichi = {
	"md_chichi", NULL, NULL, NULL, "1993",
	"Chi Chi's Pro Challenge Golf (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_chichiRomInfo, md_chichiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chibi Maruko-chan - Wakuwaku Shopping (Japan)
static struct BurnRomInfo md_chibimRomDesc[] = {
	{ "chibi maruko-chan - wakuwaku shopping (jpn).bin", 0x080000, 0x91a144b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chibim)
STD_ROM_FN(md_chibim)

struct BurnDriver BurnDrvmd_chibim = {
	"md_chibim", NULL, NULL, NULL, "1992",
	"Chibi Maruko-chan - Wakuwaku Shopping (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD, 0,
	MegadriveGetZipName, md_chibimRomInfo, md_chibimRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chiki Chiki Boys (Euro, USA)
static struct BurnRomInfo md_chikiRomDesc[] = {
	{ "chiki chiki boys (euro, usa).bin", 0x100000, 0x813a7d62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chiki)
STD_ROM_FN(md_chiki)

struct BurnDriver BurnDrvmd_chiki = {
	"md_chiki", NULL, NULL, NULL, "1992",
	"Chiki Chiki Boys (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chikiRomInfo, md_chikiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chiki Chiki Boys (Japan, Korea)
static struct BurnRomInfo md_chikijRomDesc[] = {
	{ "chiki chiki boys (jpn, kor).bin", 0x100000, 0x06918c17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chikij)
STD_ROM_FN(md_chikij)

struct BurnDriver BurnDrvmd_chikij = {
	"md_chikij", "md_chiki", NULL, NULL, "1992",
	"Chiki Chiki Boys (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chikijRomInfo, md_chikijRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck Rock (Euro)
static struct BurnRomInfo md_chuckrckRomDesc[] = {
	{ "chuck rock (euro).bin", 0x100000, 0x7cd40bea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chuckrck)
STD_ROM_FN(md_chuckrck)

struct BurnDriver BurnDrvmd_chuckrck = {
	"md_chuckrck", NULL, NULL, NULL, "1992",
	"Chuck Rock (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chuckrckRomInfo, md_chuckrckRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck Rock (USA)
static struct BurnRomInfo md_chuckrckuRomDesc[] = {
	{ "chuck rock (usa).bin", 0x100000, 0xf8ac454a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chuckrcku)
STD_ROM_FN(md_chuckrcku)

struct BurnDriver BurnDrvmd_chuckrcku = {
	"md_chuckrcku", "md_chuckrck", NULL, NULL, "1992",
	"Chuck Rock (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chuckrckuRomInfo, md_chuckrckuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck Rock II - Son of Chuck (Euro)
static struct BurnRomInfo md_chukrck2RomDesc[] = {
	{ "chuck rock ii - son of chuck (euro).bin", 0x100000, 0x1ade9488, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chukrck2)
STD_ROM_FN(md_chukrck2)

struct BurnDriver BurnDrvmd_chukrck2 = {
	"md_chukrck2", NULL, NULL, NULL, "1993",
	"Chuck Rock II - Son of Chuck (Euro)\0", NULL, "Core Design", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chukrck2RomInfo, md_chukrck2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck Rock II (Japan)
static struct BurnRomInfo md_chukrck2jRomDesc[] = {
	{ "chuck rock ii (jpn).bin", 0x100000, 0xbfd24be8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chukrck2j)
STD_ROM_FN(md_chukrck2j)

struct BurnDriver BurnDrvmd_chukrck2j = {
	"md_chukrck2j", "md_chukrck2", NULL, NULL, "1994",
	"Chuck Rock II (Japan)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chukrck2jRomInfo, md_chukrck2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck Rock II - Son of Chuck (USA)
static struct BurnRomInfo md_chukrck2uRomDesc[] = {
	{ "chuck rock ii - son of chuck (usa).bin", 0x100000, 0x408b1cdb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chukrck2u)
STD_ROM_FN(md_chukrck2u)

struct BurnDriver BurnDrvmd_chukrck2u = {
	"md_chukrck2u", "md_chukrck2", NULL, NULL, "1993",
	"Chuck Rock II - Son of Chuck (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chukrck2uRomInfo, md_chukrck2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck Rock II - Son of Chuck (USA, Prototype)
static struct BurnRomInfo md_chukrck2upRomDesc[] = {
	{ "chuck rock ii - son of chuck (usa) (beta).bin", 0x100000, 0xd6a3b324, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chukrck2up)
STD_ROM_FN(md_chukrck2up)

struct BurnDriver BurnDrvmd_chukrck2up = {
	"md_chukrck2up", "md_chukrck2", NULL, NULL, "1993",
	"Chuck Rock II - Son of Chuck (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chukrck2upRomInfo, md_chukrck2upRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chuck's Excellent Art Tool Animator (USA) (Unl)
static struct BurnRomInfo md_excelartRomDesc[] = {
	{ "chuck's excellent art tool animator (usa) (unl).bin", 0x060000, 0x6360ee58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_excelart)
STD_ROM_FN(md_excelart)

struct BurnDriver BurnDrvmd_excelart = {
	"md_excelart", NULL, NULL, NULL, "199?",
	"Chuck's Excellent Art Tool Animator (USA) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_DEMO, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_excelartRomInfo, md_excelartRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Classic Collection (Euro)
static struct BurnRomInfo md_classiccRomDesc[] = {
	{ "classic collection (euro).bin", 0x200000, 0x73f948b1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_classicc)
STD_ROM_FN(md_classicc)

struct BurnDriver BurnDrvmd_classicc = {
	"md_classicc", NULL, NULL, NULL, "1994",
	"Classic Collection (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_classiccRomInfo, md_classiccRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Clay Fighter (Euro)
static struct BurnRomInfo md_clayfghtRomDesc[] = {
	{ "mpr-17510.bin", 0x200000, 0x1aaf7707, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_clayfght)
STD_ROM_FN(md_clayfght)

struct BurnDriver BurnDrvmd_clayfght = {
	"md_clayfght", NULL, NULL, NULL, "1994",
	"Clay Fighter (Euro)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_clayfghtRomInfo, md_clayfghtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Clay Fighter (USA)
static struct BurnRomInfo md_clayfghtuRomDesc[] = {
	{ "clay fighter (usa).bin", 0x200000, 0xb12c1bc1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_clayfghtu)
STD_ROM_FN(md_clayfghtu)

struct BurnDriver BurnDrvmd_clayfghtu = {
	"md_clayfghtu", "md_clayfght", NULL, NULL, "1994",
	"Clay Fighter (USA)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_clayfghtuRomInfo, md_clayfghtuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cliffhanger (Euro)
static struct BurnRomInfo md_cliffhRomDesc[] = {
	{ "cliffhanger (euro).bin", 0x100000, 0x35bff1fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cliffh)
STD_ROM_FN(md_cliffh)

struct BurnDriver BurnDrvmd_cliffh = {
	"md_cliffh", NULL, NULL, NULL, "1993",
	"Cliffhanger (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_cliffhRomInfo, md_cliffhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cliffhanger (Prototype)
static struct BurnRomInfo md_cliffhpRomDesc[] = {
	{ "cliffhanger (beta).bin", 0x100000, 0x628251fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cliffhp)
STD_ROM_FN(md_cliffhp)

struct BurnDriver BurnDrvmd_cliffhp = {
	"md_cliffhp", "md_cliffh", NULL, NULL, "1993",
	"Cliffhanger (Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_cliffhpRomInfo, md_cliffhpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cliffhanger (USA)
static struct BurnRomInfo md_cliffhuRomDesc[] = {
	{ "cliffhanger (usa).bin", 0x100000, 0x9cbf44d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cliffhu)
STD_ROM_FN(md_cliffhu)

struct BurnDriver BurnDrvmd_cliffhu = {
	"md_cliffhu", "md_cliffh", NULL, NULL, "1993",
	"Cliffhanger (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_cliffhuRomInfo, md_cliffhuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Clue (USA)
static struct BurnRomInfo md_clueRomDesc[] = {
	{ "clue (usa).bin", 0x080000, 0x7753a296, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_clue)
STD_ROM_FN(md_clue)

struct BurnDriver BurnDrvmd_clue = {
	"md_clue", NULL, NULL, NULL, "1992",
	"Clue (USA)\0", NULL, "Parker Brothers", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 6, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD | GBF_QUIZ, 0,
	MegadriveGetZipName, md_clueRomInfo, md_clueRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Coach K College Basketball (USA)
static struct BurnRomInfo md_coachkRomDesc[] = {
	{ "coach k college basketball (usa).bin", 0x200000, 0x67c309c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coachk)
STD_ROM_FN(md_coachk)

struct BurnDriver BurnDrvmd_coachk = {
	"md_coachk", NULL, NULL, NULL, "1995",
	"Coach K College Basketball (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_coachkRomInfo, md_coachkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football USA 96 (USA)
static struct BurnRomInfo md_colleg96RomDesc[] = {
	{ "college football usa 96 (usa).bin", 0x200000, 0xb9075385, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_colleg96)
STD_ROM_FN(md_colleg96)

struct BurnDriver BurnDrvmd_colleg96 = {
	"md_colleg96", NULL, NULL, NULL, "1995",
	"College Football USA 96 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_colleg96RomInfo, md_colleg96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football USA 96 (USA, Prototype, 19950621)
static struct BurnRomInfo md_colleg96pRomDesc[] = {
	{ "college football usa 96 (prototype - jun 21, 1995).bin", 0x200000, 0xe70bd01d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_colleg96p)
STD_ROM_FN(md_colleg96p)

struct BurnDriver BurnDrvmd_colleg96p = {
	"md_colleg96p", "md_colleg96", NULL, NULL, "1995",
	"College Football USA 96 (USA, Prototype 19950621)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_colleg96pRomInfo, md_colleg96pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football USA 97 (USA)
static struct BurnRomInfo md_colleg97RomDesc[] = {
	{ "college football usa 97 (usa).bin", 0x200000, 0x2ebb90a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_colleg97)
STD_ROM_FN(md_colleg97)

struct BurnDriver BurnDrvmd_colleg97 = {
	"md_colleg97", NULL, NULL, NULL, "1996",
	"College Football USA 97 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_colleg97RomInfo, md_colleg97RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (USA)
static struct BurnRomInfo md_collncRomDesc[] = {
	{ "college football's national championship (usa).bin", 0x200000, 0x172c5dbb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collnc)
STD_ROM_FN(md_collnc)

struct BurnDriver BurnDrvmd_collnc = {
	"md_collnc", NULL, NULL, NULL, "1994",
	"College Football's National Championship (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncRomInfo, md_collncRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940413)
static struct BurnRomInfo md_collncp19RomDesc[] = {
	{ "college football's national championship (prototype - apr 13, 1994).bin", 0x200000, 0xd9772def, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp19)
STD_ROM_FN(md_collncp19)

struct BurnDriver BurnDrvmd_collncp19 = {
	"md_collncp19", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940413)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp19RomInfo, md_collncp19RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940418)
static struct BurnRomInfo md_collncp18RomDesc[] = {
	{ "college football's national championship (prototype - apr 18, 1994).bin", 0x200000, 0xe0a1705f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp18)
STD_ROM_FN(md_collncp18)

struct BurnDriver BurnDrvmd_collncp18 = {
	"md_collncp18", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940418)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp18RomInfo, md_collncp18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940419)
static struct BurnRomInfo md_collncp17RomDesc[] = {
	{ "college football's national championship (prototype - apr 19, 1994).bin", 0x200000, 0xd5fe66c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp17)
STD_ROM_FN(md_collncp17)

struct BurnDriver BurnDrvmd_collncp17 = {
	"md_collncp17", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940419)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp17RomInfo, md_collncp17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940429)
static struct BurnRomInfo md_collncp16RomDesc[] = {
	{ "college football's national championship (prototype - apr 29, 1994).bin", 0x200000, 0x99da1973, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp16)
STD_ROM_FN(md_collncp16)

struct BurnDriver BurnDrvmd_collncp16 = {
	"md_collncp16", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940429)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp16RomInfo, md_collncp16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940601)
static struct BurnRomInfo md_collncp08RomDesc[] = {
	{ "college football's national championship (prototype - jun 01, 1994).bin", 0x200000, 0x994dbc8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp08)
STD_ROM_FN(md_collncp08)

struct BurnDriver BurnDrvmd_collncp08 = {
	"md_collncp08", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940601)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp08RomInfo, md_collncp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940603)
static struct BurnRomInfo md_collncp07RomDesc[] = {
	{ "college football's national championship (prototype - jun 03, 1994).bin", 0x200000, 0x9ca29321, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp07)
STD_ROM_FN(md_collncp07)

struct BurnDriver BurnDrvmd_collncp07 = {
	"md_collncp07", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940603)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp07RomInfo, md_collncp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940607)
static struct BurnRomInfo md_collncp06RomDesc[] = {
	{ "college football's national championship (prototype - jun 07, 1994).bin", 0x200000, 0xb40b791e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp06)
STD_ROM_FN(md_collncp06)

struct BurnDriver BurnDrvmd_collncp06 = {
	"md_collncp06", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940607)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp06RomInfo, md_collncp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940608)
static struct BurnRomInfo md_collncp05RomDesc[] = {
	{ "college football's national championship (prototype - jun 08, 1994).bin", 0x200000, 0xd008debc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp05)
STD_ROM_FN(md_collncp05)

struct BurnDriver BurnDrvmd_collncp05 = {
	"md_collncp05", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940608)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp05RomInfo, md_collncp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940614)
static struct BurnRomInfo md_collncp04RomDesc[] = {
	{ "college football's national championship (prototype - jun 14, 1994).bin", 0x200000, 0xecef7de7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp04)
STD_ROM_FN(md_collncp04)

struct BurnDriver BurnDrvmd_collncp04 = {
	"md_collncp04", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940614)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp04RomInfo, md_collncp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940615)
static struct BurnRomInfo md_collncp03RomDesc[] = {
	{ "college football's national championship (prototype - jun 15, 1994).bin", 0x200000, 0xc7e5a998, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp03)
STD_ROM_FN(md_collncp03)

struct BurnDriver BurnDrvmd_collncp03 = {
	"md_collncp03", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940615)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp03RomInfo, md_collncp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940618)
static struct BurnRomInfo md_collncp02RomDesc[] = {
	{ "college football's national championship (prototype - jun 18, 1994).bin", 0x200000, 0x74988a9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp02)
STD_ROM_FN(md_collncp02)

struct BurnDriver BurnDrvmd_collncp02 = {
	"md_collncp02", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940618)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp02RomInfo, md_collncp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940620)
static struct BurnRomInfo md_collncp01RomDesc[] = {
	{ "college football's national championship (prototype - jun 20, 1994).bin", 0x200000, 0x898c17fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp01)
STD_ROM_FN(md_collncp01)

struct BurnDriver BurnDrvmd_collncp01 = {
	"md_collncp01", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940620)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp01RomInfo, md_collncp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940503)
static struct BurnRomInfo md_collncp15RomDesc[] = {
	{ "college football's national championship (prototype - may 03, 1994).bin", 0x200000, 0xdb1a3f66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp15)
STD_ROM_FN(md_collncp15)

struct BurnDriver BurnDrvmd_collncp15 = {
	"md_collncp15", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940503)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp15RomInfo, md_collncp15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940506)
static struct BurnRomInfo md_collncp14RomDesc[] = {
	{ "college football's national championship (prototype - may 06, 1994).bin", 0x200000, 0x0a538e75, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp14)
STD_ROM_FN(md_collncp14)

struct BurnDriver BurnDrvmd_collncp14 = {
	"md_collncp14", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940506)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp14RomInfo, md_collncp14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940511-A)
static struct BurnRomInfo md_collncp13RomDesc[] = {
	{ "college football's national championship (prototype - may 11, 1994 - a).bin", 0x200000, 0xce65b294, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp13)
STD_ROM_FN(md_collncp13)

struct BurnDriver BurnDrvmd_collncp13 = {
	"md_collncp13", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940511-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp13RomInfo, md_collncp13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940517-A)
static struct BurnRomInfo md_collncp12RomDesc[] = {
	{ "college football's national championship (prototype - may 17, 1994 - a).bin", 0x200000, 0x8cfd4c86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp12)
STD_ROM_FN(md_collncp12)

struct BurnDriver BurnDrvmd_collncp12 = {
	"md_collncp12", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940517-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp12RomInfo, md_collncp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940520)
static struct BurnRomInfo md_collncp11RomDesc[] = {
	{ "college football's national championship (prototype - may 20, 1994).bin", 0x200000, 0xf285385e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp11)
STD_ROM_FN(md_collncp11)

struct BurnDriver BurnDrvmd_collncp11 = {
	"md_collncp11", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940520)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp11RomInfo, md_collncp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940525)
static struct BurnRomInfo md_collncp10RomDesc[] = {
	{ "college football's national championship (prototype - may 25, 1994).bin", 0x200000, 0x482e334a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp10)
STD_ROM_FN(md_collncp10)

struct BurnDriver BurnDrvmd_collncp10 = {
	"md_collncp10", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940525)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp10RomInfo, md_collncp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship (Prototype, 19940531)
static struct BurnRomInfo md_collncp09RomDesc[] = {
	{ "college football's national championship (prototype - may 31, 1994).bin", 0x200000, 0xc6766745, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collncp09)
STD_ROM_FN(md_collncp09)

struct BurnDriver BurnDrvmd_collncp09 = {
	"md_collncp09", "md_collnc", NULL, NULL, "1994",
	"College Football's National Championship (Prototype, 19940531)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collncp09RomInfo, md_collncp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Football's National Championship II (USA)
static struct BurnRomInfo md_collnc2RomDesc[] = {
	{ "college football's national championship ii (usa).bin", 0x200000, 0x65b64413, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collnc2)
STD_ROM_FN(md_collnc2)

struct BurnDriver BurnDrvmd_collnc2 = {
	"md_collnc2", NULL, NULL, NULL, "1995",
	"College Football's National Championship II (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collnc2RomInfo, md_collnc2RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// College Slam (USA)
static struct BurnRomInfo md_collslamRomDesc[] = {
	{ "college slam (usa).bin", 0x400000, 0x96a42431, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_collslam)
STD_ROM_FN(md_collslam)

struct BurnDriver BurnDrvmd_collslam = {
	"md_collslam", NULL, NULL, NULL, "1996",
	"College Slam (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_C_SLAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_collslamRomInfo, md_collslamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Columns (World, v1.1)
static struct BurnRomInfo md_columnsRomDesc[] = {
	{ "columns (world) (v1.1).bin", 0x020000, 0xd783c244, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_columns)
STD_ROM_FN(md_columns)

struct BurnDriver BurnDrvmd_columns = {
	"md_columns", NULL, NULL, NULL, "1990",
	"Columns (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_columnsRomInfo, md_columnsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Columns (World)
static struct BurnRomInfo md_columns1RomDesc[] = {
	{ "mpr-13193.bin", 0x020000, 0x03163d7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_columns1)
STD_ROM_FN(md_columns1)

struct BurnDriver BurnDrvmd_columns1 = {
	"md_columns1", "md_columns", NULL, NULL, "1990",
	"Columns (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_columns1RomInfo, md_columns1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Columns III - Revenge of Columns (USA)
static struct BurnRomInfo md_columns3RomDesc[] = {
	{ "columns iii - revenge of columns (usa).bin", 0x080000, 0xdc678f6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_columns3)
STD_ROM_FN(md_columns3)

struct BurnDriver BurnDrvmd_columns3 = {
	"md_columns3", NULL, NULL, NULL, "1993",
	"Columns III - Revenge of Columns (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 5, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_columns3RomInfo, md_columns3RomName, NULL, NULL, NULL, NULL, Megadrive5pInputInfo, Megadrive5pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Columns III - Taiketsu! Columns World (Japan, Korea)
static struct BurnRomInfo md_columns3jRomDesc[] = {
	{ "columns iii - taiketsu! columns world (jpn, kor).bin", 0x080000, 0xcd07462f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_columns3j)
STD_ROM_FN(md_columns3j)

struct BurnDriver BurnDrvmd_columns3j = {
	"md_columns3j", "md_columns3", NULL, NULL, "1993",
	"Columns III - Taiketsu! Columns World (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 5, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_columns3jRomInfo, md_columns3jRomName, NULL, NULL, NULL, NULL, Megadrive5pInputInfo, Megadrive5pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Combat Aces (Prototype)
static struct BurnRomInfo md_combatRomDesc[] = {
	{ "combat aces (beta).bin", 0x080000, 0x84560d5a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_combat)
STD_ROM_FN(md_combat)

struct BurnDriver BurnDrvmd_combat = {
	"md_combat", NULL, NULL, NULL, "199?",
	"Combat Aces (Prototype)\0", NULL, "Chuck Peavey", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_combatRomInfo, md_combatRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Combat Cars (Euro, USA)
static struct BurnRomInfo md_combatcaRomDesc[] = {
	{ "combat cars (euro, usa).bin", 0x100000, 0xe439b101, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_combatca)
STD_ROM_FN(md_combatca)

struct BurnDriver BurnDrvmd_combatca = {
	"md_combatca", NULL, NULL, NULL, "1994",
	"Combat Cars (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_combatcaRomInfo, md_combatcaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Euro)
static struct BurnRomInfo md_comixRomDesc[] = {
	{ "mpr-18301.bin", 0x200000, 0x1318e923, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comix)
STD_ROM_FN(md_comix)

struct BurnDriver BurnDrvmd_comix = {
	"md_comix", NULL, NULL, NULL, "1995",
	"Comix Zone (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixRomInfo, md_comixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Euro, Prototype, 19950628)
static struct BurnRomInfo md_comixpRomDesc[] = {
	{ "comix zone (euro) (prototype - jun 28, 1995).bin", 0x200000, 0x939efd4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixp)
STD_ROM_FN(md_comixp)

struct BurnDriver BurnDrvmd_comixp = {
	"md_comixp", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Euro, Prototype, 19950628)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixpRomInfo, md_comixpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Japan)
static struct BurnRomInfo md_comixjRomDesc[] = {
	{ "comix zone (jpn).bin", 0x200000, 0x7a6027b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixj)
STD_ROM_FN(md_comixj)

struct BurnDriver BurnDrvmd_comixj = {
	"md_comixj", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixjRomInfo, md_comixjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Euro, Prototype, 19950712)
static struct BurnRomInfo md_comixup01RomDesc[] = {
	{ "comix zone (prototype - jul 12, 1995).bin", 0x200000, 0xe28c89c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup01)
STD_ROM_FN(md_comixup01)

struct BurnDriver BurnDrvmd_comixup01 = {
	"md_comixup01", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Euro, Prototype, 19950712)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup01RomInfo, md_comixup01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950601-B)
static struct BurnRomInfo md_comixup08RomDesc[] = {
	{ "comix zone (prototype - jun 01, 1995 - b).bin", 0x200000, 0xbbe03cb6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup08)
STD_ROM_FN(md_comixup08)

struct BurnDriver BurnDrvmd_comixup08 = {
	"md_comixup08", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950601-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup08RomInfo, md_comixup08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950601-C)
static struct BurnRomInfo md_comixup07RomDesc[] = {
	{ "comix zone (prototype - jun 01, 1995 - c).bin", 0x200000, 0x413b9a94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup07)
STD_ROM_FN(md_comixup07)

struct BurnDriver BurnDrvmd_comixup07 = {
	"md_comixup07", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950601-C)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup07RomInfo, md_comixup07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950601-D)
static struct BurnRomInfo md_comixup06RomDesc[] = {
	{ "comix zone (prototype - jun 01, 1995 - d).bin", 0x200000, 0x9ae93c9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup06)
STD_ROM_FN(md_comixup06)

struct BurnDriver BurnDrvmd_comixup06 = {
	"md_comixup06", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950601-D)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup06RomInfo, md_comixup06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950601)
static struct BurnRomInfo md_comixup05RomDesc[] = {
	{ "comix zone (prototype - jun 01, 1995).bin", 0x200000, 0xba506835, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup05)
STD_ROM_FN(md_comixup05)

struct BurnDriver BurnDrvmd_comixup05 = {
	"md_comixup05", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950601)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup05RomInfo, md_comixup05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950602-B)
static struct BurnRomInfo md_comixup04RomDesc[] = {
	{ "comix zone (prototype - jun 02, 1995 - b).bin", 0x200000, 0xb5f0dae5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup04)
STD_ROM_FN(md_comixup04)

struct BurnDriver BurnDrvmd_comixup04 = {
	"md_comixup04", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950602-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup04RomInfo, md_comixup04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950602)
static struct BurnRomInfo md_comixup03RomDesc[] = {
	{ "comix zone (prototype - jun 02, 1995).bin", 0x200000, 0x1a4abcf3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup03)
STD_ROM_FN(md_comixup03)

struct BurnDriver BurnDrvmd_comixup03 = {
	"md_comixup03", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950602)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup03RomInfo, md_comixup03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype, 19950603)
static struct BurnRomInfo md_comixup02RomDesc[] = {
	{ "comix zone (prototype - jun 03, 1995).bin", 0x200000, 0xaff32614, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup02)
STD_ROM_FN(md_comixup02)

struct BurnDriver BurnDrvmd_comixup02 = {
	"md_comixup02", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype, 19950603)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup02RomInfo, md_comixup02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Prototype, 19950526)
static struct BurnRomInfo md_comixup10RomDesc[] = {
	{ "comix zone (prototype - may 26, 1995).bin", 0x200000, 0x36029a1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup10)
STD_ROM_FN(md_comixup10)

struct BurnDriver BurnDrvmd_comixup10 = {
	"md_comixup10", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Prototype, 19950526)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup10RomInfo, md_comixup10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Prototype, 19950530)
static struct BurnRomInfo md_comixup09RomDesc[] = {
	{ "comix zone (prototype - may 30, 1995).bin", 0x200000, 0xa72eca2c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup09)
STD_ROM_FN(md_comixup09)

struct BurnDriver BurnDrvmd_comixup09 = {
	"md_comixup09", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Prototype, 19950530)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixup09RomInfo, md_comixup09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Korea, Prototype, 19950609)
static struct BurnRomInfo md_comixkpRomDesc[] = {
	{ "comix zone (kor) (prototype - jun 09, 1995).bin", 0x200000, 0xe45a15f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixkp)
STD_ROM_FN(md_comixkp)

struct BurnDriver BurnDrvmd_comixkp = {
	"md_comixkp", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Korea, Prototype, 19950609)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixkpRomInfo, md_comixkpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Sega Channel, Prototype, 19950612)
static struct BurnRomInfo md_comixscRomDesc[] = {
	{ "comix zone (sega channel) (prototype - jun 12, 1995).bin", 0x200000, 0xc77db9e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixsc)
STD_ROM_FN(md_comixsc)

struct BurnDriver BurnDrvmd_comixsc = {
	"md_comixsc", "md_comix", NULL, NULL, "1995",
	"Comix Zone (Sega Channel, Prototype, 19950612)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixscRomInfo, md_comixscRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA)
static struct BurnRomInfo md_comixuRomDesc[] = {
	{ "comix zone (usa).bin", 0x200000, 0x17da0354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixu)
STD_ROM_FN(md_comixu)

struct BurnDriver BurnDrvmd_comixu = {
	"md_comixu", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixuRomInfo, md_comixuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (USA, Prototype)
static struct BurnRomInfo md_comixupRomDesc[] = {
	{ "comix zone (usa) (beta).bin", 0x200000, 0x2efcb6ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixup)
STD_ROM_FN(md_comixup)

struct BurnDriver BurnDrvmd_comixup = {
	"md_comixup", "md_comix", NULL, NULL, "1995",
	"Comix Zone (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixupRomInfo, md_comixupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Comix Zone (Hack, Italian)
//Translation project: https://romhacking.it/project/view/id/49
static struct BurnRomInfo md_comixiRomDesc[] = {
	{ "comix zone (italian translation).bin", 0x200000, 0xf2bba578, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixi)
STD_ROM_FN(md_comixi)

struct BurnDriver BurnDrvmd_comixi = {
	"md_comixi", "md_comix", NULL, NULL, "2002",
	"Comix Zone (Hack, Italian)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixiRomInfo, md_comixiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Congo (Prototype)
static struct BurnRomInfo md_congoRomDesc[] = {
	{ "congo (unknown) (prototype).bin", 0x0f7d36, 0x13746716, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_congo)
STD_ROM_FN(md_congo)

struct BurnDriver BurnDrvmd_congo = {
	"md_congo", NULL, NULL, NULL, "199?",
	"Congo (Prototype)\0", NULL, "Visual Concepts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_congoRomInfo, md_congoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cool Spot (Euro)
static struct BurnRomInfo md_coolspotRomDesc[] = {
	{ "mpr-15477.bin", 0x100000, 0x5f09fa41, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coolspot)
STD_ROM_FN(md_coolspot)

struct BurnDriver BurnDrvmd_coolspot = {
	"md_coolspot", NULL, NULL, NULL, "1994",
	"Cool Spot (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_coolspotRomInfo, md_coolspotRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cool Spot (Japan, Korea)
static struct BurnRomInfo md_coolspotjRomDesc[] = {
	{ "cool spot (jpn, kor).bin", 0x100000, 0xe869efb1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coolspotj)
STD_ROM_FN(md_coolspotj)

struct BurnDriver BurnDrvmd_coolspotj = {
	"md_coolspotj", "md_coolspot", NULL, NULL, "1994",
	"Cool Spot (Japan, Korea)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_coolspotjRomInfo, md_coolspotjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cool Spot (USA)
static struct BurnRomInfo md_coolspotuRomDesc[] = {
	{ "cool spot (usa).bin", 0x100000, 0xf024c1a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coolspotu)
STD_ROM_FN(md_coolspotu)

struct BurnDriver BurnDrvmd_coolspotu = {
	"md_coolspotu", "md_coolspot", NULL, NULL, "1994",
	"Cool Spot (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_coolspotuRomInfo, md_coolspotuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cool Spot (USA, Prototype)
static struct BurnRomInfo md_coolspotupRomDesc[] = {
	{ "cool spot (usa) (beta).bin", 0x100000, 0x0ebaa4a8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coolspotup)
STD_ROM_FN(md_coolspotup)

struct BurnDriver BurnDrvmd_coolspotup = {
	"md_coolspotup", "md_coolspot", NULL, NULL, "1994",
	"Cool Spot (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_coolspotupRomInfo, md_coolspotupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Corporation (Euro)
static struct BurnRomInfo md_corporatRomDesc[] = {
	{ "mpr-15065.bin", 0x100000, 0xa80d18aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_corporat)
STD_ROM_FN(md_corporat)

struct BurnDriver BurnDrvmd_corporat = {
	"md_corporat", NULL, NULL, NULL, "1992",
	"Corporation (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_MAZE, 0,
	MegadriveGetZipName, md_corporatRomInfo, md_corporatRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cyber-Cop (USA)
static struct BurnRomInfo md_cybercopRomDesc[] = {
	{ "cyber-cop (usa).bin", 0x100000, 0x01e719c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cybercop)
STD_ROM_FN(md_cybercop)

struct BurnDriver BurnDrvmd_cybercop = {
	"md_cybercop", "md_corporat", NULL, NULL, "1992",
	"Cyber-Cop (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_MAZE, 0,
	MegadriveGetZipName, md_cybercopRomInfo, md_cybercopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cosmic Spacehead (Euro, USA)
static struct BurnRomInfo md_cosmicRomDesc[] = {
	{ "cosmic spacehead (euro, usa).bin", 0x100000, 0xc593d31c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cosmic)
STD_ROM_FN(md_cosmic)

struct BurnDriver BurnDrvmd_cosmic = {
	"md_cosmic", NULL, NULL, NULL, "1993",
	"Cosmic Spacehead (Euro, USA)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_cosmicRomInfo, md_cosmicRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crack Down (Euro, Japan, Rev. A)
static struct BurnRomInfo md_crkdownRomDesc[] = {
	{ "mpr-13578a.bin", 0x080000, 0xd012a47a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crkdown)
STD_ROM_FN(md_crkdown)

struct BurnDriver BurnDrvmd_crkdown = {
	"md_crkdown", NULL, NULL, NULL, "1990",
	"Crack Down (Euro, Japan, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_crkdownRomInfo, md_crkdownRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crack Down (Euro, Japan)
static struct BurnRomInfo md_crkdown1RomDesc[] = {
	{ "crack down (euro, jpn).bin", 0x080000, 0x538aaa5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crkdown1)
STD_ROM_FN(md_crkdown1)

struct BurnDriver BurnDrvmd_crkdown1 = {
	"md_crkdown1", "md_crkdown", NULL, NULL, "1990",
	"Crack Down (Euro, Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_crkdown1RomInfo, md_crkdown1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crack Down (USA)
static struct BurnRomInfo md_crkdownuRomDesc[] = {
	{ "crack down (usa).bin", 0x080000, 0xb9ce9051, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crkdownu)
STD_ROM_FN(md_crkdownu)

struct BurnDriver BurnDrvmd_crkdownu = {
	"md_crkdownu", "md_crkdown", NULL, NULL, "1991",
	"Crack Down (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_crkdownuRomInfo, md_crkdownuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crayon Shin-chan - Arashi o Yobu Enji (Japan)
static struct BurnRomInfo md_crayonRomDesc[] = {
	{ "crayon shin-chan - arashi o yobu enji (jpn).bin", 0x200000, 0x97fc42d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crayon)
STD_ROM_FN(md_crayon)

struct BurnDriver BurnDrvmd_crayon = {
	"md_crayon", NULL, NULL, NULL, "1994",
	"Crayon Shin-chan - Arashi o Yobu Enji (Japan)\0", NULL, "Ma-Ba", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_crayonRomInfo, md_crayonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cross Fire (USA)
static struct BurnRomInfo md_xfireRomDesc[] = {
	{ "cross fire (usa).bin", 0x080000, 0xcc73f3a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xfire)
STD_ROM_FN(md_xfire)

struct BurnDriver BurnDrvmd_xfire = {
	"md_xfire", NULL, NULL, NULL, "1991",
	"Cross Fire (USA)\0", NULL, "Kyugo Boueki", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_xfireRomInfo, md_xfireRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Airwolf (Japan)
static struct BurnRomInfo md_superairRomDesc[] = {
	{ "mpr-13814.bin", 0x080000, 0xfa451982, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_superair)
STD_ROM_FN(md_superair)

struct BurnDriver BurnDrvmd_superair = {
	"md_superair", "md_xfire", NULL, NULL, "1991",
	"Super Airwolf (Japan)\0", NULL, "Kyugo Boueki", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_superairRomInfo, md_superairRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crue Ball (Euro, USA)
static struct BurnRomInfo md_crueballRomDesc[] = {
	{ "crue06.bin", 0x080000, 0x4b195fc0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crueball)
STD_ROM_FN(md_crueball)

struct BurnDriver BurnDrvmd_crueball = {
	"md_crueball", NULL, NULL, NULL, "1992",
	"Crue Ball (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_crueballRomInfo, md_crueballRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crue Ball (Japan)
static struct BurnRomInfo md_crueballjRomDesc[] = {
	{ "crue ball (jpn).bin", 0x080000, 0x514c53e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crueballj)
STD_ROM_FN(md_crueballj)

struct BurnDriver BurnDrvmd_crueballj = {
	"md_crueballj", "md_crueball", NULL, NULL, "1993",
	"Crue Ball (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_crueballjRomInfo, md_crueballjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twisted Flipper (USA, Prototype)
static struct BurnRomInfo md_twistedfRomDesc[] = {
	{ "twisted flipper (usa) (beta).bin", 0x080000, 0x6dd47554, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twistedf)
STD_ROM_FN(md_twistedf)

struct BurnDriver BurnDrvmd_twistedf = {
	"md_twistedf", "md_crueball", NULL, NULL, "199?",
	"Twisted Flipper (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_twistedfRomInfo, md_twistedfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA)
static struct BurnRomInfo md_crystlptRomDesc[] = {
	{ "crystal's pony tale (usa).bin", 0x100000, 0x6cf7a4df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlpt)
STD_ROM_FN(md_crystlpt)

struct BurnDriver BurnDrvmd_crystlpt = {
	"md_crystlpt", NULL, NULL, NULL, "1994",
	"Crystal's Pony Tale (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptRomInfo, md_crystlptRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940701)
static struct BurnRomInfo md_crystlptp06RomDesc[] = {
	{ "crystal's pony tale (prototype - jul 01, 1994).bin", 0x100000, 0x16ac2e4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp06)
STD_ROM_FN(md_crystlptp06)

struct BurnDriver BurnDrvmd_crystlptp06 = {
	"md_crystlptp06", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940701)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp06RomInfo, md_crystlptp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940702)
static struct BurnRomInfo md_crystlptp05RomDesc[] = {
	{ "crystal's pony tale (prototype - jul 02, 1994).bin", 0x100000, 0x24bc4354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp05)
STD_ROM_FN(md_crystlptp05)

struct BurnDriver BurnDrvmd_crystlptp05 = {
	"md_crystlptp05", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940702)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp05RomInfo, md_crystlptp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940703)
static struct BurnRomInfo md_crystlptp04RomDesc[] = {
	{ "crystal's pony tale (prototype - jul 03, 1994).bin", 0x100000, 0x6d67a87c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp04)
STD_ROM_FN(md_crystlptp04)

struct BurnDriver BurnDrvmd_crystlptp04 = {
	"md_crystlptp04", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940703)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp04RomInfo, md_crystlptp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940712-B)
static struct BurnRomInfo md_crystlptp03RomDesc[] = {
	{ "crystal's pony tale (prototype - jul 12, 1994 - b).bin", 0x100000, 0x3577dc72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp03)
STD_ROM_FN(md_crystlptp03)

struct BurnDriver BurnDrvmd_crystlptp03 = {
	"md_crystlptp03", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940712-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp03RomInfo, md_crystlptp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940712)
static struct BurnRomInfo md_crystlptp02RomDesc[] = {
	{ "crystal's pony tale (prototype - jul 12, 1994).bin", 0x0ff554, 0x2bfc0a53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp02)
STD_ROM_FN(md_crystlptp02)

struct BurnDriver BurnDrvmd_crystlptp02 = {
	"md_crystlptp02", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940712)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp02RomInfo, md_crystlptp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940713)
static struct BurnRomInfo md_crystlptp01RomDesc[] = {
	{ "crystal's pony tale (prototype - jul 13, 1994).bin", 0x100000, 0xc67b6dba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp01)
STD_ROM_FN(md_crystlptp01)

struct BurnDriver BurnDrvmd_crystlptp01 = {
	"md_crystlptp01", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940713)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp01RomInfo, md_crystlptp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940601)
static struct BurnRomInfo md_crystlptp12RomDesc[] = {
	{ "crystal's pony tale (prototype - jun 01, 1994).bin", 0x100000, 0x14c6347c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp12)
STD_ROM_FN(md_crystlptp12)

struct BurnDriver BurnDrvmd_crystlptp12 = {
	"md_crystlptp12", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940601)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp12RomInfo, md_crystlptp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940606)
static struct BurnRomInfo md_crystlptp11RomDesc[] = {
	{ "crystal's pony tale (prototype - jun 06, 1994).bin", 0x100000, 0x83e8cac9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp11)
STD_ROM_FN(md_crystlptp11)

struct BurnDriver BurnDrvmd_crystlptp11 = {
	"md_crystlptp11", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940606)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp11RomInfo, md_crystlptp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940610)
static struct BurnRomInfo md_crystlptp10RomDesc[] = {
	{ "crystal's pony tale (prototype - jun 10, 1994).bin", 0x100000, 0x9e1dd267, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp10)
STD_ROM_FN(md_crystlptp10)

struct BurnDriver BurnDrvmd_crystlptp10 = {
	"md_crystlptp10", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940610)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp10RomInfo, md_crystlptp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940623)
static struct BurnRomInfo md_crystlptp09RomDesc[] = {
	{ "crystal's pony tale (prototype - jun 23, 1994).bin", 0x100000, 0x4ccc19af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp09)
STD_ROM_FN(md_crystlptp09)

struct BurnDriver BurnDrvmd_crystlptp09 = {
	"md_crystlptp09", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940623)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp09RomInfo, md_crystlptp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940628)
static struct BurnRomInfo md_crystlptp08RomDesc[] = {
	{ "crystal's pony tale (prototype - jun 28, 1994).bin", 0x100000, 0x03be7f66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp08)
STD_ROM_FN(md_crystlptp08)

struct BurnDriver BurnDrvmd_crystlptp08 = {
	"md_crystlptp08", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940628)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp08RomInfo, md_crystlptp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940630)
static struct BurnRomInfo md_crystlptp07RomDesc[] = {
	{ "crystal's pony tale (prototype - jun 30, 1994).bin", 0x100000, 0xdd8c73fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp07)
STD_ROM_FN(md_crystlptp07)

struct BurnDriver BurnDrvmd_crystlptp07 = {
	"md_crystlptp07", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940630)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp07RomInfo, md_crystlptp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940511)
static struct BurnRomInfo md_crystlptp15RomDesc[] = {
	{ "crystal's pony tale (prototype - may 11, 1994).bin", 0x100000, 0xeac9d74b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp15)
STD_ROM_FN(md_crystlptp15)

struct BurnDriver BurnDrvmd_crystlptp15 = {
	"md_crystlptp15", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940511)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp15RomInfo, md_crystlptp15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940519)
static struct BurnRomInfo md_crystlptp14RomDesc[] = {
	{ "crystal's pony tale (prototype - may 19, 1994).bin", 0x100000, 0xdc50b741, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp14)
STD_ROM_FN(md_crystlptp14)

struct BurnDriver BurnDrvmd_crystlptp14 = {
	"md_crystlptp14", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940519)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp14RomInfo, md_crystlptp14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crystal's Pony Tale (USA, Prototype, 19940526)
static struct BurnRomInfo md_crystlptp13RomDesc[] = {
	{ "crystal's pony tale (prototype - may 26, 1994).bin", 0x100000, 0xa2eaba55, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlptp13)
STD_ROM_FN(md_crystlptp13)

struct BurnDriver BurnDrvmd_crystlptp13 = {
	"md_crystlptp13", "md_crystlpt", NULL, NULL, "1994",
	"Crystal's Pony Tale (USA, Prototype, 19940526)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptp13RomInfo, md_crystlptp13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Curse (Japan)
static struct BurnRomInfo md_curseRomDesc[] = {
	{ "curse (jpn).bin", 0x080000, 0xa4fbf9a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_curse)
STD_ROM_FN(md_curse)

struct BurnDriver BurnDrvmd_curse = {
	"md_curse", NULL, NULL, NULL, "1989",
	"Curse (Japan)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_curseRomInfo, md_curseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Curse (Prototype, 19900626)
static struct BurnRomInfo md_cursepRomDesc[] = {
	{ "curse (prototype - jun 26, 1990).bin", 0x080000, 0xdee8876d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cursep)
STD_ROM_FN(md_cursep)

struct BurnDriver BurnDrvmd_cursep = {
	"md_cursep", "md_curse", NULL, NULL, "1989",
	"Curse (Prototype, 19900626)\0", NULL, "U.S. License INTV Corp. / Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_cursepRomInfo, md_cursepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cutie Suzuki no Ringside Angel (Japan)
static struct BurnRomInfo md_cutiesuzRomDesc[] = {
	{ "cutie suzuki no ringside angel (jpn).bin", 0x080000, 0x13795dca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cutiesuz)
STD_ROM_FN(md_cutiesuz)

struct BurnDriver BurnDrvmd_cutiesuz = {
	"md_cutiesuz", NULL, NULL, NULL, "1990",
	"Cutie Suzuki no Ringside Angel (Japan)\0", NULL, "Asmik Ace", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_cutiesuzRomInfo, md_cutiesuzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// CutThroat Island (Euro, USA)
static struct BurnRomInfo md_cutthrRomDesc[] = {
	{ "cutthroat island (euro, usa).bin", 0x200000, 0xebabbc70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cutthr)
STD_ROM_FN(md_cutthr)

struct BurnDriver BurnDrvmd_cutthr = {
	"md_cutthr", NULL, NULL, NULL, "1995",
	"CutThroat Island (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_cutthrRomInfo, md_cutthrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// CutThroat Island (Prototype)
static struct BurnRomInfo md_cutthrpRomDesc[] = {
	{ "cipreview.bin", 0x200000, 0x7f4939f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cutthrp)
STD_ROM_FN(md_cutthrp)

struct BurnDriver BurnDrvmd_cutthrp = {
	"md_cutthrp", "md_cutthr", NULL, NULL, "1995",
	"CutThroat Island (Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_cutthrpRomInfo, md_cutthrpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// CyberBall (World)
static struct BurnRomInfo md_cyberbalRomDesc[] = {
	{ "mpr-13201.bin", 0x080000, 0x76120e96, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cyberbal)
STD_ROM_FN(md_cyberbal)

struct BurnDriver BurnDrvmd_cyberbal = {
	"md_cyberbal", NULL, NULL, NULL, "1990",
	"CyberBall (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_cyberbalRomInfo, md_cyberbalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cyborg Justice (Euro, USA)
static struct BurnRomInfo md_cyborgjRomDesc[] = {
	{ "mpr-15468.bin", 0x080000, 0xab0d1269, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cyborgj)
STD_ROM_FN(md_cyborgj)

struct BurnDriver BurnDrvmd_cyborgj = {
	"md_cyborgj", NULL, NULL, NULL, "1993",
	"Cyborg Justice (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_cyborgjRomInfo, md_cyborgjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cyborg Justice (Prototype)
static struct BurnRomInfo md_cyborgjpRomDesc[] = {
	{ "cyborg justice (beta).bin", 0x080000, 0x91daf11e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cyborgjp)
STD_ROM_FN(md_cyborgjp)

struct BurnDriver BurnDrvmd_cyborgjp = {
	"md_cyborgjp", "md_cyborgj", NULL, NULL, "1993",
	"Cyborg Justice (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_cyborgjpRomInfo, md_cyborgjpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Daffy Duck in Hollywood (Euro)
static struct BurnRomInfo md_daffyRomDesc[] = {
	{ "daffy duck in hollywood (euro).bin", 0x200000, 0x1fdc66b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daffy)
STD_ROM_FN(md_daffy)

struct BurnDriver BurnDrvmd_daffy = {
	"md_daffy", NULL, NULL, NULL, "1994",
	"Daffy Duck in Hollywood (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_daffyRomInfo, md_daffyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Daffy Duck in Hollywood (Euro, Prototype)
static struct BurnRomInfo md_daffypRomDesc[] = {
	{ "daffy duck in hollywood (euro) (beta).bin", 0x200000, 0x0eaa4740, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daffyp)
STD_ROM_FN(md_daffyp)

struct BurnDriver BurnDrvmd_daffyp = {
	"md_daffyp", "md_daffy", NULL, NULL, "1994",
	"Daffy Duck in Hollywood (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_daffypRomInfo, md_daffypRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dahna Megami Tanjou (Japan)
static struct BurnRomInfo md_dahnamRomDesc[] = {
	{ "dahna megami tanjou (jpn).bin", 0x100000, 0x4602584f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dahnam)
STD_ROM_FN(md_dahnam)

struct BurnDriver BurnDrvmd_dahnam = {
	"md_dahnam", NULL, NULL, NULL, "1991",
	"Dahna Megami Tanjou (Japan)\0", NULL, "IGS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dahnamRomInfo, md_dahnamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dahna - Goddess' Birth (E) (Hack)
static struct BurnRomInfo md_dahnagbRomDesc[] = {
	{ "Dahna - Goddess' Birth (E).bin", 0x100000, 0xd04d2df7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dahnagb)
STD_ROM_FN(md_dahnagb)

struct BurnDriver BurnDrvmd_dahnagb = {
	"md_dahnagb", "md_dahnam", NULL, NULL, "2016",
	"Dahna - Goddess' Birth (Hack, English)\0", NULL, "cccmar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dahnagbRomInfo, md_dahnagbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dahna (Korea)
static struct BurnRomInfo md_dahnamkRomDesc[] = {
	{ "mpr-14636.bin", 0x100000, 0x10829ea1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dahnamk)
STD_ROM_FN(md_dahnamk)

struct BurnDriver BurnDrvmd_dahnamk = {
	"md_dahnamk", "md_dahnam", NULL, NULL, "199?",
	"Dahna (Korea)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dahnamkRomInfo, md_dahnamkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hercules (Unl)
static struct BurnRomInfo md_herculesRomDesc[] = {
	{ "hercules (unl).bin", 0x100000, 0xff75d9d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hercules)
STD_ROM_FN(md_hercules)

struct BurnDriver BurnDrvmd_hercules = {
	"md_hercules", "md_dahnam", NULL, NULL, "1997",
	"Hercules (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_herculesRomInfo, md_herculesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dangerous Seed (Japan)
static struct BurnRomInfo md_dangseedRomDesc[] = {
	{ "dangerous seed (jpn).bin", 0x080000, 0xa2990031, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dangseed)
STD_ROM_FN(md_dangseed)

struct BurnDriver BurnDrvmd_dangseed = {
	"md_dangseed", NULL, NULL, NULL, "1990",
	"Dangerous Seed (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_dangseedRomInfo, md_dangseedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dark Castle (Euro, USA)
static struct BurnRomInfo md_darkcastRomDesc[] = {
	{ "dark castle (euro, usa).bin", 0x080000, 0x0464aca4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_darkcast)
STD_ROM_FN(md_darkcast)

struct BurnDriver BurnDrvmd_darkcast = {
	"md_darkcast", NULL, NULL, NULL, "1991",
	"Dark Castle (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_darkcastRomInfo, md_darkcastRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Darwin 4081 (Japan, Korea)
static struct BurnRomInfo md_darwinRomDesc[] = {
	{ "darwin 4081 (jpn, kor).bin", 0x080000, 0x7a33b0cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_darwin)
STD_ROM_FN(md_darwin)

struct BurnDriver BurnDrvmd_darwin = {
	"md_darwin", NULL, NULL, NULL, "1990",
	"Darwin 4081 (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_darwinRomInfo, md_darwinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Darwin 4081 (Prototype, 19900221)
static struct BurnRomInfo md_darwinpRomDesc[] = {
	{ "darwin 4081 (prototype - feb 21, 1990).bin", 0x080000, 0xdb68d1ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_darwinp)
STD_ROM_FN(md_darwinp)

struct BurnDriver BurnDrvmd_darwinp = {
	"md_darwinp", "md_darwin", NULL, NULL, "1990",
	"Darwin 4081 (Prototype, 19900221)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_darwinpRomInfo, md_darwinpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dashin' Desperadoes (USA)
static struct BurnRomInfo md_dashdesRomDesc[] = {
	{ "dashin' desperadoes (usa).bin", 0x100000, 0xdcb76fb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dashdes)
STD_ROM_FN(md_dashdes)

struct BurnDriver BurnDrvmd_dashdes = {
	"md_dashdes", NULL, NULL, NULL, "1993",
	"Dashin' Desperadoes (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dashdesRomInfo, md_dashdesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dashin' Desperadoes (Euro, Prototype)
static struct BurnRomInfo md_dashdesp1RomDesc[] = {
	{ "dashin' desperadoes (beta 2).bin", 0x100000, 0x98d224a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dashdesp1)
STD_ROM_FN(md_dashdesp1)

struct BurnDriver BurnDrvmd_dashdesp1 = {
	"md_dashdesp1", "md_dashdes", NULL, NULL, "1993",
	"Dashin' Desperadoes (Euro, Prototype)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dashdesp1RomInfo, md_dashdesp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dashin' Desperadoes (USA, Prototype)
static struct BurnRomInfo md_dashdesp2RomDesc[] = {
	{ "dashin' desperadoes (beta).bin", 0x100000, 0xadaffc3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dashdesp2)
STD_ROM_FN(md_dashdesp2)

struct BurnDriver BurnDrvmd_dashdesp2 = {
	"md_dashdesp2", "md_dashdes", NULL, NULL, "1993",
	"Dashin' Desperadoes (USA, Prototype)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dashdesp2RomInfo, md_dashdesp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// David Crane's Amazing Tennis (USA)
static struct BurnRomInfo md_amazntenRomDesc[] = {
	{ "david crane's amazing tennis (usa).bin", 0x100000, 0x9177088c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_amaznten)
STD_ROM_FN(md_amaznten)

struct BurnDriver BurnDrvmd_amaznten = {
	"md_amaznten", NULL, NULL, NULL, "1992",
	"David Crane's Amazing Tennis (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_amazntenRomInfo, md_amazntenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// David Robinson's Supreme Court (Euro, USA)
static struct BurnRomInfo md_drscRomDesc[] = {
	{ "mpr-14835.bin", 0x080000, 0x512b7599, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drsc)
STD_ROM_FN(md_drsc)

struct BurnDriver BurnDrvmd_drsc = {
	"md_drsc", NULL, NULL, NULL, "1992",
	"David Robinson's Supreme Court (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_drscRomInfo, md_drscRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// David Robinson Basketball (Japan)
static struct BurnRomInfo md_drscjRomDesc[] = {
	{ "david robinson basketball (jpn).bin", 0x080000, 0x56164b00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drscj)
STD_ROM_FN(md_drscj)

struct BurnDriver BurnDrvmd_drscj = {
	"md_drscj", "md_drsc", NULL, NULL, "1992",
	"David Robinson Basketball (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_drscjRomInfo, md_drscjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Davis Cup World Tour (Euro, USA, 199307)
static struct BurnRomInfo md_daviscupRomDesc[] = {
	{ "davis cup world tour (euro, usa) (july 1993).bin", 0x100000, 0x894686f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daviscup)
STD_ROM_FN(md_daviscup)

struct BurnDriver BurnDrvmd_daviscup = {
	"md_daviscup", NULL, NULL, NULL, "1993",
	"Davis Cup World Tour (Euro, USA, 199307)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_daviscupRomInfo, md_daviscupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Davis Cup World Tour (Euro, USA, 199306)
static struct BurnRomInfo md_daviscupaRomDesc[] = {
	{ "davis cup world tour (euro, usa) (june 1993).bin", 0x100000, 0x7c6b0646, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daviscupa)
STD_ROM_FN(md_daviscupa)

struct BurnDriver BurnDrvmd_daviscupa = {
	"md_daviscupa", "md_daviscup", NULL, NULL, "1993",
	"Davis Cup World Tour (Euro, USA, 199306)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_daviscupaRomInfo, md_daviscupaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Davis Cup World Tour Tennis 2 (Prototype 1)
static struct BurnRomInfo md_daviscp2RomDesc[] = {
	{ "davis cup world tour tennis 2 (beta 1).bin", 0x200000, 0x6f4183c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daviscp2)
STD_ROM_FN(md_daviscp2)

struct BurnDriver BurnDrvmd_daviscp2 = {
	"md_daviscp2", NULL, NULL, NULL, "199?",
	"Davis Cup World Tour Tennis 2 (Prototype 1)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_daviscp2RomInfo, md_daviscp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Davis Cup II (USA, Prototype)
static struct BurnRomInfo md_daviscp2aRomDesc[] = {
	{ "davis cup ii (usa) (prototype).bin", 0x200000, 0x76f2bed8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daviscp2a)
STD_ROM_FN(md_daviscp2a)

struct BurnDriver BurnDrvmd_daviscp2a = {
	"md_daviscp2a", "md_daviscp2", NULL, NULL, "199?",
	"Davis Cup II (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_daviscp2aRomInfo, md_daviscp2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Daze Before Christmas (Oceania)
static struct BurnRomInfo md_dazexmasRomDesc[] = {
	{ "daze before christmas (aus).bin", 0x200000, 0xb95e25c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dazexmas)
STD_ROM_FN(md_dazexmas)

struct BurnDriver BurnDrvmd_dazexmas = {
	"md_dazexmas", NULL, NULL, NULL, "1994",
	"Daze Before Christmas (Oceania)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dazexmasRomInfo, md_dazexmasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Daze Before Christmas (Oceania, Prototype)
static struct BurnRomInfo md_dazexmaspRomDesc[] = {
	{ "daze before christmas (aus) (beta).bin", 0x200000, 0x317c9491, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dazexmasp)
STD_ROM_FN(md_dazexmasp)

struct BurnDriver BurnDrvmd_dazexmasp = {
	"md_dazexmasp", "md_dazexmas", NULL, NULL, "1994",
	"Daze Before Christmas (Oceania, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dazexmaspRomInfo, md_dazexmaspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Deadly Moves (USA)
static struct BurnRomInfo md_deadlymvRomDesc[] = {
	{ "deadly moves (usa).bin", 0x100000, 0x35cbd237, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deadlymv)
STD_ROM_FN(md_deadlymv)

struct BurnDriver BurnDrvmd_deadlymv = {
	"md_deadlymv", NULL, NULL, NULL, "1992",
	"Deadly Moves (USA)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_deadlymvRomInfo, md_deadlymvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Power Athlete (Japan, Korea)
static struct BurnRomInfo md_powerathRomDesc[] = {
	{ "power athlete (jpn, kor).bin", 0x100000, 0xb41b77cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_powerath)
STD_ROM_FN(md_powerath)

struct BurnDriver BurnDrvmd_powerath = {
	"md_powerath", "md_deadlymv", NULL, NULL, "1992",
	"Power Athlete (Japan, Korea)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_powerathRomInfo, md_powerathRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Death and Return of Superman, The (USA)
static struct BurnRomInfo md_deathretRomDesc[] = {
	{ "death and return of superman, the (usa).bin", 0x200000, 0x982242d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deathret)
STD_ROM_FN(md_deathret)

struct BurnDriver BurnDrvmd_deathret = {
	"md_deathret", NULL, NULL, NULL, "1995",
	"Death and Return of Superman, The (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_deathretRomInfo, md_deathretRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Death Duel (USA)
static struct BurnRomInfo md_deathdlRomDesc[] = {
	{ "death duel (usa).bin", 0x100000, 0xa9804dcc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deathdl)
STD_ROM_FN(md_deathdl)

struct BurnDriver BurnDrvmd_deathdl = {
	"md_deathdl", NULL, NULL, NULL, "1992",
	"Death Duel (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_deathdlRomInfo, md_deathdlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// DecapAttack (Euro, USA, Korea)
static struct BurnRomInfo md_decapattRomDesc[] = {
	{ "DecapAttack (1991)(Sega).bin", 524288, 0x73dc0dd8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_decapatt)
STD_ROM_FN(md_decapatt)

struct BurnDriver BurnDrvmd_decapatt = {
	"md_decapatt", NULL, NULL, NULL, "1991",
	"DecapAttack (Euro, USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_decapattRomInfo, md_decapattRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Demolition Man (Euro, USA)
static struct BurnRomInfo md_demomanRomDesc[] = {
	{ "demolition man (euro, usa).bin", 0x200000, 0x5ff71877, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_demoman)
STD_ROM_FN(md_demoman)

struct BurnDriver BurnDrvmd_demoman = {
	"md_demoman", NULL, NULL, NULL, "1995",
	"Demolition Man (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_demomanRomInfo, md_demomanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Demolition Man (USA, Prototype)
static struct BurnRomInfo md_demomanpRomDesc[] = {
	{ "demolition man (usa) (beta).bin", 0x200000, 0x57ffad7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_demomanp)
STD_ROM_FN(md_demomanp)

struct BurnDriver BurnDrvmd_demomanp = {
	"md_demomanp", "md_demoman", NULL, NULL, "1995",
	"Demolition Man (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_demomanpRomInfo, md_demomanpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Euro, USA)
static struct BurnRomInfo md_desrtdemRomDesc[] = {
	{ "desert demolition starring road runner and wile e. coyote (euro, usa).bin", 0x100000, 0xc287343d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdem)
STD_ROM_FN(md_desrtdem)

struct BurnDriver BurnDrvmd_desrtdem = {
	"md_desrtdem", NULL, NULL, NULL, "1994",
	"Desert Demolition (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemRomInfo, md_desrtdemRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941206)
static struct BurnRomInfo md_desrtdemp9RomDesc[] = {
	{ "desert demolition (prototype - dec 06, 1994).bin", 0x0ed0ad, 0xd27fe9e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp9)
STD_ROM_FN(md_desrtdemp9)

struct BurnDriver BurnDrvmd_desrtdemp9 = {
	"md_desrtdemp9", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941206)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp9RomInfo, md_desrtdemp9RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941208)
static struct BurnRomInfo md_desrtdemp8RomDesc[] = {
	{ "desert demolition (prototype - dec 08, 1994).bin", 0x0fdfb8, 0x69aaeab6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp8)
STD_ROM_FN(md_desrtdemp8)

struct BurnDriver BurnDrvmd_desrtdemp8 = {
	"md_desrtdemp8", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941208)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp8RomInfo, md_desrtdemp8RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941212-B)
static struct BurnRomInfo md_desrtdemp7RomDesc[] = {
	{ "desert demolition (prototype - dec 12, 1994 - b).bin", 0x100000, 0x16f19283, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp7)
STD_ROM_FN(md_desrtdemp7)

struct BurnDriver BurnDrvmd_desrtdemp7 = {
	"md_desrtdemp7", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941212-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp7RomInfo, md_desrtdemp7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941212)
static struct BurnRomInfo md_desrtdemp6RomDesc[] = {
	{ "desert demolition (prototype - dec 12, 1994).bin", 0x0ec988, 0x5dad49d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp6)
STD_ROM_FN(md_desrtdemp6)

struct BurnDriver BurnDrvmd_desrtdemp6 = {
	"md_desrtdemp6", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941212)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp6RomInfo, md_desrtdemp6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941213)
static struct BurnRomInfo md_desrtdemp5RomDesc[] = {
	{ "desert demolition (prototype - dec 13, 1994).bin", 0x0fde9c, 0x375dee15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp5)
STD_ROM_FN(md_desrtdemp5)

struct BurnDriver BurnDrvmd_desrtdemp5 = {
	"md_desrtdemp5", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941213)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp5RomInfo, md_desrtdemp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941214)
static struct BurnRomInfo md_desrtdemp4RomDesc[] = {
	{ "desert demolition (prototype - dec 14, 1994).bin", 0x0fde9c, 0x39f9f304, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp4)
STD_ROM_FN(md_desrtdemp4)

struct BurnDriver BurnDrvmd_desrtdemp4 = {
	"md_desrtdemp4", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941214)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp4RomInfo, md_desrtdemp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941215)
static struct BurnRomInfo md_desrtdemp3RomDesc[] = {
	{ "desert demolition (prototype - dec 15, 1994).bin", 0x0fde9c, 0x5109736a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp3)
STD_ROM_FN(md_desrtdemp3)

struct BurnDriver BurnDrvmd_desrtdemp3 = {
	"md_desrtdemp3", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941215)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp3RomInfo, md_desrtdemp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941216)
static struct BurnRomInfo md_desrtdemp2RomDesc[] = {
	{ "desert demolition (prototype - dec 16, 1994).bin", 0x100000, 0x573fabfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp2)
STD_ROM_FN(md_desrtdemp2)

struct BurnDriver BurnDrvmd_desrtdemp2 = {
	"md_desrtdemp2", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941216)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp2RomInfo, md_desrtdemp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Demolition (Prototype, 19941219)
static struct BurnRomInfo md_desrtdemp1RomDesc[] = {
	{ "desert demolition (prototype - dec 19, 1994).bin", 0x0fde9c, 0xb0ece758, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_desrtdemp1)
STD_ROM_FN(md_desrtdemp1)

struct BurnDriver BurnDrvmd_desrtdemp1 = {
	"md_desrtdemp1", "md_desrtdem", NULL, NULL, "1994",
	"Desert Demolition (Prototype, 19941219)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_desrtdemp1RomInfo, md_desrtdemp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Strike (Euro, USA)
static struct BurnRomInfo md_dstrikeRomDesc[] = {
	{ "desert strike (euro, usa).bin", 0x100000, 0x67a9860b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dstrike)
STD_ROM_FN(md_dstrike)

struct BurnDriver BurnDrvmd_dstrike = {
	"md_dstrike", NULL, NULL, NULL, "1992",
	"Desert Strike (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dstrikeRomInfo, md_dstrikeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveUSANTSCDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Desert Strike (Japan, Korea)
static struct BurnRomInfo md_dstrikejRomDesc[] = {
	{ "desert strike (jpn, kor).bin", 0x100000, 0x1e740145, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dstrikej)
STD_ROM_FN(md_dstrikej)

struct BurnDriver BurnDrvmd_dstrikej = {
	"md_dstrikej", "md_dstrike", NULL, NULL, "1993",
	"Desert Strike (Japan, Korea)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dstrikejRomInfo, md_dstrikejRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devilish - The Next Possession (USA)
static struct BurnRomInfo md_devilishRomDesc[] = {
	{ "devilish - the next possession (usa).bin", 0x080000, 0xd3f300ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devilish)
STD_ROM_FN(md_devilish)

struct BurnDriver BurnDrvmd_devilish = {
	"md_devilish", NULL, NULL, NULL, "1992",
	"Devilish - The Next Possession (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BREAKOUT, 0,
	MegadriveGetZipName, md_devilishRomInfo, md_devilishRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devilish - The Next Possession (Prototype, 19920116)
static struct BurnRomInfo md_devilishpRomDesc[] = {
	{ "devilish - the next possession (prototype - jan 16, 1992).bin", 0x080000, 0x6c8eb5a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devilishp)
STD_ROM_FN(md_devilishp)

struct BurnDriver BurnDrvmd_devilishp = {
	"md_devilishp", "md_devilish", NULL, NULL, "1992",
	"Devilish - The Next Possession (Prototype, 19920116)\0", NULL, "Sage's Creation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BREAKOUT, 0,
	MegadriveGetZipName, md_devilishpRomInfo, md_devilishpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bad Omen (Japan, Korea)
static struct BurnRomInfo md_badomenRomDesc[] = {
	{ "bad omen (jpn, kor).bin", 0x080000, 0x975693ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_badomen)
STD_ROM_FN(md_badomen)

struct BurnDriver BurnDrvmd_badomen = {
	"md_badomen", "md_devilish", NULL, NULL, "1992",
	"Bad Omen (Japan, Korea)\0", NULL, "Hot-B", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BREAKOUT, 0,
	MegadriveGetZipName, md_badomenRomInfo, md_badomenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dial Q o Mawase! (Japan) (Unl)
static struct BurnRomInfo md_dialqoRomDesc[] = {
	{ "dial q o mawase! (jpn) (unl).bin", 0x100000, 0xc632e5af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dialqo)
STD_ROM_FN(md_dialqo)

struct BurnDriver BurnDrvmd_dialqo = {
	"md_dialqo", NULL, NULL, NULL, "1992",
	"Dial Q o Mawase! (Japan) (Unl)\0", NULL, "Studio Fazzy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dialqoRomInfo, md_dialqoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dick Tracy (World)
static struct BurnRomInfo md_dicktrRomDesc[] = {
	{ "mpr-13661.bin", 0x080000, 0xef887533, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dicktr)
STD_ROM_FN(md_dicktr)

struct BurnDriver BurnDrvmd_dicktr = {
	"md_dicktr", NULL, NULL, NULL, "1990",
	"Dick Tracy (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dicktrRomInfo, md_dicktrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dick Vitale's 'Awesome, Baby!' College Hoops (USA)
static struct BurnRomInfo md_dickvitlRomDesc[] = {
	{ "dick vitale's 'awesome, baby!' college hoops (usa).bin", 0x200000, 0x1312cf22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dickvitl)
STD_ROM_FN(md_dickvitl)

struct BurnDriver BurnDrvmd_dickvitl = {
	"md_dickvitl", NULL, NULL, NULL, "1994",
	"Dick Vitale's 'Awesome, Baby!' College Hoops (USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_dickvitlRomInfo, md_dickvitlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dino Dini's Soccer (Euro)
static struct BurnRomInfo md_dinodiniRomDesc[] = {
	{ "dino dini's soccer (euro).bin", 0x100000, 0x4608f53a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinodini)
STD_ROM_FN(md_dinodini)

struct BurnDriver BurnDrvmd_dinodini = {
	"md_dinodini", NULL, NULL, NULL, "1994",
	"Dino Dini's Soccer (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_dinodiniRomInfo, md_dinodiniRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dino Land (USA)
static struct BurnRomInfo md_dinolandRomDesc[] = {
	{ "dino land (usa).bin", 0x080000, 0x5fe351b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinoland)
STD_ROM_FN(md_dinoland)

struct BurnDriver BurnDrvmd_dinoland = {
	"md_dinoland", NULL, NULL, NULL, "1991",
	"Dino Land (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dinolandRomInfo, md_dinolandRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chou Touryuu Retsuden - Dino Land (Japan)
static struct BurnRomInfo md_dinolandjRomDesc[] = {
	{ "chou touryuu retsuden - dino land (jpn).bin", 0x080000, 0x81f939de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinolandj)
STD_ROM_FN(md_dinolandj)

struct BurnDriver BurnDrvmd_dinolandj = {
	"md_dinolandj", "md_dinoland", NULL, NULL, "1991",
	"Chou Touryuu Retsuden - Dino Land (Japan)\0", NULL, "Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dinolandjRomInfo, md_dinolandjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dinosaur's Tale, A (USA)
static struct BurnRomInfo md_dinotaleRomDesc[] = {
	{ "dinosaur's tale, a (usa).bin", 0x100000, 0x70155b5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinotale)
STD_ROM_FN(md_dinotale)

struct BurnDriver BurnDrvmd_dinotale = {
	"md_dinotale", NULL, NULL, NULL, "1993",
	"Dinosaur's Tale, A (USA)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dinotaleRomInfo, md_dinotaleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom Mason's Dinosaurs for Hire (USA)
static struct BurnRomInfo md_dinohireRomDesc[] = {
	{ "dinosaurs for hire (usa).bin", 0x100000, 0x39351146, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinohire)
STD_ROM_FN(md_dinohire)

struct BurnDriver BurnDrvmd_dinohire = {
	"md_dinohire", NULL, NULL, NULL, "1993",
	"Tom Mason's Dinosaurs for Hire (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_dinohireRomInfo, md_dinohireRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom Mason's Dinosaurs for Hire (Prototype, 19930426)
static struct BurnRomInfo md_dinohirep3RomDesc[] = {
	{ "dinosaurs for hire (prototype - apr 26, 1993).bin", 0x100000, 0x54c77d3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinohirep3)
STD_ROM_FN(md_dinohirep3)

struct BurnDriver BurnDrvmd_dinohirep3 = {
	"md_dinohirep3", "md_dinohire", NULL, NULL, "1993",
	"Tom Mason's Dinosaurs for Hire (Prototype, 19930426)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_dinohirep3RomInfo, md_dinohirep3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom Mason's Dinosaurs for Hire (Prototype, 19930427)
static struct BurnRomInfo md_dinohirep2RomDesc[] = {
	{ "dinosaurs for hire (prototype - apr 27, 1993).bin", 0x100000, 0x16000453, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinohirep2)
STD_ROM_FN(md_dinohirep2)

struct BurnDriver BurnDrvmd_dinohirep2 = {
	"md_dinohirep2", "md_dinohire", NULL, NULL, "1993",
	"Tom Mason's Dinosaurs for Hire (Prototype, 19930427)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_dinohirep2RomInfo, md_dinohirep2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom Mason's Dinosaurs for Hire (Prototype, 19930502)
static struct BurnRomInfo md_dinohirep1RomDesc[] = {
	{ "dinosaurs for hire (prototype - may 02, 1993).bin", 0x100000, 0x8954dee9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinohirep1)
STD_ROM_FN(md_dinohirep1)

struct BurnDriver BurnDrvmd_dinohirep1 = {
	"md_dinohirep1", "md_dinohire", NULL, NULL, "1993",
	"Tom Mason's Dinosaurs for Hire (Prototype, 19930502)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_dinohirep1RomInfo, md_dinohirep1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney Collection, The - Mickey and Donald (Euro)
static struct BurnRomInfo md_disneyclRomDesc[] = {
	{ "disney collection, the (euro).bin", 0x100000, 0xadfde883, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_disneycl)
STD_ROM_FN(md_disneycl)

struct BurnDriver BurnDrvmd_disneycl = {
	"md_disneycl", NULL, NULL, NULL, "1996",
	"Disney Collection, The - Mickey and Donald (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_disneyclRomInfo, md_disneyclRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Divine Sealing (Japan) (Unl)
static struct BurnRomInfo md_divineRomDesc[] = {
	{ "divine sealing (jpn) (unl).bin", 0x100000, 0xca72973c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_divine)
STD_ROM_FN(md_divine)

struct BurnDriver BurnDrvmd_divine = {
	"md_divine", NULL, NULL, NULL, "1991",
	"Divine Sealing (Japan) (Unl)\0", NULL, "CYX", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_divineRomInfo, md_divineRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// DJ Boy (Euro)
static struct BurnRomInfo md_djboyRomDesc[] = {
	{ "mpr-14560.bin", 0x080000, 0x860e749a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_djboy)
STD_ROM_FN(md_djboy)

struct BurnDriver BurnDrvmd_djboy = {
	"md_djboy", NULL, NULL, NULL, "1991",
	"DJ Boy (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_djboyRomInfo, md_djboyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// DJ Boy (Japan)
static struct BurnRomInfo md_djboyjRomDesc[] = {
	{ "dj boy (jpn).bin", 0x080000, 0x202abaa8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_djboyj)
STD_ROM_FN(md_djboyj)

struct BurnDriver BurnDrvmd_djboyj = {
	"md_djboyj", "md_djboy", NULL, NULL, "1990",
	"DJ Boy (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_djboyjRomInfo, md_djboyjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// DJ Boy (USA)
static struct BurnRomInfo md_djboyuRomDesc[] = {
	{ "dj boy (usa).bin", 0x080000, 0xdc9f02db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_djboyu)
STD_ROM_FN(md_djboyu)

struct BurnDriver BurnDrvmd_djboyu = {
	"md_djboyu", "md_djboy", NULL, NULL, "1990",
	"DJ Boy (USA)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_djboyuRomInfo, md_djboyuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ikazuse! Koi no Doki Doki Penguin Land MD (Japan, SegaNet)
static struct BurnRomInfo md_dokidokiRomDesc[] = {
	{ "ikazuse! koi no doki doki penguin land md (jpn) (sn).bin", 0x040000, 0x0053bfd6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dokidoki)
STD_ROM_FN(md_dokidoki)

struct BurnDriver BurnDrvmd_dokidoki = {
	"md_dokidoki", NULL, NULL, NULL, "1991",
	"Ikazuse! Koi no Doki Doki Penguin Land MD (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_dokidokiRomInfo, md_dokidokiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ikazuse! Koi no Doki Doki Penguin Land MD (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_dokidokignkRomDesc[] = {
	{ "ikazuse! koi no doki doki penguin land md (jpn) (gnk).bin", 0x040000, 0x22736650, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dokidokignk)
STD_ROM_FN(md_dokidokignk)

struct BurnDriver BurnDrvmd_dokidokignk = {
	"md_dokidokignk", "md_dokidoki", NULL, NULL, "1991",
	"Ikazuse! Koi no Doki Doki Penguin Land MD (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_dokidokignkRomInfo, md_dokidokignkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dominus (USA, Prototype)
static struct BurnRomInfo md_dominusRomDesc[] = {
	{ "dominus (usa) (prototype).bin", 0x0c0000, 0x30006ebd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dominus)
STD_ROM_FN(md_dominus)

struct BurnDriver BurnDrvmd_dominus = {
	"md_dominus", NULL, NULL, NULL, "199?",
	"Dominus (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dominusRomInfo, md_dominusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Donald in Maui Mallard (Euro)
static struct BurnRomInfo md_mauimallRomDesc[] = {
	{ "donald in maui mallard (euro).bin", 0x300000, 0xb2dd857f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mauimall)
STD_ROM_FN(md_mauimall)

struct BurnDriver BurnDrvmd_mauimall = {
	"md_mauimall", NULL, NULL, NULL, "1995",
	"Donald in Maui Mallard (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mauimallRomInfo, md_mauimallRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Donald in Maui Mallard (Brazil)
static struct BurnRomInfo md_mauimallbRomDesc[] = {
	{ "mpr-19625-u.ic1", 0x300000, 0x5f9b9a48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mauimallb)
STD_ROM_FN(md_mauimallb)

struct BurnDriver BurnDrvmd_mauimallb = {
	"md_mauimallb", "md_mauimall", NULL, NULL, "1995",
	"Donald in Maui Mallard (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mauimallbRomInfo, md_mauimallbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Doom Troopers - The Mutant Chronicles (USA)
static struct BurnRomInfo md_doomtropRomDesc[] = {
	{ "doom troopers - the mutant chronicles (usa).bin", 0x200000, 0x11194414, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_doomtrop)
STD_ROM_FN(md_doomtrop)

struct BurnDriver BurnDrvmd_doomtrop = {
	"md_doomtrop", NULL, NULL, NULL, "1995",
	"Doom Troopers - The Mutant Chronicles (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_doomtropRomInfo, md_doomtropRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Doraemon - Yume Dorobou to 7-nin no Gozans (Japan)
static struct BurnRomInfo md_doraemonRomDesc[] = {
	{ "doraemon - yume dorobou to 7-nin no gozans (jpn).bin", 0x080000, 0xeeed1130, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_doraemon)
STD_ROM_FN(md_doraemon)

struct BurnDriver BurnDrvmd_doraemon = {
	"md_doraemon", NULL, NULL, NULL, "1993",
	"Doraemon - Yume Dorobou to 7-nin no Gozans (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_doraemonRomInfo, md_doraemonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Clutch (Euro)
static struct BurnRomInfo md_doubleclRomDesc[] = {
	{ "double clutch (euro).bin", 0x040000, 0xd98c623c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_doublecl)
STD_ROM_FN(md_doublecl)

struct BurnDriver BurnDrvmd_doublecl = {
	"md_doublecl", NULL, NULL, NULL, "1992",
	"Double Clutch (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_doubleclRomInfo, md_doubleclRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Dragon (Euro, USA)
static struct BurnRomInfo md_ddragonRomDesc[] = {
	{ "double dragon (euro, usa).bin", 0x080000, 0x054f5d53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon)
STD_ROM_FN(md_ddragon)

struct BurnDriver BurnDrvmd_ddragon = {
	"md_ddragon", NULL, NULL, NULL, "1993",
	"Double Dragon (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragonRomInfo, md_ddragonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Dragon II - The Revenge (Japan)
static struct BurnRomInfo md_ddragon2RomDesc[] = {
	{ "double dragon ii - the revenge (jpn).bin", 0x080000, 0xa8bfdbd6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon2)
STD_ROM_FN(md_ddragon2)

struct BurnDriver BurnDrvmd_ddragon2 = {
	"md_ddragon2", NULL, NULL, NULL, "1991",
	"Double Dragon II - The Revenge (Japan)\0", NULL, "Palsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragon2RomInfo, md_ddragon2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Dragon 3 - The Arcade Game (Euro, USA)
static struct BurnRomInfo md_ddragon3RomDesc[] = {
	{ "double dragon 3 - the arcade game (euro, usa).bin", 0x100000, 0xb36ab75c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon3)
STD_ROM_FN(md_ddragon3)

struct BurnDriver BurnDrvmd_ddragon3 = {
	"md_ddragon3", NULL, NULL, NULL, "1992",
	"Double Dragon 3 - The Arcade Game (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragon3RomInfo, md_ddragon3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Dragon V - The Shadow Falls (USA)
static struct BurnRomInfo md_ddragon5RomDesc[] = {
	{ "double dragon v - the shadow falls (usa).bin", 0x300000, 0x27e59e35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon5)
STD_ROM_FN(md_ddragon5)

struct BurnDriver BurnDrvmd_ddragon5 = {
	"md_ddragon5", NULL, NULL, NULL, "1994",
	"Double Dragon V - The Shadow Falls (USA)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ddragon5RomInfo, md_ddragon5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dr. Robotnik's Mean Bean Machine (Euro)
static struct BurnRomInfo md_drrobotnRomDesc[] = {
	{ "dr. robotnik's mean bean machine (euro).bin", 0x100000, 0x70680706, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drrobotn)
STD_ROM_FN(md_drrobotn)

struct BurnDriver BurnDrvmd_drrobotn = {
	"md_drrobotn", NULL, NULL, NULL, "1993",
	"Dr. Robotnik's Mean Bean Machine (Euro)\0", NULL, "Sega - Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ADV, FBF_SONIC,
	MegadriveGetZipName, md_drrobotnRomInfo, md_drrobotnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dr. Robotnik's Mean Bean Machine (Prototype B)
static struct BurnRomInfo md_drrobotnpRomDesc[] = {
	{ "dr. robotnik's mean bean machine (prototype b).bin", 0x100000, 0xc631bfff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drrobotnp)
STD_ROM_FN(md_drrobotnp)

struct BurnDriver BurnDrvmd_drrobotnp = {
	"md_drrobotnp", "md_drrobotn", NULL, NULL, "1993",
	"Dr. Robotnik's Mean Bean Machine (Prototype B)\0", NULL, "Sega - Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ADV, FBF_SONIC,
	MegadriveGetZipName, md_drrobotnpRomInfo, md_drrobotnpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dr. Robotnik's Mean Bean Machine (USA, Prototype)
static struct BurnRomInfo md_drrobotnupRomDesc[] = {
	{ "dr. robotnik's mean bean machine (usa) (beta).bin", 0x100000, 0x4d0e5273, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drrobotnup)
STD_ROM_FN(md_drrobotnup)

struct BurnDriver BurnDrvmd_drrobotnup = {
	"md_drrobotnup", "md_drrobotn", NULL, NULL, "1993",
	"Dr. Robotnik's Mean Bean Machine (USA, Prototype)\0", NULL, "Sega - Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ADV, FBF_SONIC,
	MegadriveGetZipName, md_drrobotnupRomInfo, md_drrobotnupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dr. Robotnik's Mean Bean Machine (USA)
static struct BurnRomInfo md_drrobotnuRomDesc[] = {
	{ "dr. robotnik's mean bean machine (usa).bin", 0x100000, 0xc7ca517f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drrobotnu)
STD_ROM_FN(md_drrobotnu)

struct BurnDriver BurnDrvmd_drrobotnu = {
	"md_drrobotnu", "md_drrobotn", NULL, NULL, "1993",
	"Dr. Robotnik's Mean Bean Machine (USA)\0", NULL, "Sega - Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ADV, FBF_SONIC,
	MegadriveGetZipName, md_drrobotnuRomInfo, md_drrobotnuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dong Gu Ri Te Chi Jak Jeon (Korea)
static struct BurnRomInfo md_dongguriRomDesc[] = {
	{ "dong gu ri te chi jak jeon (kor).bin", 0x100000, 0xe32f0b1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dongguri)
STD_ROM_FN(md_dongguri)

struct BurnDriver BurnDrvmd_dongguri = {
	"md_dongguri", "md_drrobotn", NULL, NULL, "199?",
	"Dong Gu Ri Te Chi Jak Jeon (Korea)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ADV, FBF_SONIC,
	MegadriveGetZipName, md_dongguriRomInfo, md_dongguriRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon - The Bruce Lee Story (Euro)
static struct BurnRomInfo md_dragonRomDesc[] = {
	{ "dragon - the bruce lee story (euro).bin", 0x200000, 0xfdeed51d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dragon)
STD_ROM_FN(md_dragon)

struct BurnDriver BurnDrvmd_dragon = {
	"md_dragon", NULL, NULL, NULL, "1993",
	"Dragon - The Bruce Lee Story (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 3, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dragonRomInfo, md_dragonRomName, NULL, NULL, NULL, NULL, Megadrive3pInputInfo, Megadrive3pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon - The Bruce Lee Story (USA)
static struct BurnRomInfo md_dragonuRomDesc[] = {
	{ "dragon - the bruce lee story (usa).bin", 0x200000, 0xefe850e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dragonu)
STD_ROM_FN(md_dragonu)

struct BurnDriver BurnDrvmd_dragonu = {
	"md_dragonu", "md_dragon", NULL, NULL, "1994",
	"Dragon - The Bruce Lee Story (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 3, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dragonuRomInfo, md_dragonuRomName, NULL, NULL, NULL, NULL, Megadrive3pInputInfo, Megadrive3pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Ball Z - Buyuu Retsuden (Japan)
static struct BurnRomInfo md_dbzRomDesc[] = {
	{ "dragon ball z - buyuu retsuden (jpn).bin", 0x200000, 0xaf8f3371, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dbz)
STD_ROM_FN(md_dbz)

struct BurnDriver BurnDrvmd_dbz = {
	"md_dbz", NULL, NULL, NULL, "1994",
	"Dragon Ball Z - Buyuu Retsuden (Japan)\0", NULL, "Bandai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dbzRomInfo, md_dbzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Ball Z - L'Appel du Destin (Euro, French)
static struct BurnRomInfo md_dbzfRomDesc[] = {
	{ "dragon ball z - l'appel du destin (france).bin", 0x200000, 0xf035c737, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dbzf)
STD_ROM_FN(md_dbzf)

struct BurnDriver BurnDrvmd_dbzf = {
	"md_dbzf", "md_dbz", NULL, NULL, "1994",
	"Dragon Ball Z - L'Appel du Destin (Euro, French)\0", NULL, "Bandai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dbzfRomInfo, md_dbzfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Ball Z - Buyuu Retsuden (Hack, Enhanced Colors)
// http://www.romhacking.net/hacks/5345/
static struct BurnRomInfo md_dbzecRomDesc[] = {
	{ "dragon ball z - buyuu retsuden (Hack, Enhanced Colors).bin", 2097152, 0x31834e9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dbzec)
STD_ROM_FN(md_dbzec)

struct BurnDriver BurnDrvmd_dbzec = {
	"md_dbzec", "md_dbz", NULL, NULL, "2020",
	"Dragon Ball Z - Buyuu Retsuden (Hack, Enhanced Colors)\0", NULL, "Donus87", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dbzecRomInfo, md_dbzecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Slayer - Eiyuu Densetsu (Japan)
static struct BurnRomInfo md_dslayedRomDesc[] = {
	{ "dragon slayer - eiyuu densetsu (jpn).bin", 0x200000, 0x01bc1604, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dslayed)
STD_ROM_FN(md_dslayed)

struct BurnDriver BurnDrvmd_dslayed = {
	"md_dslayed", NULL, NULL, NULL, "1994",
	"Dragon Slayer - Eiyuu Densetsu (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_dslayedRomInfo, md_dslayedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Slayer - Eiyuu Densetsu II (Japan)
static struct BurnRomInfo md_dslayed2RomDesc[] = {
	{ "dragon slayer - eiyuu densetsu ii (jpn).bin", 0x200000, 0x46924dc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dslayed2)
STD_ROM_FN(md_dslayed2)

struct BurnDriver BurnDrvmd_dslayed2 = {
	"md_dslayed2", NULL, NULL, NULL, "1995",
	"Dragon Slayer - Eiyuu Densetsu II (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_dslayed2RomInfo, md_dslayed2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon's Eye Plus - Shanghai III (Japan)
static struct BurnRomInfo md_shangh3RomDesc[] = {
	{ "dragon's eye plus - shanghai iii (jpn).bin", 0x040000, 0x81f0c3cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangh3)
STD_ROM_FN(md_shangh3)

struct BurnDriver BurnDrvmd_shangh3 = {
	"md_shangh3", NULL, NULL, NULL, "1991",
	"Dragon's Eye Plus - Shanghai III (Japan)\0", NULL, "Home Data", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_shangh3RomInfo, md_shangh3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon's Fury (Euro, USA)
static struct BurnRomInfo md_dfuryRomDesc[] = {
	{ "dragon's fury (euro, usa).bin", 0x080000, 0x58037bc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dfury)
STD_ROM_FN(md_dfury)

struct BurnDriver BurnDrvmd_dfury = {
	"md_dfury", NULL, NULL, NULL, "1992",
	"Dragon's Fury (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dfuryRomInfo, md_dfuryRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon's Lair (USA, Prototype)
static struct BurnRomInfo md_dlairRomDesc[] = {
	{ "dragon's lair (usa, prototype).bin", 0x080000, 0xa33eb522, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dlair)
STD_ROM_FN(md_dlair)

struct BurnDriver BurnDrvmd_dlair = {
	"md_dlair", NULL, NULL, NULL, "199?",
	"Dragon's Lair (USA, Prototype)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dlairRomInfo, md_dlairRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devil Crash MD (Japan)
static struct BurnRomInfo md_devlcrshRomDesc[] = {
	{ "devil crash md (jpn).bin", 0x080000, 0x4c4caad8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devlcrsh)
STD_ROM_FN(md_devlcrsh)

struct BurnDriver BurnDrvmd_devlcrsh = {
	"md_devlcrsh", "md_dfury", NULL, NULL, "1993",
	"Devil Crash MD (Japan)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_devlcrshRomInfo, md_devlcrshRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon's Revenge (Euro, USA)
static struct BurnRomInfo md_dragnrevRomDesc[] = {
	{ "dragon's revenge (euro, usa).bin", 0x100000, 0x841edbc0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dragnrev)
STD_ROM_FN(md_dragnrev)

struct BurnDriver BurnDrvmd_dragnrev = {
	"md_dragnrev", NULL, NULL, NULL, "1993",
	"Dragon's Revenge (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dragnrevRomInfo, md_dragnrevRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon's Revenge (Japan)
static struct BurnRomInfo md_dragnrevjRomDesc[] = {
	{ "dragon's revenge (japan).bin", 0x100000, 0xd8d2efd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dragnrevj)
STD_ROM_FN(md_dragnrevj)

struct BurnDriver BurnDrvmd_dragnrevj = {
	"md_dragnrevj", "md_dragnrev", NULL, NULL, "1993",
	"Dragon's Revenge (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dragnrevjRomInfo, md_dragnrevjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Duke Nukem 3D (Brazil)
static struct BurnRomInfo md_dukenk3dRomDesc[] = {
	{ "duke nukem 3d (bra).bin", 0x400000, 0x6bd2accb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dukenk3d)
STD_ROM_FN(md_dukenk3d)

struct BurnDriver BurnDrvmd_dukenk3d = {
	"md_dukenk3d", NULL, NULL, NULL, "1998",
	"Duke Nukem 3D (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dukenk3dRomInfo, md_dukenk3dRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dune II - Battle for Arrakis (Euro)
static struct BurnRomInfo md_dune2RomDesc[] = {
	{ "dune ii - battle for arrakis (euro).bin", 0x100000, 0xb58ae71d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dune2)
STD_ROM_FN(md_dune2)

struct BurnDriver BurnDrvmd_dune2 = {
	"md_dune2", NULL, NULL, NULL, "1993",
	"Dune II - Battle for Arrakis (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dune2RomInfo, md_dune2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dune II - Kampf um den Wustenplaneten (Euro, Germany)
static struct BurnRomInfo md_dune2gRomDesc[] = {
	{ "dune ii - kampf um den wustenplaneten (germany).bin", 0x100000, 0x39790728, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dune2g)
STD_ROM_FN(md_dune2g)

struct BurnDriver BurnDrvmd_dune2g = {
	"md_dune2g", "md_dune2", NULL, NULL, "1993",
	"Dune II - Kampf um den Wustenplaneten (Euro, Germany)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dune2gRomInfo, md_dune2gRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dune - The Battle for Arrakis (USA)
static struct BurnRomInfo md_duneuRomDesc[] = {
	{ "dune - the battle for arrakis (usa).bin", 0x100000, 0x4dea40ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_duneu)
STD_ROM_FN(md_duneu)

struct BurnDriver BurnDrvmd_duneu = {
	"md_duneu", "md_dune2", NULL, NULL, "1993",
	"Dune - The Battle for Arrakis (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_duneuRomInfo, md_duneuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dune - The Battle for Arrakis (Prototype, 19940111)
static struct BurnRomInfo md_dunepRomDesc[] = {
	{ "dune - the battle for arrakis (prototype - Jan 11, 1994).bin", 0x100000, 0x781cb285, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dunep)
STD_ROM_FN(md_dunep)

struct BurnDriver BurnDrvmd_dunep = {
	"md_dunep", "md_dune2", NULL, NULL, "1993",
	"Dune - The Battle for Arrakis (Prototype, 19940111)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dunepRomInfo, md_dunepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dungeons & Dragons - Warriors of the Eternal Sun (Euro, USA)
static struct BurnRomInfo md_ddwaresRomDesc[] = {
	{ "dungeons & dragons - warriors of the eternal sun (euro, usa).bin", 0x100000, 0xaf4a9cd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddwares)
STD_ROM_FN(md_ddwares)

struct BurnDriver BurnDrvmd_ddwares = {
	"md_ddwares", NULL, NULL, NULL, "1992",
	"Dungeons & Dragons - Warriors of the Eternal Sun (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_ddwaresRomInfo, md_ddwaresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Du Shen Zhi Meng Huan Poker (Taiwan) (Unl)
static struct BurnRomInfo md_DushenzhiRomDesc[] = {
	{ "Du Shen Zhi Meng Huan Poker.md", 1048576, 0x1d81a67c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Dushenzhi)
STD_ROM_FN(md_Dushenzhi)

struct BurnDriver Burnmd_Dushenzhi = {
	"md_dushenzhi", NULL, NULL, NULL, "1995",
	"Du Shen Zhi Meng Huan Poker (Taiwan) (Unl)\0", NULL, "Creaton Softech", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CARD, 0,
	MegadriveGetZipName, md_DushenzhiRomInfo, md_DushenzhiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dyna Brothers (Japan)
static struct BurnRomInfo md_dynabrRomDesc[] = {
	{ "dyna brothers (jpn).bin", 0x100000, 0x360c1b20, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dynabr)
STD_ROM_FN(md_dynabr)

struct BurnDriver BurnDrvmd_dynabr = {
	"md_dynabr", NULL, NULL, NULL, "1992",
	"Dyna Brothers (Japan)\0", NULL, "CRI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dynabrRomInfo, md_dynabrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dyna Brothers 2 (Japan)
static struct BurnRomInfo md_dynabr2RomDesc[] = {
	{ "dyna brothers 2 (jpn).bin", 0x200000, 0x47e0a64e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dynabr2)
STD_ROM_FN(md_dynabr2)

struct BurnDriver BurnDrvmd_dynabr2 = {
	"md_dynabr2", NULL, NULL, NULL, "1993",
	"Dyna Brothers 2 (Japan)\0", NULL, "CRI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dynabr2RomInfo, md_dynabr2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dyna Brothers 2 Special - Sega Channel (Japan, Sega Channel)
static struct BurnRomInfo md_dynabr2spRomDesc[] = {
	{ "dyna brothers 2 special - sega channel (jpn).bin", 0x280000, 0xba3554bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dynabr2sp)
STD_ROM_FN(md_dynabr2sp)

struct BurnDriver BurnDrvmd_dynabr2sp = {
	"md_dynabr2sp", "md_dynabr2", NULL, NULL, "1991",
	"Dyna Brothers 2 Special - Sega Channel (Japan, Sega Channel)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dynabr2spRomInfo, md_dynabr2spRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Duke (World, Rev. A)
static struct BurnRomInfo md_dyndukeRomDesc[] = {
	{ "mpr-13438a.bin", 0x080000, 0x246f0bda, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dynduke)
STD_ROM_FN(md_dynduke)

struct BurnDriver BurnDrvmd_dynduke = {
	"md_dynduke", NULL, NULL, NULL, "1990",
	"Dynamite Duke (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dyndukeRomInfo, md_dyndukeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Duke (World)
static struct BurnRomInfo md_dynduke1RomDesc[] = {
	{ "mpr-13438.bin", 0x080000, 0x39d01c8c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dynduke1)
STD_ROM_FN(md_dynduke1)

struct BurnDriver BurnDrvmd_dynduke1 = {
	"md_dynduke1", "md_dynduke", NULL, NULL, "1990",
	"Dynamite Duke (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dynduke1RomInfo, md_dynduke1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Euro, USA)
static struct BurnRomInfo md_dheadRomDesc[] = {
	{ "mpr-16990.bin", 0x200000, 0x3dfeeb77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dhead)
STD_ROM_FN(md_dhead)

struct BurnDriver BurnDrvmd_dhead = {
	"md_dhead", NULL, NULL, NULL, "1994",
	"Dynamite Headdy (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadRomInfo, md_dheadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Japan)
static struct BurnRomInfo md_dheadjRomDesc[] = {
	{ "dynamite headdy (jpn).bin", 0x200000, 0xd03cdb53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheadj)
STD_ROM_FN(md_dheadj)

struct BurnDriver BurnDrvmd_dheadj = {
	"md_dheadj", "md_dhead", NULL, NULL, "1994",
	"Dynamite Headdy (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadjRomInfo, md_dheadjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Japan, Prototype)
static struct BurnRomInfo md_dheadjpRomDesc[] = {
	{ "dynamite headdy (jpn) (beta).bin", 0x200000, 0x5c25e934, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheadjp)
STD_ROM_FN(md_dheadjp)

struct BurnDriver BurnDrvmd_dheadjp = {
	"md_dheadjp", "md_dhead", NULL, NULL, "1994",
	"Dynamite Headdy (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadjpRomInfo, md_dheadjpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Prototype, 19940614-CABEZA)
static struct BurnRomInfo md_dheadp3RomDesc[] = {
	{ "dynamite headdy (prototype - jun 14, 1994 - cabeza).bin", 0x200000, 0x971ef24c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheadp3)
STD_ROM_FN(md_dheadp3)

struct BurnDriver BurnDrvmd_dheadp3 = {
	"md_dheadp3", "md_dhead", NULL, NULL, "1994",
	"Dynamite Headdy (Prototype, 19940614-CABEZA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadp3RomInfo, md_dheadp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Prototype, 19940616)
static struct BurnRomInfo md_dheadp2RomDesc[] = {
	{ "dynamite headdy (prototype - jun 16, 1994).bin", 0x200000, 0xf8a96719, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheadp2)
STD_ROM_FN(md_dheadp2)

struct BurnDriver BurnDrvmd_dheadp2 = {
	"md_dheadp2", "md_dhead", NULL, NULL, "1994",
	"Dynamite Headdy (Prototype, 19940616)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadp2RomInfo, md_dheadp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Prototype, 19940622)
static struct BurnRomInfo md_dheadp1RomDesc[] = {
	{ "dynamite headdy (prototype - jun 22, 1994).bin", 0x200000, 0x61001ec8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheadp1)
STD_ROM_FN(md_dheadp1)

struct BurnDriver BurnDrvmd_dheadp1 = {
	"md_dheadp1", "md_dhead", NULL, NULL, "1994",
	"Dynamite Headdy (Prototype, 19940622)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadp1RomInfo, md_dheadp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Hack, English)
// Source : http://www.romhacking.net/translations/1113/
static struct BurnRomInfo md_dheadeRomDesc[] = {
	{ "dynamite headdy (english translation).bin", 0x200000, 0x003e54e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheade)
STD_ROM_FN(md_dheade)

struct BurnDriver BurnDrvmd_dheade = {
	"md_dheade", "md_dhead", NULL, NULL, "2007",
	"Dynamite Headdy (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadeRomInfo, md_dheadeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// EA Hockey (Euro)
static struct BurnRomInfo md_eahockeyRomDesc[] = {
	{ "ea hockey (euro).bin", 0x080000, 0x9bfc279c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eahockey)
STD_ROM_FN(md_eahockey)

struct BurnDriver BurnDrvmd_eahockey = {
	"md_eahockey", NULL, NULL, NULL, "1991",
	"EA Hockey (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_eahockeyRomInfo, md_eahockeyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// EA Hockey (Japan)
static struct BurnRomInfo md_eahockeyjRomDesc[] = {
	{ "ea hockey (jpn).bin", 0x080000, 0x9dcdc894, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eahockeyj)
STD_ROM_FN(md_eahockeyj)

struct BurnDriver BurnDrvmd_eahockeyj = {
	"md_eahockeyj", "md_eahockey", NULL, NULL, "1992",
	"EA Hockey (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_eahockeyjRomInfo, md_eahockeyjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL Hockey (USA)
static struct BurnRomInfo md_nhlRomDesc[] = {
	{ "nhl hockey (usa).bin", 0x080000, 0x2641653f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl)
STD_ROM_FN(md_nhl)

struct BurnDriver BurnDrvmd_nhl = {
	"md_nhl", NULL, NULL, NULL, "1991",
	"NHL Hockey (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlRomInfo, md_nhlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// EA Sports Double Header (Euro)
static struct BurnRomInfo md_easportsRomDesc[] = {
	{ "ea304.bin", 0x100000, 0xa0b54cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_easports)
STD_ROM_FN(md_easports)

struct BurnDriver BurnDrvmd_easports = {
	"md_easports", NULL, NULL, NULL, "1993",
	"EA Sports Double Header (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_easportsRomInfo, md_easportsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earnest Evans (USA)
static struct BurnRomInfo md_earnestRomDesc[] = {
	{ "earnest evans (usa).bin", 0x100000, 0xa243816d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_earnest)
STD_ROM_FN(md_earnest)

struct BurnDriver BurnDrvmd_earnest = {
	"md_earnest", NULL, NULL, NULL, "1992",
	"Earnest Evans (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_earnestRomInfo, md_earnestRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earthworm Jim (Euro)
static struct BurnRomInfo md_ejimRomDesc[] = {
	{ "earthworm jim (euro).bin", 0x300000, 0x1c07b337, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejim)
STD_ROM_FN(md_ejim)

struct BurnDriver BurnDrvmd_ejim = {
	"md_ejim", NULL, NULL, NULL, "1994",
	"Earthworm Jim (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejimRomInfo, md_ejimRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earthworm Jim (USA)
static struct BurnRomInfo md_ejimuRomDesc[] = {
	{ "earthworm jim (usa).bin", 0x300000, 0xdf3acf59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejimu)
STD_ROM_FN(md_ejimu)

struct BurnDriver BurnDrvmd_ejimu = {
	"md_ejimu", "md_ejim", NULL, NULL, "1994",
	"Earthworm Jim (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejimuRomInfo, md_ejimuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earthworm Jim (Prototype, 19940728)
static struct BurnRomInfo md_ejimpRomDesc[] = {
	{ "earthworm jim (prototype- jul 28,1994).bin", 0x300000, 0x24aa391b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejimp)
STD_ROM_FN(md_ejimp)

struct BurnDriver BurnDrvmd_ejimp = {
	"md_ejimp", "md_ejim", NULL, NULL, "1994",
	"Earthworm Jim (Prototype, 19940728)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejimpRomInfo, md_ejimpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earthworm Jim 2 (Euro)
static struct BurnRomInfo md_ejim2RomDesc[] = {
	{ "earthworm jim 2 (euro).bin", 0x300000, 0xaf235fdf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejim2)
STD_ROM_FN(md_ejim2)

struct BurnDriver BurnDrvmd_ejim2 = {
	"md_ejim2", NULL, NULL, NULL, "1995",
	"Earthworm Jim 2 (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejim2RomInfo, md_ejim2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earthworm Jim 2 (prototype, 19950824)
static struct BurnRomInfo md_ejim2pRomDesc[] = {
	{ "earthworm jim 2 (prototype - aug 24, 1995).bin", 0x300000, 0xf92a931d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejim2p)
STD_ROM_FN(md_ejim2p)

struct BurnDriver BurnDrvmd_ejim2p = {
	"md_ejim2p", "md_ejim2", NULL, NULL, "1995",
	"Earthworm Jim 2 (Protoype, 19950824)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejim2pRomInfo, md_ejim2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earthworm Jim 2 (USA)
static struct BurnRomInfo md_ejim2uRomDesc[] = {
	{ "earthworm jim 2 (usa).bin", 0x300000, 0xd57f8ba7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejim2u)
STD_ROM_FN(md_ejim2u)

struct BurnDriver BurnDrvmd_ejim2u = {
	"md_ejim2u", "md_ejim2", NULL, NULL, "1996",
	"Earthworm Jim 2 (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejim2uRomInfo, md_ejim2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco the Dolphin (Euro, USA, Korea)
static struct BurnRomInfo md_eccoRomDesc[] = {
	{ "mpr-15265.bin", 0x100000, 0x45547390, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco)
STD_ROM_FN(md_ecco)

struct BurnDriver BurnDrvmd_ecco = {
	"md_ecco", NULL, NULL, NULL, "1993",
	"Ecco the Dolphin (Euro, USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_eccoRomInfo, md_eccoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco the Dolphin (Japan)
static struct BurnRomInfo md_eccojRomDesc[] = {
	{ "mpr-15702.bin", 0x100000, 0x6520304d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eccoj)
STD_ROM_FN(md_eccoj)

struct BurnDriver BurnDrvmd_eccoj = {
	"md_eccoj", "md_ecco", NULL, NULL, "1993",
	"Ecco the Dolphin (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_eccojRomInfo, md_eccojRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco the Dolphin (Prototype, 19930421)
static struct BurnRomInfo md_eccopRomDesc[] = {
	{ "ecco the dolphin (prototype - apr 21, 1993).bin", 0x100000, 0x17e24509, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eccop)
STD_ROM_FN(md_eccop)

struct BurnDriver BurnDrvmd_eccop = {
	"md_eccop", "md_ecco", NULL, NULL, "1993",
	"Ecco the Dolphin (Prototype, 19930421)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_eccopRomInfo, md_eccopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco - The Tides of Time (Euro)
static struct BurnRomInfo md_ecco2RomDesc[] = {
	{ "ecco - the tides of time (euro).bin", 0x200000, 0x7b1bf89c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2)
STD_ROM_FN(md_ecco2)

struct BurnDriver BurnDrvmd_ecco2 = {
	"md_ecco2", NULL, NULL, NULL, "1994",
	"Ecco - The Tides of Time (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2RomInfo, md_ecco2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco - The Tides of Time (USA, Prototype)
static struct BurnRomInfo md_ecco2pRomDesc[] = {
	{ "ecco - the tides of time (beta).bin", 0x200000, 0x8db60749, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2p)
STD_ROM_FN(md_ecco2p)

struct BurnDriver BurnDrvmd_ecco2p = {
	"md_ecco2p", "md_ecco2", NULL, NULL, "1994",
	"Ecco - The Tides of Time (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2pRomInfo, md_ecco2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco - The Tides of Time (USA, Prototype, Alt)
static struct BurnRomInfo md_ecco2p1RomDesc[] = {
	{ "ecco - the tides of time (beta, alt).bin", 0x200000, 0x1d1470ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2p1)
STD_ROM_FN(md_ecco2p1)

struct BurnDriver BurnDrvmd_ecco2p1 = {
	"md_ecco2p1", "md_ecco2", NULL, NULL, "1994",
	"Ecco - The Tides of Time (USA, Prototype, Alt)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2p1RomInfo, md_ecco2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco - The Tides of Time (USA, Prototype, 19940429)
static struct BurnRomInfo md_ecco2p2RomDesc[] = {
	{ "ecco ii - the tides of time (prototype - apr 29, 1994).bin", 0x200000, 0x5af83ecb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2p2)
STD_ROM_FN(md_ecco2p2)

struct BurnDriver BurnDrvmd_ecco2p2 = {
	"md_ecco2p2", "md_ecco2", NULL, NULL, "1994",
	"Ecco - The Tides of Time (USA, Prototype, 19940429)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2p2RomInfo, md_ecco2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco the Dolphin II (Japan)
static struct BurnRomInfo md_ecco2jRomDesc[] = {
	{ "mpr-16996.bin", 0x200000, 0x062d439c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2j)
STD_ROM_FN(md_ecco2j)

struct BurnDriver BurnDrvmd_ecco2j = {
	"md_ecco2j", "md_ecco2", NULL, NULL, "1994",
	"Ecco the Dolphin II (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2jRomInfo, md_ecco2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco - The Tides of Time (USA, Prototype X11, 19940413)
static struct BurnRomInfo md_ecco2px11RomDesc[] = {
	{ "ecco - the tides of time (prototype x11 - apr 13, 1994).bin", 0x200000, 0xb5d64817, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2px11)
STD_ROM_FN(md_ecco2px11)

struct BurnDriver BurnDrvmd_ecco2px11 = {
	"md_ecco2px11", "md_ecco2", NULL, NULL, "1994",
	"Ecco - The Tides of Time (USA, Prototype X11, 19940413)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2px11RomInfo, md_ecco2px11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco - The Tides of Time (USA)
static struct BurnRomInfo md_ecco2uRomDesc[] = {
	{ "ecco - the tides of time (usa).bin", 0x200000, 0xccb21f98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ecco2u)
STD_ROM_FN(md_ecco2u)

struct BurnDriver BurnDrvmd_ecco2u = {
	"md_ecco2u", "md_ecco2", NULL, NULL, "1994",
	"Ecco - The Tides of Time (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_ecco2uRomInfo, md_ecco2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco Jr. (USA, Oceania, 199502)
static struct BurnRomInfo md_eccojrRomDesc[] = {
	{ "ecco jr. (usa, aus) (february 1995).bin", 0x100000, 0x6c6f4b89, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eccojr)
STD_ROM_FN(md_eccojr)

struct BurnDriver BurnDrvmd_eccojr = {
	"md_eccojr", NULL, NULL, NULL, "1995",
	"Ecco Jr. (USA, Oceania, 199502)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_eccojrRomInfo, md_eccojrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ecco Jr. (USA, Oceania, 199503)
static struct BurnRomInfo md_eccojr1RomDesc[] = {
	{ "ecco jr. (usa, aus) (march 1995).bin", 0x100000, 0x3c517975, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eccojr1)
STD_ROM_FN(md_eccojr1)

struct BurnDriver BurnDrvmd_eccojr1 = {
	"md_eccojr1", "md_eccojr", NULL, NULL, "1995",
	"Ecco Jr. (USA, Oceania, 199503)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_eccojr1RomInfo, md_eccojr1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// El Viento (USA)
static struct BurnRomInfo md_elvientoRomDesc[] = {
	{ "mpr-14336.bin", 0x100000, 0x070a1ceb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elviento)
STD_ROM_FN(md_elviento)

struct BurnDriver BurnDrvmd_elviento = {
	"md_elviento", NULL, NULL, NULL, "1991",
	"El Viento (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_elvientoRomInfo, md_elvientoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// El Viento (Japan)
static struct BurnRomInfo md_elvientojRomDesc[] = {
	{ "el viento (jpn).bin", 0x100000, 0x6091c36e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elvientoj)
STD_ROM_FN(md_elvientoj)

struct BurnDriver BurnDrvmd_elvientoj = {
	"md_elvientoj", "md_elviento", NULL, NULL, "1991",
	"El Viento (Japan)\0", NULL, "Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_elvientojRomInfo, md_elvientojRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Elemental Master (USA)
static struct BurnRomInfo md_elemastRomDesc[] = {
	{ "elemental master (usa).bin", 0x080000, 0x390918c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elemast)
STD_ROM_FN(md_elemast)

struct BurnDriver BurnDrvmd_elemast = {
	"md_elemast", NULL, NULL, NULL, "1993",
	"Elemental Master (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_elemastRomInfo, md_elemastRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Elemental Master (Japan)
static struct BurnRomInfo md_elemastjRomDesc[] = {
	{ "elemental master (jpn).bin", 0x080000, 0x5f553e29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elemastj)
STD_ROM_FN(md_elemastj)

struct BurnDriver BurnDrvmd_elemastj = {
	"md_elemastj", "md_elemast", NULL, NULL, "1990",
	"Elemental Master (Japan)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_elemastjRomInfo, md_elemastjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eliminate Down (Japan)
static struct BurnRomInfo md_elimdownRomDesc[] = {
	{ "eliminate down (jpn).bin", 0x100000, 0x48467542, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elimdown)
STD_ROM_FN(md_elimdown)

struct BurnDriver BurnDrvmd_elimdown = {
	"md_elimdown", NULL, NULL, NULL, "1993",
	"Eliminate Down (Japan)\0", NULL, "Soft Vision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_elimdownRomInfo, md_elimdownRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Elitserien 95 (Sweden)
static struct BurnRomInfo md_elit95RomDesc[] = {
	{ "swed9584.bin", 0x200000, 0xe10a25c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elit95)
STD_ROM_FN(md_elit95)

struct BurnDriver BurnDrvmd_elit95 = {
	"md_elit95", NULL, NULL, NULL, "1994",
	"Elitserien 95 (Sweden)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_elit95RomInfo, md_elit95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Elitserien 96 (Sweden)
static struct BurnRomInfo md_elit96RomDesc[] = {
	{ "elitserien 96 (sweden).bin", 0x200000, 0x9821d0a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elit96)
STD_ROM_FN(md_elit96)

struct BurnDriver BurnDrvmd_elit96 = {
	"md_elit96", NULL, NULL, NULL, "1995",
	"Elitserien 96 (Sweden)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_elit96RomInfo, md_elit96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Empire of Steel (Euro)
static struct BurnRomInfo md_empsteelRomDesc[] = {
	{ "empire of steel (euro).bin", 0x100000, 0xe5517b77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_empsteel)
STD_ROM_FN(md_empsteel)

struct BurnDriver BurnDrvmd_empsteel = {
	"md_empsteel", NULL, NULL, NULL, "1992",
	"Empire of Steel (Euro)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_empsteelRomInfo, md_empsteelRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Steel Empire, The (USA)
static struct BurnRomInfo md_steelempRomDesc[] = {
	{ "steel empire (usa).bin", 0x100000, 0xd0e7a0b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_steelemp)
STD_ROM_FN(md_steelemp)

struct BurnDriver BurnDrvmd_steelemp = {
	"md_steelemp", "md_empsteel", NULL, NULL, "1992",
	"Steel Empire, The (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_steelempRomInfo, md_steelempRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Koutetsu Teikoku (Japan)
static struct BurnRomInfo md_koteteikRomDesc[] = {
	{ "koutetsu teikoku (jpn).bin", 0x100000, 0x755d0b8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_koteteik)
STD_ROM_FN(md_koteteik)

struct BurnDriver BurnDrvmd_koteteik = {
	"md_koteteik", "md_empsteel", NULL, NULL, "1992",
	"Koutetsu Teikoku (Japan)\0", NULL, "Hot-B", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_koteteikRomInfo, md_koteteikRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Euro)
static struct BurnRomInfo md_tazmarsRomDesc[] = {
	{ "taz in escape from mars (euro).bin", 0x200000, 0x62100099, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmars)
STD_ROM_FN(md_tazmars)

struct BurnDriver BurnDrvmd_tazmars = {
	"md_tazmars", NULL, NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsRomInfo, md_tazmarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940418)
static struct BurnRomInfo md_tazmarsp10RomDesc[] = {
	{ "taz in escape from mars (prototype - apr 18, 1994).bin", 0x200000, 0xbfa776ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp10)
STD_ROM_FN(md_tazmarsp10)

struct BurnDriver BurnDrvmd_tazmarsp10 = {
	"md_tazmarsp10", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940418)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp10RomInfo, md_tazmarsp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940602)
static struct BurnRomInfo md_tazmarsp06RomDesc[] = {
	{ "taz in escape from mars (prototype - jun 02, 1994).bin", 0x200000, 0x39f345c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp06)
STD_ROM_FN(md_tazmarsp06)

struct BurnDriver BurnDrvmd_tazmarsp06 = {
	"md_tazmarsp06", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940602)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp06RomInfo, md_tazmarsp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940607)
static struct BurnRomInfo md_tazmarsp05RomDesc[] = {
	{ "taz in escape from mars (prototype - jun 07, 1994).bin", 0x200000, 0x3481e709, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp05)
STD_ROM_FN(md_tazmarsp05)

struct BurnDriver BurnDrvmd_tazmarsp05 = {
	"md_tazmarsp05", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940607)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp05RomInfo, md_tazmarsp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940610)
static struct BurnRomInfo md_tazmarsp04RomDesc[] = {
	{ "taz in escape from mars (prototype - jun 10, 1994).bin", 0x200000, 0x832f4cb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp04)
STD_ROM_FN(md_tazmarsp04)

struct BurnDriver BurnDrvmd_tazmarsp04 = {
	"md_tazmarsp04", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940610)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp04RomInfo, md_tazmarsp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940614)
static struct BurnRomInfo md_tazmarsp03RomDesc[] = {
	{ "taz in escape from mars (prototype - jun 14, 1994).bin", 0x200000, 0x2badb65b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp03)
STD_ROM_FN(md_tazmarsp03)

struct BurnDriver BurnDrvmd_tazmarsp03 = {
	"md_tazmarsp03", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940614)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp03RomInfo, md_tazmarsp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940618-A)
static struct BurnRomInfo md_tazmarsp02RomDesc[] = {
	{ "taz in escape from mars (prototype - jun 18, 1994 - a).bin", 0x200000, 0x3c4b1e9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp02)
STD_ROM_FN(md_tazmarsp02)

struct BurnDriver BurnDrvmd_tazmarsp02 = {
	"md_tazmarsp02", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940618-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp02RomInfo, md_tazmarsp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940620)
static struct BurnRomInfo md_tazmarsp01RomDesc[] = {
	{ "taz in escape from mars (prototype - jun 20, 1994).bin", 0x200000, 0xf00f4203, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp01)
STD_ROM_FN(md_tazmarsp01)

struct BurnDriver BurnDrvmd_tazmarsp01 = {
	"md_tazmarsp01", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940620)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp01RomInfo, md_tazmarsp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940309)
static struct BurnRomInfo md_tazmarsp11RomDesc[] = {
	{ "taz in escape from mars (prototype - mar 09, 1994).bin", 0x1d9936, 0xe3c2271e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp11)
STD_ROM_FN(md_tazmarsp11)

struct BurnDriver BurnDrvmd_tazmarsp11 = {
	"md_tazmarsp11", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940309)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp11RomInfo, md_tazmarsp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940509)
static struct BurnRomInfo md_tazmarsp09RomDesc[] = {
	{ "taz in escape from mars (prototype - may 09, 1994).bin", 0x200000, 0x11727086, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp09)
STD_ROM_FN(md_tazmarsp09)

struct BurnDriver BurnDrvmd_tazmarsp09 = {
	"md_tazmarsp09", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940509)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp09RomInfo, md_tazmarsp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940518)
static struct BurnRomInfo md_tazmarsp08RomDesc[] = {
	{ "taz in escape from mars (prototype - may 18, 1994).bin", 0x0b9584, 0x6e2666de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp08)
STD_ROM_FN(md_tazmarsp08)

struct BurnDriver BurnDrvmd_tazmarsp08 = {
	"md_tazmarsp08", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940518)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp08RomInfo, md_tazmarsp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (Prototype, 19940523)
static struct BurnRomInfo md_tazmarsp07RomDesc[] = {
	{ "taz in escape from mars (prototype - may 23, 1994).bin", 0x200000, 0xea344fd2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsp07)
STD_ROM_FN(md_tazmarsp07)

struct BurnDriver BurnDrvmd_tazmarsp07 = {
	"md_tazmarsp07", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (Prototype, 19940523)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsp07RomInfo, md_tazmarsp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape from Mars Starring Taz (USA)
static struct BurnRomInfo md_tazmarsuRomDesc[] = {
	{ "taz in escape from mars (usa).bin", 0x200000, 0x62009f8c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarsu)
STD_ROM_FN(md_tazmarsu)

struct BurnDriver BurnDrvmd_tazmarsu = {
	"md_tazmarsu", "md_tazmars", NULL, NULL, "1994",
	"Escape from Mars Starring Taz (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarsuRomInfo, md_tazmarsuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN Baseball Tonight (USA)
static struct BurnRomInfo md_espnbbRomDesc[] = {
	{ "espn baseball tonight (usa).bin", 0x200000, 0x96d8440c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_espnbb)
STD_ROM_FN(md_espnbb)

struct BurnDriver BurnDrvmd_espnbb = {
	"md_espnbb", NULL, NULL, NULL, "1995",
	"ESPN Baseball Tonight (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_espnbbRomInfo, md_espnbbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN National Hockey Night (USA)
static struct BurnRomInfo md_espnhnRomDesc[] = {
	{ "espn national hockey night (usa).bin", 0x200000, 0x1d08828c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_espnhn)
STD_ROM_FN(md_espnhn)

struct BurnDriver BurnDrvmd_espnhn = {
	"md_espnhn", NULL, NULL, NULL, "1994",
	"ESPN National Hockey Night (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_espnhnRomInfo, md_espnhnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN National Hockey Night (USA, Prototype)
static struct BurnRomInfo md_espnhnpRomDesc[] = {
	{ "espn national hockey night (usa) (beta).bin", 0x200000, 0xa427814a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_espnhnp)
STD_ROM_FN(md_espnhnp)

struct BurnDriver BurnDrvmd_espnhnp = {
	"md_espnhnp", "md_espnhn", NULL, NULL, "1994",
	"ESPN National Hockey Night (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_espnhnpRomInfo, md_espnhnpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN Speedworld (USA)
static struct BurnRomInfo md_espnspedRomDesc[] = {
	{ "espn speed world (usa).bin", 0x200000, 0xf50be478, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_espnsped)
STD_ROM_FN(md_espnsped)

struct BurnDriver BurnDrvmd_espnsped = {
	"md_espnsped", NULL, NULL, NULL, "1994",
	"ESPN Speedworld (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_espnspedRomInfo, md_espnspedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ESPN Sunday Night NFL (USA)
static struct BurnRomInfo md_espnnflRomDesc[] = {
	{ "espn sunday night nfl (usa).bin", 0x200000, 0x61e9c309, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_espnnfl)
STD_ROM_FN(md_espnnfl)

struct BurnDriver BurnDrvmd_espnnfl = {
	"md_espnnfl", NULL, NULL, NULL, "1994",
	"ESPN Sunday Night NFL (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_espnnflRomInfo, md_espnnflRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cyber Police ESWAT (Japan, Rev. 0)
static struct BurnRomInfo md_eswatjRomDesc[] = {
	{ "mpr-13192.bin", 0x080000, 0x87b636a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eswatj)
STD_ROM_FN(md_eswatj)

struct BurnDriver BurnDrvmd_eswatj = {
	"md_eswatj", "md_eswat", NULL, NULL, "1990",
	"Cyber Police ESWAT (Japan, Rev. 0)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_eswatjRomInfo, md_eswatjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eternal Champions (Euro)
static struct BurnRomInfo md_eternalcRomDesc[] = {
	{ "mpr-16212+mpr-16213.bin", 0x300000, 0xb9512f5e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eternalc)
STD_ROM_FN(md_eternalc)

struct BurnDriver BurnDrvmd_eternalc = {
	"md_eternalc", NULL, NULL, NULL, "1994",
	"Eternal Champions (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_eternalcRomInfo, md_eternalcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eternal Champions (Euro, Prototype)
static struct BurnRomInfo md_eternalcpRomDesc[] = {
	{ "eternal champions (euro) (beta).bin", 0x300000, 0xe0665f06, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eternalcp)
STD_ROM_FN(md_eternalcp)

struct BurnDriver BurnDrvmd_eternalcp = {
	"md_eternalcp", "md_eternalc", NULL, NULL, "1994",
	"Eternal Champions (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_eternalcpRomInfo, md_eternalcpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eternal Champions (Japan, Korea)
static struct BurnRomInfo md_eternalcjRomDesc[] = {
	{ "eternal champions (jpn, kor).bin", 0x300000, 0x66aa3c64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eternalcj)
STD_ROM_FN(md_eternalcj)

struct BurnDriver BurnDrvmd_eternalcj = {
	"md_eternalcj", "md_eternalc", NULL, NULL, "1994",
	"Eternal Champions (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_eternalcjRomInfo, md_eternalcjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eternal Champions (Japan, Prototype, 19931117)
static struct BurnRomInfo md_eternalcjpRomDesc[] = {
	{ "eternal champions (jpn) (prototype - nov 17, 1993).bin", 0x2ff4b0, 0xc486b439, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eternalcjp)
STD_ROM_FN(md_eternalcjp)

struct BurnDriver BurnDrvmd_eternalcjp = {
	"md_eternalcjp", "md_eternalc", NULL, NULL, "1994",
	"Eternal Champions (Japan, Prototype, 19931117)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_eternalcjpRomInfo, md_eternalcjpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eternal Champions (USA, Prototype, 19931117)
static struct BurnRomInfo md_eternalcupRomDesc[] = {
	{ "eternal champions (usa) (prototype - nov 17, 1993).bin", 0x300000, 0x48f1a42e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eternalcup)
STD_ROM_FN(md_eternalcup)

struct BurnDriver BurnDrvmd_eternalcup = {
	"md_eternalcup", "md_eternalc", NULL, NULL, "1994",
	"Eternal Champions (USA, Prototype, 19931117)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_eternalcupRomInfo, md_eternalcupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// European Club Soccer (Euro)
static struct BurnRomInfo md_euroclubRomDesc[] = {
	{ "mpr-14776.bin", 0x080000, 0x6a5cf104, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_euroclub)
STD_ROM_FN(md_euroclub)

struct BurnDriver BurnDrvmd_euroclub = {
	"md_euroclub", NULL, NULL, NULL, "1992",
	"European Club Soccer (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_euroclubRomInfo, md_euroclubRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Trophy Soccer (USA)
static struct BurnRomInfo md_worldtsRomDesc[] = {
	{ "world trophy soccer (usa).bin", 0x080000, 0x6e3edc7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldts)
STD_ROM_FN(md_worldts)

struct BurnDriver BurnDrvmd_worldts = {
	"md_worldts", "md_euroclub", NULL, NULL, "1992",
	"World Trophy Soccer (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_worldtsRomInfo, md_worldtsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// J. League Champion Soccer (Japan)
static struct BurnRomInfo md_jlcsRomDesc[] = {
	{ "j. league champion soccer (jpn).bin", 0x080000, 0x453c405e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jlcs)
STD_ROM_FN(md_jlcs)

struct BurnDriver BurnDrvmd_jlcs = {
	"md_jlcs", "md_euroclub", NULL, NULL, "1993",
	"J. League Champion Soccer (Japan)\0", NULL, "Game Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_jlcsRomInfo, md_jlcsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Exile (USA)
static struct BurnRomInfo md_exileRomDesc[] = {
	{ "exile (usa).bin", 0x100000, 0x1b569dc2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exile)
STD_ROM_FN(md_exile)

struct BurnDriver BurnDrvmd_exile = {
	"md_exile", NULL, NULL, NULL, "1991",
	"Exile (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_exileRomInfo, md_exileRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Exile - Toki no Hazama e (Japan)
static struct BurnRomInfo md_exilejRomDesc[] = {
	{ "exile - toki no hazama e (jpn).bin", 0x100000, 0x880bf311, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exilej)
STD_ROM_FN(md_exilej)

struct BurnDriver BurnDrvmd_exilej = {
	"md_exilej", "md_exile", NULL, NULL, "1991",
	"Exile - Toki no Hazama e (Japan)\0", NULL, "Riot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_exilejRomInfo, md_exilejRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Exo Squad (Euro)
static struct BurnRomInfo md_exosquadRomDesc[] = {
	{ "exo squad (euro).bin", 0x100000, 0xb599b9f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exosquad)
STD_ROM_FN(md_exosquad)

struct BurnDriver BurnDrvmd_exosquad = {
	"md_exosquad", NULL, NULL, NULL, "1995",
	"Exo Squad (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_exosquadRomInfo, md_exosquadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Exo Squad (USA)
static struct BurnRomInfo md_exosquaduRomDesc[] = {
	{ "exo squad (usa).bin", 0x100000, 0x10ec03f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exosquadu)
STD_ROM_FN(md_exosquadu)

struct BurnDriver BurnDrvmd_exosquadu = {
	"md_exosquadu", "md_exosquad", NULL, NULL, "1995",
	"Exo Squad (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_exosquaduRomInfo, md_exosquaduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Exo Squad (USA, Prototype)
static struct BurnRomInfo md_exosquadupRomDesc[] = {
	{ "exo squad (usa) (beta).bin", 0x100000, 0x70edf964, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exosquadup)
STD_ROM_FN(md_exosquadup)

struct BurnDriver BurnDrvmd_exosquadup = {
	"md_exosquadup", "md_exosquad", NULL, NULL, "1995",
	"Exo Squad (USA, Prototype)\0", NULL, "Playmates Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_exosquadupRomInfo, md_exosquadupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Exodus - Journey to the Promised Land (USA) (Unl)
static struct BurnRomInfo md_exodusRomDesc[] = {
	{ "exodus - journey to the promised land (usa) (unl).bin", 0x080000, 0x22e6fc04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exodus)
STD_ROM_FN(md_exodus)

struct BurnDriver BurnDrvmd_exodus = {
	"md_exodus", NULL, NULL, NULL, "1993",
	"Exodus - Journey to the Promised Land (USA) (Unl)\0", NULL, "Wisdom Tree", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE, 0,
	MegadriveGetZipName, md_exodusRomInfo, md_exodusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-117 Night Storm (Euro, USA)
static struct BurnRomInfo md_f117RomDesc[] = {
	{ "f-117 night storm (euro, usa).bin", 0x200000, 0x1bf67a07, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f117)
STD_ROM_FN(md_f117)

struct BurnDriver BurnDrvmd_f117 = {
	"md_f117", NULL, NULL, NULL, "1993",
	"F-117 Night Storm (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f117RomInfo, md_f117RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-117 Stealth - Operation Night Storm (Japan)
static struct BurnRomInfo md_f117jRomDesc[] = {
	{ "f-117 stealth - operation night storm (jpn).bin", 0x200000, 0xea6e421a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f117j)
STD_ROM_FN(md_f117j)

struct BurnDriver BurnDrvmd_f117j = {
	"md_f117j", "md_f117", NULL, NULL, "1994",
	"F-117 Stealth - Operation Night Storm (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f117jRomInfo, md_f117jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-15 Strike Eagle II (Euro)
static struct BurnRomInfo md_f15se2RomDesc[] = {
	{ "f-15 strike eagle ii (euro).bin", 0x100000, 0xe98ee370, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f15se2)
STD_ROM_FN(md_f15se2)

struct BurnDriver BurnDrvmd_f15se2 = {
	"md_f15se2", NULL, NULL, NULL, "1993",
	"F-15 Strike Eagle II (Euro)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f15se2RomInfo, md_f15se2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-15 Strike Eagle II (USA)
static struct BurnRomInfo md_f15se2uRomDesc[] = {
	{ "f-15 strike eagle ii (usa).bin", 0x100000, 0x412c4d60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f15se2u)
STD_ROM_FN(md_f15se2u)

struct BurnDriver BurnDrvmd_f15se2u = {
	"md_f15se2u", "md_f15se2", NULL, NULL, "1993",
	"F-15 Strike Eagle II (USA)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f15se2uRomInfo, md_f15se2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-15 Strike Eagle II (USA, Prototype)
static struct BurnRomInfo md_f15se2upRomDesc[] = {
	{ "f-15 strike eagle ii (usa) (beta).bin", 0x100000, 0xfd4f5a01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f15se2up)
STD_ROM_FN(md_f15se2up)

struct BurnDriver BurnDrvmd_f15se2up = {
	"md_f15se2up", "md_f15se2", NULL, NULL, "1993",
	"F-15 Strike Eagle II (USA, Prototype)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f15se2upRomInfo, md_f15se2upRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-22 Interceptor (Euro, USA, 199206)
static struct BurnRomInfo md_f22RomDesc[] = {
	{ "f-22 interceptor (euro, usa) (june 1992).bin", 0x0c0000, 0xdd19b2b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f22)
STD_ROM_FN(md_f22)

struct BurnDriver BurnDrvmd_f22 = {
	"md_f22", NULL, NULL, NULL, "1991",
	"F-22 Interceptor (Euro, USA, 199206)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f22RomInfo, md_f22RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-22 Interceptor (Euro, USA, Prototype)
static struct BurnRomInfo md_f22pRomDesc[] = {
	{ "f-22 interceptor (euro, usa) (beta).bin", 0x0c0000, 0xd6a880a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f22p)
STD_ROM_FN(md_f22p)

struct BurnDriver BurnDrvmd_f22p = {
	"md_f22p", "md_f22", NULL, NULL, "1991",
	"F-22 Interceptor (Euro, USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f22pRomInfo, md_f22pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-22 Interceptor (Japan)
static struct BurnRomInfo md_f22jRomDesc[] = {
	{ "f-22 interceptor (jpn).bin", 0x0c0000, 0xfb55c785, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f22j)
STD_ROM_FN(md_f22j)

struct BurnDriver BurnDrvmd_f22j = {
	"md_f22j", "md_f22", NULL, NULL, "1993",
	"F-22 Interceptor (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f22jRomInfo, md_f22jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F1 (Euro)
static struct BurnRomInfo md_f1RomDesc[] = {
	{ "mpr-15834.bin", 0x100000, 0xfbdd4520, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f1)
STD_ROM_FN(md_f1)

struct BurnDriver BurnDrvmd_f1 = {
	"md_f1", NULL, NULL, NULL, "1993",
	"F1 (Euro)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_f1RomInfo, md_f1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Formula One (USA)
static struct BurnRomInfo md_formula1RomDesc[] = {
	{ "formula one (usa).bin", 0x100000, 0xccd73738, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_formula1)
STD_ROM_FN(md_formula1)

struct BurnDriver BurnDrvmd_formula1 = {
	"md_formula1", "md_f1", NULL, NULL, "1993",
	"Formula One (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_formula1RomInfo, md_formula1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F1 - World Championship Edition (Euro)
static struct BurnRomInfo md_f1wcRomDesc[] = {
	{ "f1 - world championship edition (euro).bin", 0x200000, 0x74cee0a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f1wc)
STD_ROM_FN(md_f1wc)

struct BurnDriver BurnDrvmd_f1wc = {
	"md_f1wc", NULL, NULL, NULL, "1993",
	"F1 - World Championship Edition (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_f1wcRomInfo, md_f1wcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F1 - World Championship Edition (Euro, Prototype)
static struct BurnRomInfo md_f1wcpRomDesc[] = {
	{ "f1 - world championship edition (euro) (beta).bin", 0x200000, 0x2269ed6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f1wcp)
STD_ROM_FN(md_f1wcp)

struct BurnDriver BurnDrvmd_f1wcp = {
	"md_f1wcp", "md_f1wc", NULL, NULL, "1993",
	"F1 - World Championship Edition (Euro, Prototype)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_f1wcpRomInfo, md_f1wcpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F1 Circus MD (Japan)
static struct BurnRomInfo md_f1circusRomDesc[] = {
	{ "f1 circus md (jpn).bin", 0x080000, 0x5d30befb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f1circus)
STD_ROM_FN(md_f1circus)

struct BurnDriver BurnDrvmd_f1circus = {
	"md_f1circus", NULL, NULL, NULL, "1991",
	"F1 Circus MD (Japan)\0", NULL, "Nichibutsu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_f1circusRomInfo, md_f1circusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// F-22 Interceptor (Euro, USA, 199109)
static struct BurnRomInfo md_f22aRomDesc[] = {
	{ "f-22_intercept_f-202-4.u1", 0x080000, 0x649771f8, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
	{ "f-22_intercept_f-202-1.u2", 0x020000, 0xd3d7cbb8, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_080000  },
};

STD_ROM_PICK(md_f22a)
STD_ROM_FN(md_f22a)

struct BurnDriver BurnDrvmd_f22a = {
	"md_f22a", "md_f22", NULL, NULL, "1991",
	"F-22 Interceptor (Euro, USA, 199109)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_f22aRomInfo, md_f22aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Faery Tale Adventure, The (Euro, USA)
static struct BurnRomInfo md_faerytalRomDesc[] = {
	{ "faery tale adventure, the (euro, usa).bin", 0x080000, 0x963f4969, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_faerytal)
STD_ROM_FN(md_faerytal)

struct BurnDriver BurnDrvmd_faerytal = {
	"md_faerytal", NULL, NULL, NULL, "1991",
	"Faery Tale Adventure, The (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_faerytalRomInfo, md_faerytalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Family Feud (USA)
static struct BurnRomInfo md_famfeudRomDesc[] = {
	{ "family feud (usa).bin", 0x080000, 0x1aa628b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_famfeud)
STD_ROM_FN(md_famfeud)

struct BurnDriver BurnDrvmd_famfeud = {
	"md_famfeud", NULL, NULL, NULL, "1993",
	"Family Feud (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_famfeudRomInfo, md_famfeudRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fantasia (World, Rev. A)
static struct BurnRomInfo md_fantasiaRomDesc[] = {
	{ "mpr-14028a.bin", 0x080000, 0xfc43df2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fantasia)
STD_ROM_FN(md_fantasia)

struct BurnDriver BurnDrvmd_fantasia = {
	"md_fantasia", NULL, NULL, NULL, "1991",
	"Fantasia (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_fantasiaRomInfo, md_fantasiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fantasia (World)
static struct BurnRomInfo md_fantasia1RomDesc[] = {
	{ "mpr-14028.bin", 0x080000, 0xd351b242, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fantasia1)
STD_ROM_FN(md_fantasia1)

struct BurnDriver BurnDrvmd_fantasia1 = {
	"md_fantasia1", "md_fantasia", NULL, NULL, "1991",
	"Fantasia (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_fantasia1RomInfo, md_fantasia1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fantastic Dizzy (Euro, USA)
static struct BurnRomInfo md_fantdizzRomDesc[] = {
	{ "fantastic dizzy (euro, usa).bin", 0x080000, 0x46447e7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fantdizz)
STD_ROM_FN(md_fantdizz)

struct BurnDriver BurnDrvmd_fantdizz = {
	"md_fantdizz", NULL, NULL, NULL, "1991",
	"Fantastic Dizzy (Euro, USA)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_fantdizzRomInfo, md_fantdizzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fantastic Dizzy (Euro, USA, Alt)
static struct BurnRomInfo md_fantdizz1RomDesc[] = {
	{ "fantastic dizzy (euro, usa) (alt).bin", 0x080000, 0x86b2a235, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fantdizz1)
STD_ROM_FN(md_fantdizz1)

struct BurnDriver BurnDrvmd_fantdizz1 = {
	"md_fantdizz1", "md_fantdizz", NULL, NULL, "1991",
	"Fantastic Dizzy (Euro, USA, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_fantdizz1RomInfo, md_fantdizz1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fastest 1 (Japan)
static struct BurnRomInfo md_fastest1RomDesc[] = {
	{ "fastest 1 (jpn).bin", 0x080000, 0xbb43f0de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fastest1)
STD_ROM_FN(md_fastest1)

struct BurnDriver BurnDrvmd_fastest1 = {
	"md_fastest1", NULL, NULL, NULL, "1991",
	"Fastest 1 (Japan)\0", NULL, "Human Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_fastest1RomInfo, md_fastest1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Fury (Euro, Korea)
static struct BurnRomInfo md_fatfuryRomDesc[] = {
	{ "fatal fury (euro, kor).bin", 0x180000, 0x2e730a91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatfury)
STD_ROM_FN(md_fatfury)

struct BurnDriver BurnDrvmd_fatfury = {
	"md_fatfury", NULL, NULL, NULL, "1993",
	"Fatal Fury (Euro, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fatfuryRomInfo, md_fatfuryRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Fury (USA)
static struct BurnRomInfo md_fatfuryuRomDesc[] = {
	{ "fatal fury (usa).bin", 0x180000, 0x98d49170, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatfuryu)
STD_ROM_FN(md_fatfuryu)

struct BurnDriver BurnDrvmd_fatfuryu = {
	"md_fatfuryu", "md_fatfury", NULL, NULL, "1993",
	"Fatal Fury (USA)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fatfuryuRomInfo, md_fatfuryuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Garou Densetsu - Shukumei no Tatakai (Japan)
static struct BurnRomInfo md_garouRomDesc[] = {
	{ "garou densetsu - shukumei no tatakai (jpn).bin", 0x180000, 0xbf3e3fa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_garou)
STD_ROM_FN(md_garou)

struct BurnDriver BurnDrvmd_garou = {
	"md_garou", "md_fatfury", NULL, NULL, "1993",
	"Garou Densetsu - Shukumei no Tatakai (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_garouRomInfo, md_garouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Fury 2 (USA, Korea)
static struct BurnRomInfo md_fatfury2RomDesc[] = {
	{ "fatal fury 2 (usa, kor).bin", 0x300000, 0x1b1754cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatfury2)
STD_ROM_FN(md_fatfury2)

struct BurnDriver BurnDrvmd_fatfury2 = {
	"md_fatfury2", NULL, NULL, NULL, "1994",
	"Fatal Fury 2 (USA, Korea)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fatfury2RomInfo, md_fatfury2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Garou Densetsu 2 - Aratanaru Tatakai (Japan)
static struct BurnRomInfo md_garou2RomDesc[] = {
	{ "mpr-16704+mpr-16710.bin", 0x300000, 0x2af4427f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_garou2)
STD_ROM_FN(md_garou2)

struct BurnDriver BurnDrvmd_garou2 = {
	"md_garou2", "md_fatfury2", NULL, NULL, "1994",
	"Garou Densetsu 2 - Aratanaru Tatakai (Japan)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_garou2RomInfo, md_garou2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Labyrinth (Euro, USA)
static struct BurnRomInfo md_fatallabRomDesc[] = {
	{ "fatal labyrinth (euro, usa).bin", 0x020000, 0x5f0bd984, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatallab)
STD_ROM_FN(md_fatallab)

struct BurnDriver BurnDrvmd_fatallab = {
	"md_fatallab", NULL, NULL, NULL, "1991",
	"Fatal Labyrinth (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_fatallabRomInfo, md_fatallabRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shi no Meikyuu - Labyrinth of Death (Japan, SegaNet)
static struct BurnRomInfo md_labdeathRomDesc[] = {
	{ "shi no meikyuu - labyrinth of death (jpn) (sn).bin", 0x040000, 0xa6d7e02d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_labdeath)
STD_ROM_FN(md_labdeath)

struct BurnDriver BurnDrvmd_labdeath = {
	"md_labdeath", "md_fatallab", NULL, NULL, "1991",
	"Shi no Meikyuu - Labyrinth of Death (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_labdeathRomInfo, md_labdeathRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shi no Meikyuu - Labyrinth of Death (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_labdeathgnkRomDesc[] = {
	{ "shi no meikyuu - labyrinth of death (jpn) (gnk).bin", 0x020000, 0x40c44cd3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_labdeathgnk)
STD_ROM_FN(md_labdeathgnk)

struct BurnDriver BurnDrvmd_labdeathgnk = {
	"md_labdeathgnk", "md_fatallab", NULL, NULL, "1991",
	"Shi no Meikyuu - Labyrinth of Death (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_labdeathgnkRomInfo, md_labdeathgnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Rewind (Euro, USA)
static struct BurnRomInfo md_fatalrewRomDesc[] = {
	{ "fatal rewind (euro, usa).bin", 0x080000, 0xe91aed05, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatalrew)
STD_ROM_FN(md_fatalrew)

struct BurnDriver BurnDrvmd_fatalrew = {
	"md_fatalrew", NULL, NULL, NULL, "1991",
	"Fatal Rewind (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_fatalrewRomInfo, md_fatalrewRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Killing Game Show, The (Japan)
static struct BurnRomInfo md_killshowRomDesc[] = {
	{ "killing game show, the (jpn).bin", 0x100000, 0xb8e7668a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_killshow)
STD_ROM_FN(md_killshow)

struct BurnDriver BurnDrvmd_killshow = {
	"md_killshow", "md_fatalrew", NULL, NULL, "1993",
	"Killing Game Show, The (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_killshowRomInfo, md_killshowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Férias Frustradas do Pica-Pau (Brazil)
static struct BurnRomInfo md_feriasRomDesc[] = {
	{ "ferias frustradas do pica-pau (bra).bin", 0x100000, 0x7b2e416d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ferias)
STD_ROM_FN(md_ferias)

struct BurnDriver BurnDrvmd_ferias = {
	"md_ferias", NULL, NULL, NULL, "1995",
	"Ferias Frustradas do Pica-Pau (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	L"F\u00e9rias Frustradas do Pica-Pau (Brazil)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_feriasRomInfo, md_feriasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ferrari Grand Prix Challenge (Euro, Rev. A)
static struct BurnRomInfo md_ferrariRomDesc[] = {
	{ "mpr-14770a.ic1", 0x100000, 0x250111df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ferrari)
STD_ROM_FN(md_ferrari)

struct BurnDriver BurnDrvmd_ferrari = {
	"md_ferrari", NULL, NULL, NULL, "1992",
	"Ferrari Grand Prix Challenge (Euro, Rev. A)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_ferrariRomInfo, md_ferrariRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ferrari Grand Prix Challenge (Prototype)
static struct BurnRomInfo md_ferraripRomDesc[] = {
	{ "ferrari grand prix challenge (beta).bin", 0x100000, 0xd48d02d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ferrarip)
STD_ROM_FN(md_ferrarip)

struct BurnDriver BurnDrvmd_ferrarip = {
	"md_ferrarip", "md_ferrari", NULL, NULL, "1992",
	"Ferrari Grand Prix Challenge (Prototype)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_ferraripRomInfo, md_ferraripRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ferrari Grand Prix Challenge (USA)
static struct BurnRomInfo md_ferrariuRomDesc[] = {
	{ "ferrari grand prix challenge (usa).bin", 0x100000, 0xf73f6bec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ferrariu)
STD_ROM_FN(md_ferrariu)

struct BurnDriver BurnDrvmd_ferrariu = {
	"md_ferrariu", "md_ferrari", NULL, NULL, "1992",
	"Ferrari Grand Prix Challenge (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_ferrariuRomInfo, md_ferrariuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fever Pitch Soccer (Euro)
static struct BurnRomInfo md_feverpitRomDesc[] = {
	{ "fever pitch soccer (euro).bin", 0x200000, 0xfac29677, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_feverpit)
STD_ROM_FN(md_feverpit)

struct BurnDriver BurnDrvmd_feverpit = {
	"md_feverpit", NULL, NULL, NULL, "1995",
	"Fever Pitch Soccer (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_feverpitRomInfo, md_feverpitRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Head-On Soccer (USA)
static struct BurnRomInfo md_headonRomDesc[] = {
	{ "head-on soccer (usa).bin", 0x200000, 0xdcffa327, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_headon)
STD_ROM_FN(md_headon)

struct BurnDriver BurnDrvmd_headon = {
	"md_headon", "md_feverpit", NULL, NULL, "1995",
	"Head-On Soccer (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_headonRomInfo, md_headonRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fido Dido (USA, Prototype)
static struct BurnRomInfo md_fidodidoRomDesc[] = {
	{ "fido dido (usa) (prototype).bin", 0x100000, 0xc6d4a240, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fidodido)
STD_ROM_FN(md_fidodido)

struct BurnDriver BurnDrvmd_fidodido = {
	"md_fidodido", NULL, NULL, NULL, "1994",
	"Fido Dido (USA, Prototype)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_fidodidoRomInfo, md_fidodidoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA International Soccer (Euro, USA)
static struct BurnRomInfo md_fifaRomDesc[] = {
	{ "soccer10.bin", 0x200000, 0xbddbb763, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa)
STD_ROM_FN(md_fifa)

struct BurnDriver BurnDrvmd_fifa = {
	"md_fifa", NULL, NULL, NULL, "1994",
	"FIFA International Soccer (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifaRomInfo, md_fifaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Futbol Argentino 98 - Pasion de Multitudes (Unl)
static struct BurnRomInfo md_futbolRomDesc[] = {
	{ "futbol argentino 98 - pasion de multitudes (unl).bin", 0x200000, 0x5c015888, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_futbol)
STD_ROM_FN(md_futbol)

struct BurnDriver BurnDrvmd_futbol = {
	"md_futbol", "md_fifa95", NULL, NULL, "199?",
	"Futbol Argentino 98 - Pasion de Multitudes (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_futbolRomInfo, md_futbolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 96 (Euro, USA)
static struct BurnRomInfo md_fifa96RomDesc[] = {
	{ "fifa01.bin", 0x200000, 0xbad30ffa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa96)
STD_ROM_FN(md_fifa96)

struct BurnDriver BurnDrvmd_fifa96 = {
	"md_fifa96", NULL, NULL, NULL, "1995",
	"FIFA Soccer 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa96RomInfo, md_fifa96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 97 Gold Edition (Euro, USA)
static struct BurnRomInfo md_fifa97RomDesc[] = {
	{ "fifa_97_b1", 0x200000, 0x2bedb061, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa97)
STD_ROM_FN(md_fifa97)

struct BurnDriver BurnDrvmd_fifa97 = {
	"md_fifa97", NULL, NULL, NULL, "1996",
	"FIFA Soccer 97 Gold Edition (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa97RomInfo, md_fifa97RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveUSANTSCDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 98 - Road to World Cup (Euro)
static struct BurnRomInfo md_fifa98RomDesc[] = {
	{ "fifa 98 - road to world cup (euro).bin", 0x200000, 0x96947f57, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa98)
STD_ROM_FN(md_fifa98)

struct BurnDriver BurnDrvmd_fifa98 = {
	"md_fifa98", NULL, NULL, NULL, "1997",
	"FIFA Soccer 98 - Road to World Cup (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa98RomInfo, md_fifa98RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 99 (Unl)
static struct BurnRomInfo md_fifa99RomDesc[] = {
	{ "fifa soccer 99 (pirate) (unl).bin", 0x200000, 0xc5c5a4b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa99)
STD_ROM_FN(md_fifa99)

struct BurnDriver BurnDrvmd_fifa99 = {
	"md_fifa99", "md_fifa96", NULL, NULL, "199?",
	"FIFA Soccer 99 (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa99RomInfo, md_fifa99RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 2000 Gold Edition (Unl)
static struct BurnRomInfo md_fifa2kRomDesc[] = {
	{ "fifa soccer 2000 gold edition (pirate) (unl).bin", 0x200000, 0x647df504, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa2k)
STD_ROM_FN(md_fifa2k)

struct BurnDriver BurnDrvmd_fifa2k = {
	"md_fifa2k", "md_fifa97", NULL, NULL, "199?",
	"FIFA Soccer 2000 Gold Edition (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa2kRomInfo, md_fifa2kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fighting Masters (USA)
static struct BurnRomInfo md_fightmasRomDesc[] = {
	{ "fighting masters (usa).bin", 0x080000, 0x5f51983b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fightmas)
STD_ROM_FN(md_fightmas)

struct BurnDriver BurnDrvmd_fightmas = {
	"md_fightmas", NULL, NULL, NULL, "1992",
	"Fighting Masters (USA)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fightmasRomInfo, md_fightmasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fighting Masters (Japan, Korea)
static struct BurnRomInfo md_fightmasjRomDesc[] = {
	{ "fighting masters (jpn, kor).bin", 0x080000, 0x39be80ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fightmasj)
STD_ROM_FN(md_fightmasj)

struct BurnDriver BurnDrvmd_fightmasj = {
	"md_fightmasj", "md_fightmas", NULL, NULL, "1991",
	"Fighting Masters (Japan, Korea)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fightmasjRomInfo, md_fightmasjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Final Zone (USA) ~ FZ Senki Axis (Japan)
static struct BurnRomInfo md_fzoneRomDesc[] = {
	{ "final zone -- fz senki axis (usa, jpn).bin", 0x080000, 0x731fa4a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fzone)
STD_ROM_FN(md_fzone)

struct BurnDriver BurnDrvmd_fzone = {
	"md_fzone", NULL, NULL, NULL, "1990",
	"Final Zone (USA) ~ FZ Senki Axis (Japan)\0", NULL, "Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_fzoneRomInfo, md_fzoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fire Mustang (Japan)
static struct BurnRomInfo md_firemustRomDesc[] = {
	{ "fire mustang (jpn).bin", 0x080000, 0xeb7e36c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_firemust)
STD_ROM_FN(md_firemust)

struct BurnDriver BurnDrvmd_firemust = {
	"md_firemust", NULL, NULL, NULL, "1991",
	"Fire Mustang (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_firemustRomInfo, md_firemustRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fire Shark (Euro)
static struct BurnRomInfo md_fireshrkRomDesc[] = {
	{ "mpr-14341.bin", 0x080000, 0x2351ce61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fireshrk)
STD_ROM_FN(md_fireshrk)

struct BurnDriver BurnDrvmd_fireshrk = {
	"md_fireshrk", NULL, NULL, NULL, "1991",
	"Fire Shark (Euro)\0", NULL, "Toaplan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_fireshrkRomInfo, md_fireshrkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fire Shark (USA)
static struct BurnRomInfo md_fireshrkuRomDesc[] = {
	{ "fire shark (usa).bin", 0x080000, 0x570b5024, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fireshrku)
STD_ROM_FN(md_fireshrku)

struct BurnDriver BurnDrvmd_fireshrku = {
	"md_fireshrku", "md_fireshrk", NULL, NULL, "1990",
	"Fire Shark (USA)\0", NULL, "Dreamworks Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_fireshrkuRomInfo, md_fireshrkuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fire Shark (USA, Alt)
static struct BurnRomInfo md_fireshrku1RomDesc[] = {
	{ "fire shark (usa) (alt).bin", 0x080000, 0x9c175146, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fireshrku1)
STD_ROM_FN(md_fireshrku1)

struct BurnDriver BurnDrvmd_fireshrku1 = {
	"md_fireshrku1", "md_fireshrk", NULL, NULL, "1990",
	"Fire Shark (USA, Alt)\0", NULL, "Dreamworks Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_fireshrku1RomInfo, md_fireshrku1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Same! Same! Same! (Japan)
static struct BurnRomInfo md_samesameRomDesc[] = {
	{ "mpr-13301.bin", 0x080000, 0x77bbd841, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_samesame)
STD_ROM_FN(md_samesame)

struct BurnDriver BurnDrvmd_samesame = {
	"md_samesame", "md_fireshrk", NULL, NULL, "1990",
	"Same! Same! Same! (Japan)\0", NULL, "Toaplan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_samesameRomInfo, md_samesameRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flashback (Euro, Rev. A)
static struct BurnRomInfo md_flashbRomDesc[] = {
	{ "mpr-15410a.bin", 0x180000, 0x6f311c83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashb)
STD_ROM_FN(md_flashb)

struct BurnDriver BurnDrvmd_flashb = {
	"md_flashb", NULL, NULL, NULL, "1993",
	"Flashback (Euro, Rev. A)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_flashbRomInfo, md_flashbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flashback (Japan)
static struct BurnRomInfo md_flashbjRomDesc[] = {
	{ "flashback (jpn).bin", 0x180000, 0xb790e3b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashbj)
STD_ROM_FN(md_flashbj)

struct BurnDriver BurnDrvmd_flashbj = {
	"md_flashbj", "md_flashb", NULL, NULL, "1993",
	"Flashback (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_flashbjRomInfo, md_flashbjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flashback - The Quest for Identity (USA)
static struct BurnRomInfo md_flashbuRomDesc[] = {
	{ "flashback - the quest for identity (usa).bin", 0x180000, 0x23a9616d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashbu)
STD_ROM_FN(md_flashbu)

struct BurnDriver BurnDrvmd_flashbu = {
	"md_flashbu", "md_flashb", NULL, NULL, "1993",
	"Flashback - The Quest for Identity (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_flashbuRomInfo, md_flashbuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flashback - The Quest for Identity (USA, Alt)
static struct BurnRomInfo md_flashbu1RomDesc[] = {
	{ "flashback - the quest for identity (usa) (alt).bin", 0x180000, 0x33cd2b65, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashbu1)
STD_ROM_FN(md_flashbu1)

struct BurnDriver BurnDrvmd_flashbu1 = {
	"md_flashbu1", "md_flashb", NULL, NULL, "1993",
	"Flashback - The Quest for Identity (USA, Alt)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_flashbu1RomInfo, md_flashbu1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flash Point (Japan, Prototype)
static struct BurnRomInfo md_flashpRomDesc[] = {
	{ "flash point (japan) (proto).bin", 0x020000, 0x0655074d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashp)
STD_ROM_FN(md_flashp)

struct BurnDriver BurnDrvmd_flashp = {
	"md_flashp", NULL, NULL, NULL, "1989",
	"Flash Point (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_flashpRomInfo, md_flashpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flicky (Euro, USA)
static struct BurnRomInfo md_flickyRomDesc[] = {
	{ "flicky (euro, usa).bin", 0x020000, 0x4291c8ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flicky)
STD_ROM_FN(md_flicky)

struct BurnDriver BurnDrvmd_flicky = {
	"md_flicky", NULL, NULL, NULL, "1991",
	"Flicky (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flickyRomInfo, md_flickyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Misadventures of Flink, The (Euro)
static struct BurnRomInfo md_flinkRomDesc[] = {
	{ "flink (euro).bin", 0x100000, 0xbef9a4f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flink)
STD_ROM_FN(md_flink)

struct BurnDriver BurnDrvmd_flink = {
	"md_flink", NULL, NULL, NULL, "1994",
	"Misadventures of Flink, The (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flinkRomInfo, md_flinkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flintstones, The (Euro)
static struct BurnRomInfo md_flintRomDesc[] = {
	{ "flintstones, the (euro).bin", 0x080000, 0x21845d61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flint)
STD_ROM_FN(md_flint)

struct BurnDriver BurnDrvmd_flint = {
	"md_flint", NULL, NULL, NULL, "1993",
	"Flintstones, The (Euro)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flintRomInfo, md_flintRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flintstones, The (Japan)
static struct BurnRomInfo md_flintjRomDesc[] = {
	{ "flintstone (jpn).bin", 0x080000, 0x920a3031, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flintj)
STD_ROM_FN(md_flintj)

struct BurnDriver BurnDrvmd_flintj = {
	"md_flintj", "md_flint", NULL, NULL, "1993",
	"Flintstones, The (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flintjRomInfo, md_flintjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flintstones, The (USA)
static struct BurnRomInfo md_flintuRomDesc[] = {
	{ "flintstones, the (usa).bin", 0x080000, 0x7c982c59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flintu)
STD_ROM_FN(md_flintu)

struct BurnDriver BurnDrvmd_flintu = {
	"md_flintu", "md_flint", NULL, NULL, "1993",
	"Flintstones, The (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flintuRomInfo, md_flintuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Foreman for Real (World)
static struct BurnRomInfo md_foremanRomDesc[] = {
	{ "foreman for real (world).bin", 0x300000, 0x36248f90, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_foreman)
STD_ROM_FN(md_foreman)

struct BurnDriver BurnDrvmd_foreman = {
	"md_foreman", NULL, NULL, NULL, "1995",
	"Foreman for Real (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_foremanRomInfo, md_foremanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Forgotten Worlds (World, v1.1)
static struct BurnRomInfo md_forgottnRomDesc[] = {
	{ "forgotten worlds (world) (v1.1).bin", 0x080000, 0x95513985, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_forgottn)
STD_ROM_FN(md_forgottn)

struct BurnDriver BurnDrvmd_forgottn = {
	"md_forgottn", NULL, NULL, NULL, "1989",
	"Forgotten Worlds (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_forgottnRomInfo, md_forgottnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Forgotten Worlds (World)
static struct BurnRomInfo md_forgottn1RomDesc[] = {
	{ "mpr-12672.bin", 0x080000, 0xd0ee6434, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_forgottn1)
STD_ROM_FN(md_forgottn1)

struct BurnDriver BurnDrvmd_forgottn1 = {
	"md_forgottn1", "md_forgottn", NULL, NULL, "1989",
	"Forgotten Worlds (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_forgottn1RomInfo, md_forgottn1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mary Shelley's Frankenstein (USA)
static struct BurnRomInfo md_frankenRomDesc[] = {
	{ "mary shelley's frankenstein (usa).bin", 0x200000, 0x48993dc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_franken)
STD_ROM_FN(md_franken)

struct BurnDriver BurnDrvmd_franken = {
	"md_franken", NULL, NULL, NULL, "1994",
	"Mary Shelley's Frankenstein (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_frankenRomInfo, md_frankenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Frank Thomas Big Hurt Baseball (Euro, USA)
static struct BurnRomInfo md_bighurtRomDesc[] = {
	{ "frank thomas big hurt baseball (euro, usa).bin", 0x400000, 0x863e0950, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bighurt)
STD_ROM_FN(md_bighurt)

struct BurnDriver BurnDrvmd_bighurt = {
	"md_bighurt", NULL, NULL, NULL, "1995",
	"Frank Thomas Big Hurt Baseball (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_C_SLAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bighurtRomInfo, md_bighurtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Frogger (USA)
static struct BurnRomInfo md_froggerRomDesc[] = {
	{ "frogger (usa).bin", 0x080000, 0xea2e48c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_frogger)
STD_ROM_FN(md_frogger)

struct BurnDriver BurnDrvmd_frogger = {
	"md_frogger", NULL, NULL, NULL, "1998",
	"Frogger (USA)\0", NULL, "Majesco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_froggerRomInfo, md_froggerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fun 'N Games (Euro)
static struct BurnRomInfo md_funngameRomDesc[] = {
	{ "fun 'n' games (euro).bin", 0x100000, 0xda4ab3cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_funngame)
STD_ROM_FN(md_funngame)

struct BurnDriver BurnDrvmd_funngame = {
	"md_funngame", NULL, NULL, NULL, "1993",
	"Fun 'N Games (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_funngameRomInfo, md_funngameRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fun 'N' Games (USA)
static struct BurnRomInfo md_funngameuRomDesc[] = {
	{ "fun 'n' games (usa).bin", 0x100000, 0xb5ae351d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_funngameu)
STD_ROM_FN(md_funngameu)

struct BurnDriver BurnDrvmd_funngameu = {
	"md_funngameu", "md_funngame", NULL, NULL, "1993",
	"Fun 'N' Games (USA)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_funngameuRomInfo, md_funngameuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fun Car Rally (USA, Prototype)
static struct BurnRomInfo md_funcarRomDesc[] = {
	{ "fun car rally (usa) (prototype).bin", 0x100000, 0x42e27845, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_funcar)
STD_ROM_FN(md_funcar)

struct BurnDriver BurnDrvmd_funcar = {
	"md_funcar", NULL, NULL, NULL, "199?",
	"Fun Car Rally (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_funcarRomInfo, md_funcarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// G-LOC Air Battle (World)
static struct BurnRomInfo md_glocRomDesc[] = {
	{ "mpr-15326.bin", 0x100000, 0xf2af886e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gloc)
STD_ROM_FN(md_gloc)

struct BurnDriver BurnDrvmd_gloc = {
	"md_gloc", NULL, NULL, NULL, "1993",
	"G-LOC Air Battle (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_glocRomInfo, md_glocRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// G-LOC Air Battle (World, Prototype)
static struct BurnRomInfo md_glocpRomDesc[] = {
	{ "g-loc air battle (world) (beta).bin", 0x100000, 0x175c7e63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_glocp)
STD_ROM_FN(md_glocp)

struct BurnDriver BurnDrvmd_glocp = {
	"md_glocp", "md_gloc", NULL, NULL, "1993",
	"G-LOC Air Battle (World, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_glocpRomInfo, md_glocpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gadget Twins (USA)
static struct BurnRomInfo md_gadgetRomDesc[] = {
	{ "gadget twins (usa).bin", 0x100000, 0x7ae5e248, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gadget)
STD_ROM_FN(md_gadget)

struct BurnDriver BurnDrvmd_gadget = {
	"md_gadget", NULL, NULL, NULL, "1992",
	"Gadget Twins (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_gadgetRomInfo, md_gadgetRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gaiares (Japan, USA)
static struct BurnRomInfo md_gaiaresRomDesc[] = {
	{ "gaiares (usa, jpn).bin", 0x100000, 0x5d8bf68b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gaiares)
STD_ROM_FN(md_gaiares)

struct BurnDriver BurnDrvmd_gaiares = {
	"md_gaiares", NULL, NULL, NULL, "1990",
	"Gaiares (Japan, USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gaiaresRomInfo, md_gaiaresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gain Ground (World)
static struct BurnRomInfo md_ggroundRomDesc[] = {
	{ "gain ground (world).bin", 0x080000, 0x8641a2ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gground)
STD_ROM_FN(md_gground)

struct BurnDriver BurnDrvmd_gground = {
	"md_gground", NULL, NULL, NULL, "1991",
	"Gain Ground (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ggroundRomInfo, md_ggroundRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gain Ground (USA, Prototype)
static struct BurnRomInfo md_gground1pRomDesc[] = {
	{ "gainground.a760.bin", 0x080000, 0x83e7b8ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gground1p)
STD_ROM_FN(md_gground1p)

struct BurnDriver BurnDrvmd_gground1p = {
	"md_gground1p", "md_gground", NULL, NULL, "1991",
	"Gain Ground (USA, Prototype)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_gground1pRomInfo, md_gground1pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Galaxy Force II (World)
static struct BurnRomInfo md_gforce2aRomDesc[] = {
	{ "galaxy force ii (world).bin", 0x100000, 0xcae883c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gforce2a)
STD_ROM_FN(md_gforce2a)

struct BurnDriver BurnDrvmd_gforce2a = {
	"md_gforce2a", "md_gforce2", NULL, NULL, "1991",
	"Galaxy Force II (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_gforce2aRomInfo, md_gforce2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gambler Jikochuushinha - Katayama Masayuki no Mahjong Doujou (Japan)
static struct BurnRomInfo md_gamblerRomDesc[] = {
	{ "gambler jiko chuushinha - katayama masayuki no mahjong doujou (jpn).bin", 0x080000, 0x05650b7a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gambler)
STD_ROM_FN(md_gambler)

struct BurnDriver BurnDrvmd_gambler = {
	"md_gambler", NULL, NULL, NULL, "1990",
	"Gambler Jikochuushinha - Katayama Masayuki no Mahjong Doujou (Japan)\0", NULL, "Game Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_ADV, 0,
	MegadriveGetZipName, md_gamblerRomInfo, md_gamblerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Game no Kandume Otokuyou (Japan)
static struct BurnRomInfo md_gamenkoRomDesc[] = {
	{ "game no kandume otokuyou (jpn).bin", 0x300000, 0xcdad7e6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gamenko)
STD_ROM_FN(md_gamenko)

struct BurnDriver BurnDrvmd_gamenko = {
	"md_gamenko", NULL, NULL, NULL, "199?",
	"Game no Kandume Otokuyou (Japan)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_GAME_KANDUME, GBF_MISC, 0,
	MegadriveGetZipName, md_gamenkoRomInfo, md_gamenkoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Garfield - Caught in the Act (Euro, USA)
static struct BurnRomInfo md_garfieldRomDesc[] = {
	{ "garfield - caught in the act (euro, usa).bin", 0x200000, 0xf0ff078e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_garfield)
STD_ROM_FN(md_garfield)

struct BurnDriver BurnDrvmd_garfield = {
	"md_garfield", NULL, NULL, NULL, "1995",
	"Garfield - Caught in the Act (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_garfieldRomInfo, md_garfieldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gargoyles (USA)
static struct BurnRomInfo md_gargoyleRomDesc[] = {
	{ "gargoyles (usa).bin", 0x300000, 0x2d965364, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gargoyle)
STD_ROM_FN(md_gargoyle)

struct BurnDriver BurnDrvmd_gargoyle = {
	"md_gargoyle", NULL, NULL, NULL, "1995",
	"Gargoyles (USA)\0", NULL, "Disney Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gargoyleRomInfo, md_gargoyleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gauntlet IV (Euro, USA, 199309)
static struct BurnRomInfo md_gauntlt4RomDesc[] = {
	{ "gauntlet iv (euro, usa) (september 1993).bin", 0x100000, 0xf9d60510, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gauntlt4)
STD_ROM_FN(md_gauntlt4)

struct BurnDriver BurnDrvmd_gauntlt4 = {
	"md_gauntlt4", NULL, NULL, NULL, "1993",
	"Gauntlet IV (Euro, USA, 199309)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_gauntlt4RomInfo, md_gauntlt4RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gauntlet IV (Euro, USA, 199308)
static struct BurnRomInfo md_gauntlt4aRomDesc[] = {
	{ "gauntlet iv (euro, usa) (august 1993).bin", 0x100000, 0x3bf46dce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gauntlt4a)
STD_ROM_FN(md_gauntlt4a)

struct BurnDriver BurnDrvmd_gauntlt4a = {
	"md_gauntlt4a", "md_gauntlt4", NULL, NULL, "1993",
	"Gauntlet IV (Euro, USA, 199308)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_gauntlt4aRomInfo, md_gauntlt4aRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gauntlet (Japan)
static struct BurnRomInfo md_gauntlt4jRomDesc[] = {
	{ "gauntlet (jpn).bin", 0x100000, 0xf9872055, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gauntlt4j)
STD_ROM_FN(md_gauntlt4j)

struct BurnDriver BurnDrvmd_gauntlt4j = {
	"md_gauntlt4j", "md_gauntlt4", NULL, NULL, "1993",
	"Gauntlet (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_gauntlt4jRomInfo, md_gauntlt4jRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gauntlet (Japan, CENSOR Prototype)
static struct BurnRomInfo md_gauntlt4jpRomDesc[] = {
	{ "gauntlet (censor prototype).bin", 0x100000, 0x7d478079, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gauntlt4jp)
STD_ROM_FN(md_gauntlt4jp)

struct BurnDriver BurnDrvmd_gauntlt4jp = {
	"md_gauntlt4jp", "md_gauntlt4", NULL, NULL, "1993",
	"Gauntlet (Japan, CENSOR Prototype)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_gauntlt4jpRomInfo, md_gauntlt4jpRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gemfire (USA)
static struct BurnRomInfo md_gemfireRomDesc[] = {
	{ "gemfire (usa).bin", 0x100000, 0x3d36135b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gemfire)
STD_ROM_FN(md_gemfire)

struct BurnDriver BurnDrvmd_gemfire = {
	"md_gemfire", NULL, NULL, NULL, "1992",
	"Gemfire (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_gemfireRomInfo, md_gemfireRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Royal Blood (Japan)
static struct BurnRomInfo md_royalbldRomDesc[] = {
	{ "royal blood (jpn).bin", 0x100000, 0x0e0107f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_royalbld)
STD_ROM_FN(md_royalbld)

struct BurnDriver BurnDrvmd_royalbld = {
	"md_royalbld", "md_gemfire", NULL, NULL, "1992",
	"Royal Blood (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_royalbldRomInfo, md_royalbldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// General Chaos (Euro, USA)
static struct BurnRomInfo md_genchaosRomDesc[] = {
	{ "general chaos (euro, usa).bin", 0x100000, 0xf1ecc4df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_genchaos)
STD_ROM_FN(md_genchaos)

struct BurnDriver BurnDrvmd_genchaos = {
	"md_genchaos", NULL, NULL, NULL, "1994",
	"General Chaos (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_FOURWAYPLAY, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_genchaosRomInfo, md_genchaosRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// General Chaos Daikonsen (Japan)
static struct BurnRomInfo md_genchaosjRomDesc[] = {
	{ "general chaos daikonsen (jpn).bin", 0x100000, 0x05cc7369, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_genchaosj)
STD_ROM_FN(md_genchaosj)

struct BurnDriver BurnDrvmd_genchaosj = {
	"md_genchaosj", "md_genchaos", NULL, NULL, "1994",
	"General Chaos Daikonsen (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_FOURWAYPLAY, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_genchaosjRomInfo, md_genchaosjRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Generations Lost (Euro, USA)
static struct BurnRomInfo md_genelostRomDesc[] = {
	{ "generations lost (euro, usa).bin", 0x100000, 0x131f36a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_genelost)
STD_ROM_FN(md_genelost)

struct BurnDriver BurnDrvmd_genelost = {
	"md_genelost", NULL, NULL, NULL, "1994",
	"Generations Lost (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_genelostRomInfo, md_genelostRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Genghis Khan II - Clan of the Gray Wolf (USA)
static struct BurnRomInfo md_genghis2RomDesc[] = {
	{ "genghis khan ii - clan of the gray wolf (usa).bin", 0x100000, 0x87a281ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_genghis2)
STD_ROM_FN(md_genghis2)

struct BurnDriver BurnDrvmd_genghis2 = {
	"md_genghis2", NULL, NULL, NULL, "1993",
	"Genghis Khan II - Clan of the Gray Wolf (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_genghis2RomInfo, md_genghis2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aoki Ookami to Shiroki Mejika - Genchou Hishi (Japan)
static struct BurnRomInfo md_genchohiRomDesc[] = {
	{ "aoki ookami to shiroki meshika - genchou hishi (jpn).bin", 0x140000, 0x10be1d93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_genchohi)
STD_ROM_FN(md_genchohi)

struct BurnDriver BurnDrvmd_genchohi = {
	"md_genchohi", "md_genghis2", NULL, NULL, "1993",
	"Aoki Ookami to Shiroki Mejika - Genchou Hishi (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_genchohiRomInfo, md_genchohiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// George Foreman's KO Boxing (Euro)
static struct BurnRomInfo md_georgekoRomDesc[] = {
	{ "george foreman's ko boxing (euro).bin", 0x100000, 0xbd556381, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_georgeko)
STD_ROM_FN(md_georgeko)

struct BurnDriver BurnDrvmd_georgeko = {
	"md_georgeko", NULL, NULL, NULL, "1992",
	"George Foreman's KO Boxing (Euro)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_georgekoRomInfo, md_georgekoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// George Foreman's KO Boxing (USA)
static struct BurnRomInfo md_georgekouRomDesc[] = {
	{ "george foreman's ko boxing (usa).bin", 0x100000, 0xe1fdc787, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_georgekou)
STD_ROM_FN(md_georgekou)

struct BurnDriver BurnDrvmd_georgekou = {
	"md_georgekou", "md_georgeko", NULL, NULL, "1992",
	"George Foreman's KO Boxing (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_georgekouRomInfo, md_georgekouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ghostbusters (World, v1.1)
static struct BurnRomInfo md_ghostbstRomDesc[] = {
	{ "ghostbusters (world) (v1.1).bin", 0x080000, 0x792df93b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghostbst)
STD_ROM_FN(md_ghostbst)

struct BurnDriver BurnDrvmd_ghostbst = {
	"md_ghostbst", NULL, NULL, NULL, "1990",
	"Ghostbusters (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghostbstRomInfo, md_ghostbstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ghostbusters (World)
static struct BurnRomInfo md_ghostbst1RomDesc[] = {
	{ "ghostbusters (world).bin", 0x080000, 0x00419da3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghostbst1)
STD_ROM_FN(md_ghostbst1)

struct BurnDriver BurnDrvmd_ghostbst1 = {
	"md_ghostbst1", "md_ghostbst", NULL, NULL, "1990",
	"Ghostbusters (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghostbst1RomInfo, md_ghostbst1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ghostbusters - Special Edition (Hack, v1.1)
// https://www.romhacking.net/hacks/7761/
static struct BurnRomInfo md_ghostbstseRomDesc[] = {
	{ "Ghostbusters - Special Edition v1.1 (2013)(BillyTime! Games).bin", 0x100000, 0xa9542c76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghostbstse)
STD_ROM_FN(md_ghostbstse)

struct BurnDriver BurnDrvmd_ghostbstse = {
	"md_ghostbstse", "md_ghostbst", NULL, NULL, "2023",
	"Ghostbusters - Special Edition (Hack, v1.1)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghostbstseRomInfo, md_ghostbstseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ghouls'n Ghosts (Euro, USA, Korea, Rev. A)
static struct BurnRomInfo md_ghoulsRomDesc[] = {
	{ "mpr-12605a t04.ic1", 0x020000, 0xd367c3cc, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
	{ "mpr-12606a w57.ic2", 0x080000, 0x5291d097, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL_CONTINUE_020000_080000 | SEGA_MD_ROM_OFFS_080000  },
};

STD_ROM_PICK(md_ghouls)
STD_ROM_FN(md_ghouls)

struct BurnDriver BurnDrvmd_ghouls = {
	"md_ghouls", NULL, NULL, NULL, "1989",
	"Ghouls'n Ghosts (Euro, USA, Korea, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghoulsRomInfo, md_ghoulsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ghouls'n Ghosts (Euro, USA)
static struct BurnRomInfo md_ghouls1RomDesc[] = {
	{ "mpr-12605 t02.ic1", 0x020000, 0x1066c6ab, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
	{ "mpr-12606 r32.ic2", 0x080000, 0xd0be7777, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL_CONTINUE_020000_080000 | SEGA_MD_ROM_OFFS_080000  },
};

STD_ROM_PICK(md_ghouls1)
STD_ROM_FN(md_ghouls1)

struct BurnDriver BurnDrvmd_ghouls1 = {
	"md_ghouls1", "md_ghouls", NULL, NULL, "1989",
	"Ghouls'n Ghosts (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghouls1RomInfo, md_ghouls1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dai Makaimura (Japan)
static struct BurnRomInfo md_daimakaiRomDesc[] = {
	{ "dai makaimura (jpn).bin", 0x0a0000, 0x5659f379, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daimakai)
STD_ROM_FN(md_daimakai)

struct BurnDriver BurnDrvmd_daimakai = {
	"md_daimakai", "md_ghouls", NULL, NULL, "1989",
	"Dai Makaimura (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_daimakaiRomInfo, md_daimakaiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GleyLancer (Japan)
static struct BurnRomInfo md_gleylancRomDesc[] = {
	{ "advanced busterhawk gleylancer (jpn).bin", 0x100000, 0x42cf9b5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gleylanc)
STD_ROM_FN(md_gleylanc)

struct BurnDriver BurnDrvmd_gleylanc = {
	"md_gleylanc", NULL, NULL, NULL, "1992",
	"GleyLancer (Japan)\0", NULL, "Masaya - NCS Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gleylancRomInfo, md_gleylancRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GleyLancer - 30th Edition (Japan)
static struct BurnRomInfo md_gleylanccRomDesc[] = {
	{ "Gley Lancer (2019-2022)(Columbus Circle).bin", 0x100000, 0x79ce299f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gleylancc)
STD_ROM_FN(md_gleylancc)

struct BurnDriver BurnDrvmd_gleylancc = {
	"md_gleylancc", "md_gleylanc", NULL, NULL, "2019-2022",
	"GleyLancer - 30th Edition (Japan)\0", NULL, "Columbus Circle", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gleylanccRomInfo, md_gleylanccRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GleyLancer (Hack, English)
// Source : http://www.romhacking.net/translations/1173/
static struct BurnRomInfo md_gleylanceRomDesc[] = {
	{ "advanced busterhawk gleylancer (english translation).bin", 0x100000, 0x1b744d15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gleylance)
STD_ROM_FN(md_gleylance)

struct BurnDriver BurnDrvmd_gleylance = {
	"md_gleylance", "md_gleylanc", NULL, NULL, "2007",
	"GleyLancer (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gleylanceRomInfo, md_gleylanceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gods (Euro)
static struct BurnRomInfo md_godsRomDesc[] = {
	{ "gods (euro).bin", 0x100000, 0x6c415016, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gods)
STD_ROM_FN(md_gods)

struct BurnDriver BurnDrvmd_gods = {
	"md_gods", NULL, NULL, NULL, "1993",
	"Gods (Euro)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_godsRomInfo, md_godsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gods (Japan)
static struct BurnRomInfo md_godsjRomDesc[] = {
	{ "gods (jpn).bin", 0x100000, 0xe4f50206, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_godsj)
STD_ROM_FN(md_godsj)

struct BurnDriver BurnDrvmd_godsj = {
	"md_godsj", "md_gods", NULL, NULL, "1993",
	"Gods (Japan)\0", NULL, "PCM Complete", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_godsjRomInfo, md_godsjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gods (USA)
static struct BurnRomInfo md_godsuRomDesc[] = {
	{ "gods (usa).bin", 0x100000, 0xfd234ccd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_godsu)
STD_ROM_FN(md_godsu)

struct BurnDriver BurnDrvmd_godsu = {
	"md_godsu", "md_gods", NULL, NULL, "1992",
	"Gods (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_godsuRomInfo, md_godsuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gods (USA, Prototype)
static struct BurnRomInfo md_godsupRomDesc[] = {
	{ "gods (usa) (beta).bin", 0x100000, 0x2c06bb64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_godsup)
STD_ROM_FN(md_godsup)

struct BurnDriver BurnDrvmd_godsup = {
	"md_godsup", "md_gods", NULL, NULL, "1992",
	"Gods (USA, Prototype)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_godsupRomInfo, md_godsupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe (World, v1.1)
static struct BurnRomInfo md_goldnaxeRomDesc[] = {
	{ "golden axe (world) (v1.1).bin", 0x080000, 0x665d7df9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnaxe)
STD_ROM_FN(md_goldnaxe)

struct BurnDriver BurnDrvmd_goldnaxe = {
	"md_goldnaxe", NULL, NULL, NULL, "1989",
	"Golden Axe (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnaxeRomInfo, md_goldnaxeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe (World)
static struct BurnRomInfo md_goldnaxe1RomDesc[] = {
	{ "mpr-12806.bin", 0x080000, 0xe8182b90, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnaxe1)
STD_ROM_FN(md_goldnaxe1)

struct BurnDriver BurnDrvmd_goldnaxe1 = {
	"md_goldnaxe1", "md_goldnaxe", NULL, NULL, "1989",
	"Golden Axe (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnaxe1RomInfo, md_goldnaxe1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe (Prototype, 19891014)
static struct BurnRomInfo md_goldnaxep1RomDesc[] = {
	{ "golden axe (prototype - oct 14, 1989).bin", 0x080000, 0xb01b26ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnaxep1)
STD_ROM_FN(md_goldnaxep1)

struct BurnDriver BurnDrvmd_goldnaxep1 = {
	"md_goldnaxep1", "md_goldnaxe", NULL, NULL, "1989",
	"Golden Axe (Prototype, 19891014)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnaxep1RomInfo, md_goldnaxep1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe (Prototype, 19891122)
static struct BurnRomInfo md_goldnaxep2RomDesc[] = {
	{ "golden axe (prototype - nov 22, 1989).bin", 0x080000, 0x3e640c09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnaxep2)
STD_ROM_FN(md_goldnaxep2)

struct BurnDriver BurnDrvmd_goldnaxep2 = {
	"md_goldnaxep2", "md_goldnaxe", NULL, NULL, "1989",
	"Golden Axe (Prototype, 19891122)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnaxep2RomInfo, md_goldnaxep2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe Plus (Hack, v2.0)
// https://www.romhacking.net/hacks/6949/
static struct BurnRomInfo md_goldnaxeplusRomDesc[] = {
	{ "Golden Axe Plus v2.0 (2022)(YoSoyNacho).bin", 2097152, 0x18f13b66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnaxeplus)
STD_ROM_FN(md_goldnaxeplus)

struct BurnDriver BurnDrvmd_goldnaxeplus = {
	"md_goldnaxeplus", "md_goldnaxe", NULL, NULL, "2022",
	"Golden Axe Plus (Hack, v2.0)\0", NULL, "YoSoyNacho", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnaxeplusRomInfo, md_goldnaxeplusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInitNoDebug, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe II (World)
static struct BurnRomInfo md_goldnax2RomDesc[] = {
	{ "mpr-14272.bin", 0x080000, 0x725e0a18, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax2)
STD_ROM_FN(md_goldnax2)

struct BurnDriver BurnDrvmd_goldnax2 = {
	"md_goldnax2", NULL, NULL, NULL, "1991",
	"Golden Axe II (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax2RomInfo, md_goldnax2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe II (World, Prototype)
static struct BurnRomInfo md_goldnax2pRomDesc[] = {
	{ "golden axe ii (world) (beta).bin", 0x080000, 0xe62ea1bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax2p)
STD_ROM_FN(md_goldnax2p)

struct BurnDriver BurnDrvmd_goldnax2p = {
	"md_goldnax2p", "md_goldnax2", NULL, NULL, "1991",
	"Golden Axe II (World, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax2pRomInfo, md_goldnax2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe III (Euro)
static struct BurnRomInfo md_goldnax3RomDesc[] = {
	{ "golden axe iii (euro).bin", 0x100000, 0x1d90dc83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax3)
STD_ROM_FN(md_goldnax3)

struct BurnDriver BurnDrvmd_goldnax3 = {
	"md_goldnax3", NULL, NULL, NULL, "1993",
	"Golden Axe III (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax3RomInfo, md_goldnax3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe III (Japan)
static struct BurnRomInfo md_goldnax3jRomDesc[] = {
	{ "golden axe iii (jpn).bin", 0x100000, 0xc7862ea3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax3j)
STD_ROM_FN(md_goldnax3j)

struct BurnDriver BurnDrvmd_goldnax3j = {
	"md_goldnax3j", "md_goldnax3", NULL, NULL, "1993",
	"Golden Axe III (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax3jRomInfo, md_goldnax3jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Uchuu Senkan Gomora ~ Bio-Ship Paladin (Japan)
static struct BurnRomInfo md_gomoraRomDesc[] = {
	{ "uchuu senkan gomora (jpn).bin", 0x100000, 0xc511e8d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gomora)
STD_ROM_FN(md_gomora)

struct BurnDriver BurnDrvmd_gomora = {
	"md_gomora", NULL, NULL, NULL, "1991",
	"Uchuu Senkan Gomora ~ Bio-Ship Paladin (Japan)\0", NULL, "UPL", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gomoraRomInfo, md_gomoraRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Goofy's Hysterical History Tour (USA)
static struct BurnRomInfo md_goofyRomDesc[] = {
	{ "goofy's hysterical history tour (usa).bin", 0x100000, 0x4e1cc833, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goofy)
STD_ROM_FN(md_goofy)

struct BurnDriver BurnDrvmd_goofy = {
	"md_goofy", NULL, NULL, NULL, "1993",
	"Goofy's Hysterical History Tour (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_goofyRomInfo, md_goofyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gouketsuji Ichizoku (Japan)
static struct BurnRomInfo md_gouketsuRomDesc[] = {
	{ "gouketsuji ichizoku (jpn).bin", 0x300000, 0xabe9c415, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gouketsu)
STD_ROM_FN(md_gouketsu)

struct BurnDriver BurnDrvmd_gouketsu = {
	"md_gouketsu", NULL, NULL, NULL, "1994",
	"Gouketsuji Ichizoku (Japan)\0", NULL, "Atlus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_gouketsuRomInfo, md_gouketsuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Granada (Japan, USA, v1.1)
static struct BurnRomInfo md_granadaRomDesc[] = {
	{ "granada (usa, jpn) (v1.1).bin", 0x080000, 0xe89d1e66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_granada)
STD_ROM_FN(md_granada)

struct BurnDriver BurnDrvmd_granada = {
	"md_granada", NULL, NULL, NULL, "1990",
	"Granada (Japan, USA, v1.1)\0", NULL, "Renovation ~ Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_granadaRomInfo, md_granadaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Granada (Japan, USA)
static struct BurnRomInfo md_granada1RomDesc[] = {
	{ "granada (usa, jpn).bin", 0x080000, 0x7f45719b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_granada1)
STD_ROM_FN(md_granada1)

struct BurnDriver BurnDrvmd_granada1 = {
	"md_granada1", "md_granada", NULL, NULL, "1990",
	"Granada (Japan, USA)\0", NULL, "Renovation ~ Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_granada1RomInfo, md_granada1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Granada (REV01 Prototype)
static struct BurnRomInfo md_granadapRomDesc[] = {
	{ "granada (rev01 prototype).bin", 0x080000, 0x129a37dd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_granadap)
STD_ROM_FN(md_granadap)

struct BurnDriver BurnDrvmd_granadap = {
	"md_granadap", "md_granada", NULL, NULL, "1990",
	"Granada (REV01 Prototype)\0", NULL, "Renovation ~ Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_granadapRomInfo, md_granadapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GrandSlam - The Tennis Tournament (Euro)
static struct BurnRomInfo md_grandslRomDesc[] = {
	{ "mpr-15208.bin", 0x080000, 0x8c2670de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_grandsl)
STD_ROM_FN(md_grandsl)

struct BurnDriver BurnDrvmd_grandsl = {
	"md_grandsl", NULL, NULL, NULL, "1992",
	"GrandSlam - The Tennis Tournament (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_grandslRomInfo, md_grandslRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GrandSlam - The Tennis Tournament '92 (Japan)
static struct BurnRomInfo md_grandsljRomDesc[] = {
	{ "grandslam - the tennis tournament '92 (jpn).bin", 0x080000, 0x30cf37d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_grandslj)
STD_ROM_FN(md_grandslj)

struct BurnDriver BurnDrvmd_grandslj = {
	"md_grandslj", "md_grandsl", NULL, NULL, "1992",
	"GrandSlam - The Tennis Tournament '92 (Japan)\0", NULL, "Nihon Telenet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_grandsljRomInfo, md_grandsljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jennifer Capriati Tennis (USA)
static struct BurnRomInfo md_jennifctRomDesc[] = {
	{ "jennifer capriati tennis (usa).bin", 0x080000, 0xab2abc8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jennifct)
STD_ROM_FN(md_jennifct)

struct BurnDriver BurnDrvmd_jennifct = {
	"md_jennifct", "md_grandsl", NULL, NULL, "1992",
	"Jennifer Capriati Tennis (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jennifctRomInfo, md_jennifctRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Great Circus Mystery - Mickey to Minnie Magical Adventure 2 (Japan)
static struct BurnRomInfo md_greatcirjRomDesc[] = {
	{ "great circus mystery - mickey to minnie magical adventure 2 (jpn).bin", 0x200000, 0x5aa0f3a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_greatcirj)
STD_ROM_FN(md_greatcirj)

struct BurnDriver BurnDrvmd_greatcirj = {
	"md_greatcirj", "md_mickeycm", NULL, NULL, "1994",
	"Great Circus Mystery - Mickey to Minnie Magical Adventure 2 (Japan)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_greatcirjRomInfo, md_greatcirjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Great Circus Mystery Starring Mickey & Minnie, The (USA)
static struct BurnRomInfo md_mickeycmRomDesc[] = {
	{ "great circus mystery starring mickey & minnie, the (usa).bin", 0x200000, 0x14744883, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickeycm)
STD_ROM_FN(md_mickeycm)

struct BurnDriver BurnDrvmd_mickeycm = {
	"md_mickeycm", NULL, NULL, NULL, "1994",
	"Great Circus Mystery Starring Mickey & Minnie, The (USA)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mickeycmRomInfo, md_mickeycmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Great Waldo Search, The (USA)
static struct BurnRomInfo md_waldoRomDesc[] = {
	{ "great waldo search, the (usa).bin", 0x100000, 0x8c5c93b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_waldo)
STD_ROM_FN(md_waldo)

struct BurnDriver BurnDrvmd_waldo = {
	"md_waldo", NULL, NULL, NULL, "1992",
	"Great Waldo Search, The (USA)\0", NULL, "THQ", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_waldoRomInfo, md_waldoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Greatest Heavyweights (Euro)
static struct BurnRomInfo md_ghwRomDesc[] = {
	{ "mpr-16211.ic1", 0x200000, 0x9778c181, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghw)
STD_ROM_FN(md_ghw)

struct BurnDriver BurnDrvmd_ghw = {
	"md_ghw", NULL, NULL, NULL, "1994",
	"Greatest Heavyweights (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ghwRomInfo, md_ghwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Greatest Heavyweights (Japan)
static struct BurnRomInfo md_ghwjRomDesc[] = {
	{ "greatest heavyweights (jpn).bin", 0x200000, 0x7ef8b162, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghwj)
STD_ROM_FN(md_ghwj)

struct BurnDriver BurnDrvmd_ghwj = {
	"md_ghwj", "md_ghw", NULL, NULL, "1994",
	"Greatest Heavyweights (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ghwjRomInfo, md_ghwjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Greatest Heavyweights (USA)
static struct BurnRomInfo md_ghwuRomDesc[] = {
	{ "greatest heavyweights (usa).bin", 0x200000, 0x6e3621d5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghwu)
STD_ROM_FN(md_ghwu)

struct BurnDriver BurnDrvmd_ghwu = {
	"md_ghwu", "md_ghw", NULL, NULL, "1994",
	"Greatest Heavyweights (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ghwuRomInfo, md_ghwuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Greendog - The Beached Surfer Dude! (Euro, USA)
static struct BurnRomInfo md_greendogRomDesc[] = {
	{ "mpr-14993.bin", 0x080000, 0xc4820a03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_greendog)
STD_ROM_FN(md_greendog)

struct BurnDriver BurnDrvmd_greendog = {
	"md_greendog", NULL, NULL, NULL, "1992",
	"Greendog - The Beached Surfer Dude! (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_greendogRomInfo, md_greendogRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Grind Stormer (USA)
static struct BurnRomInfo md_grindstRomDesc[] = {
	{ "grind stormer (usa).bin", 0x100000, 0x7e6bef15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_grindst)
STD_ROM_FN(md_grindst)

struct BurnDriver BurnDrvmd_grindst = {
	"md_grindst", NULL, NULL, NULL, "1994",
	"Grind Stormer (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_grindstRomInfo, md_grindstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// V-Five (Japan)
static struct BurnRomInfo md_vfiveRomDesc[] = {
	{ "v-v (jpn).bin", 0x100000, 0xad9d0ec0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vfive)
STD_ROM_FN(md_vfive)

struct BurnDriver BurnDrvmd_vfive = {
	"md_vfive", "md_grindst", NULL, NULL, "1994",
	"V-Five (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_vfiveRomInfo, md_vfiveRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Growl (USA)
static struct BurnRomInfo md_growlRomDesc[] = {
	{ "growl (usa).bin", 0x080000, 0xf60ef143, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_growl)
STD_ROM_FN(md_growl)

struct BurnDriver BurnDrvmd_growl = {
	"md_growl", NULL, NULL, NULL, "1991",
	"Growl (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_growlRomInfo, md_growlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Runark (Japan, Korea)
static struct BurnRomInfo md_runarkRomDesc[] = {
	{ "runark (jpn, kor).bin", 0x080000, 0x0894d8fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_runark)
STD_ROM_FN(md_runark)

struct BurnDriver BurnDrvmd_runark = {
	"md_runark", "md_growl", NULL, NULL, "1991",
	"Runark (Japan, Korea)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_runarkRomInfo, md_runarkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunfight 3 in 1 (Taiwan) (Unl)
static struct BurnRomInfo md_Gun3in1RomDesc[] = {
	{ "Gunfight 3 in 1.md", 1048576, 0xe5785d45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Gun3in1)
STD_ROM_FN(md_Gun3in1)

struct BurnDriver Burnmd_Gun3in1 = {
	"md_gun3in1", NULL, NULL, NULL, "1998",
	"Gunfight 3 in 1 (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_Gun3in1RomInfo, md_Gun3in1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunship (Euro)
static struct BurnRomInfo md_gunshipRomDesc[] = {
	{ "gunship (euro).bin", 0x100000, 0xda1440c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunship)
STD_ROM_FN(md_gunship)

struct BurnDriver BurnDrvmd_gunship = {
	"md_gunship", NULL, NULL, NULL, "1993",
	"Gunship (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_gunshipRomInfo, md_gunshipRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunstar Heroes (Euro)
static struct BurnRomInfo md_gunstarRomDesc[] = {
	{ "gunstar heroes (euro).bin", 0x100000, 0x866ed9d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunstar)
STD_ROM_FN(md_gunstar)

struct BurnDriver BurnDrvmd_gunstar = {
	"md_gunstar", NULL, NULL, NULL, "1993",
	"Gunstar Heroes (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gunstarRomInfo, md_gunstarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunstar Heroes (Japan)
static struct BurnRomInfo md_gunstarjRomDesc[] = {
	{ "gunstar heroes (jpn).bin", 0x100000, 0x1cfd0383, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunstarj)
STD_ROM_FN(md_gunstarj)

struct BurnDriver BurnDrvmd_gunstarj = {
	"md_gunstarj", "md_gunstar", NULL, NULL, "1993",
	"Gunstar Heroes (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gunstarjRomInfo, md_gunstarjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunstar Heroes (Japan, Sample)
static struct BurnRomInfo md_gunstarjsRomDesc[] = {
	{ "gunstar heroes (jpn) (sample).bin", 0x100000, 0x6f90b502, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunstarjs)
STD_ROM_FN(md_gunstarjs)

struct BurnDriver BurnDrvmd_gunstarjs = {
	"md_gunstarjs", "md_gunstar", NULL, NULL, "1993",
	"Gunstar Heroes (Japan, Sample)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gunstarjsRomInfo, md_gunstarjsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunstar Heroes (USA)
static struct BurnRomInfo md_gunstaruRomDesc[] = {
	{ "gunstar heroes (usa).bin", 0x100000, 0xb813cf0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunstaru)
STD_ROM_FN(md_gunstaru)

struct BurnDriver BurnDrvmd_gunstaru = {
	"md_gunstaru", "md_gunstar", NULL, NULL, "1993",
	"Gunstar Heroes (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gunstaruRomInfo, md_gunstaruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gynoug (Euro)
static struct BurnRomInfo md_gynougRomDesc[] = {
	{ "mpr-14439.bin", 0x080000, 0x03405102, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gynoug)
STD_ROM_FN(md_gynoug)

struct BurnDriver BurnDrvmd_gynoug = {
	"md_gynoug", NULL, NULL, NULL, "1991",
	"Gynoug (Euro)\0", NULL, "NCS Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gynougRomInfo, md_gynougRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gynoug (Japan)
static struct BurnRomInfo md_gynougjRomDesc[] = {
	{ "gynoug (jpn).bin", 0x080000, 0x1b69241f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gynougj)
STD_ROM_FN(md_gynougj)

struct BurnDriver BurnDrvmd_gynougj = {
	"md_gynougj", "md_gynoug", NULL, NULL, "1991",
	"Gynoug (Japan)\0", NULL, "NCS Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gynougjRomInfo, md_gynougjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wings of Wor (USA)
static struct BurnRomInfo md_wingsworRomDesc[] = {
	{ "wings of wor (usa).bin", 0x080000, 0x210a2fcd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wingswor)
STD_ROM_FN(md_wingswor)

struct BurnDriver BurnDrvmd_wingswor = {
	"md_wingswor", "md_gynoug", NULL, NULL, "1991",
	"Wings of Wor (USA)\0", NULL, "Dreamworks Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_wingsworRomInfo, md_wingsworRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hard Drivin' (World)
static struct BurnRomInfo md_harddrivRomDesc[] = {
	{ "mpr-13489.bin", 0x040000, 0x3225baaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_harddriv)
STD_ROM_FN(md_harddriv)

struct BurnDriver BurnDrvmd_harddriv = {
	"md_harddriv", NULL, NULL, NULL, "1991",
	"Hard Drivin' (World)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_harddrivRomInfo, md_harddrivRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// HardBall '94 (Euro, USA)
static struct BurnRomInfo md_hardbl94RomDesc[] = {
	{ "hardball '94 (euro, usa).bin", 0x200000, 0xea9c4878, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hardbl94)
STD_ROM_FN(md_hardbl94)

struct BurnDriver BurnDrvmd_hardbl94 = {
	"md_hardbl94", NULL, NULL, NULL, "1994",
	"HardBall '94 (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hardbl94RomInfo, md_hardbl94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// HardBall '95 (USA)
static struct BurnRomInfo md_hardbl95RomDesc[] = {
	{ "hardball '95 (usa).bin", 0x300000, 0xed10bc9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hardbl95)
STD_ROM_FN(md_hardbl95)

struct BurnDriver BurnDrvmd_hardbl95 = {
	"md_hardbl95", NULL, NULL, NULL, "1995",
	"HardBall '95 (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hardbl95RomInfo, md_hardbl95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// HardBall III (USA)
static struct BurnRomInfo md_hardbal3RomDesc[] = {
	{ "hardball iii (usa).bin", 0x200000, 0xa4f2f011, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hardbal3)
STD_ROM_FN(md_hardbal3)

struct BurnDriver BurnDrvmd_hardbal3 = {
	"md_hardbal3", NULL, NULL, NULL, "1993",
	"HardBall III (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hardbal3RomInfo, md_hardbal3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// HardBall! (USA)
static struct BurnRomInfo md_hardballRomDesc[] = {
	{ "hardball! (usa).bin", 0x100000, 0xbd1b9a04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hardball)
STD_ROM_FN(md_hardball)

struct BurnDriver BurnDrvmd_hardball = {
	"md_hardball", NULL, NULL, NULL, "1991",
	"HardBall! (USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hardballRomInfo, md_hardballRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Haunting Starring Polterguy (Euro, USA)
static struct BurnRomInfo md_hauntingRomDesc[] = {
	{ "haunting starring polterguy (euro, usa).bin", 0x200000, 0xc9fc876d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_haunting)
STD_ROM_FN(md_haunting)

struct BurnDriver BurnDrvmd_haunting = {
	"md_haunting", NULL, NULL, NULL, "1993",
	"Haunting Starring Polterguy (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_hauntingRomInfo, md_hauntingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// High Seas Havoc (USA)
static struct BurnRomInfo md_havocuRomDesc[] = {
	{ "High Seas Havoc (USA)(1993)(Data East).bin", 0x100000, 0x17be551c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_havocu)
STD_ROM_FN(md_havocu)

struct BurnDriver BurnDrvmd_havocu = {
	"md_havocu", "md_havoc", NULL, NULL, "1993",
	"High Seas Havoc (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_havocuRomInfo, md_havocuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Heavy Nova (USA)
static struct BurnRomInfo md_heavynovRomDesc[] = {
	{ "heavy nova (usa).bin", 0x100000, 0xf6b6a9d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_heavynov)
STD_ROM_FN(md_heavynov)

struct BurnDriver BurnDrvmd_heavynov = {
	"md_heavynov", NULL, NULL, NULL, "1992",
	"Heavy Nova (USA)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_heavynovRomInfo, md_heavynovRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Heavy Unit - Mega Drive Special (Japan)
static struct BurnRomInfo md_hvyunitRomDesc[] = {
	{ "heavy unit - mega drive special (jpn).bin", 0x080000, 0x1acbe608, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hvyunit)
STD_ROM_FN(md_hvyunit)

struct BurnDriver BurnDrvmd_hvyunit = {
	"md_hvyunit", NULL, NULL, NULL, "1990",
	"Heavy Unit - Mega Drive Special (Japan)\0", NULL, "Toho", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_hvyunitRomInfo, md_hvyunitRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hei Tao 2 - Super Big 2 (China) (Unl)
static struct BurnRomInfo md_heitaoRomDesc[] = {
	{ "hei tao 2 - super big 2 (chi) (unl).bin", 0x100000, 0x31449113, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_heitao)
STD_ROM_FN(md_heitao)

struct BurnDriver BurnDrvmd_heitao = {
	"md_heitao", NULL, NULL, NULL, "1996",
	"Hei Tao 2 - Super Big 2 (China) (Unl)\0", NULL, "King Tec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CARD, 0,
	MegadriveGetZipName, md_heitaoRomInfo, md_heitaoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hellfire (Euro)
static struct BurnRomInfo md_hellfireRomDesc[] = {
	{ "mpr-14430.bin", 0x080000, 0xcf30acec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hellfire)
STD_ROM_FN(md_hellfire)

struct BurnDriver BurnDrvmd_hellfire = {
	"md_hellfire", NULL, NULL, NULL, "1991",
	"Hellfire (Euro)\0", NULL, "NCS Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_hellfireRomInfo, md_hellfireRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hellfire (Japan)
static struct BurnRomInfo md_hellfirejRomDesc[] = {
	{ "hellfire (jpn).bin", 0x080000, 0x8e5e13ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hellfirej)
STD_ROM_FN(md_hellfirej)

struct BurnDriver BurnDrvmd_hellfirej = {
	"md_hellfirej", "md_hellfire", NULL, NULL, "1990",
	"Hellfire (Japan)\0", NULL, "NCS Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_hellfirejRomInfo, md_hellfirejRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hellfire (USA)
static struct BurnRomInfo md_hellfireuRomDesc[] = {
	{ "hellfire (usa).bin", 0x080000, 0x184018f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hellfireu)
STD_ROM_FN(md_hellfireu)

struct BurnDriver BurnDrvmd_hellfireu = {
	"md_hellfireu", "md_hellfire", NULL, NULL, "1990",
	"Hellfire (USA)\0", NULL, "NCS Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_hellfireuRomInfo, md_hellfireuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Herzog Zwei (Japan)
static struct BurnRomInfo md_herzogjRomDesc[] = {
	{ "herzog zwei (jpn).bin", 0x080000, 0x4cf676b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_herzogj)
STD_ROM_FN(md_herzogj)

struct BurnDriver BurnDrvmd_herzogj = {
	"md_herzogj", "md_herzog", NULL, NULL, "1989",
	"Herzog Zwei (Japan)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_herzogjRomInfo, md_herzogjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hit the Ice (USA)
static struct BurnRomInfo md_hiticeRomDesc[] = {
	{ "hit the ice (usa).bin", 0x080000, 0x85b23606, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hitice)
STD_ROM_FN(md_hitice)

struct BurnDriver BurnDrvmd_hitice = {
	"md_hitice", NULL, NULL, NULL, "1992",
	"Hit the Ice (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hiticeRomInfo, md_hiticeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Home Alone (Euro, USA)
static struct BurnRomInfo md_homeaRomDesc[] = {
	{ "Home Alone (Euro, USA)(1992)(Sega).bin", 0x080000, 0xaa0d4387, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_homea)
STD_ROM_FN(md_homea)

struct BurnDriver BurnDrvmd_homea = {
	"md_homea", NULL, NULL, NULL, "1992",
	"Home Alone (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_homeaRomInfo, md_homeaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Home Alone (USA, Prototype)
static struct BurnRomInfo md_homeapRomDesc[] = {
	{ "Home Alone (USA, Prototype)(1992)(Sega).bin", 0x100000, 0x3a235fb9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_homeap)
STD_ROM_FN(md_homeap)

struct BurnDriver BurnDrvmd_homeap = {
	"md_homeap", "md_homea", NULL, NULL, "1992",
	"Home Alone (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_homeapRomInfo, md_homeapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Home Alone 2 - Lost in New York (USA)
static struct BurnRomInfo md_homea2RomDesc[] = {
	{ "Home Alone 2 - Lost in New York (USA)(1993)(Sega).bin", 0x080000, 0xcbf87c14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_homea2)
STD_ROM_FN(md_homea2)

struct BurnDriver BurnDrvmd_homea2 = {
	"md_homea2", NULL, NULL, NULL, "1993",
	"Home Alone 2 - Lost in New York (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_homea2RomInfo, md_homea2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Honoo no Toukyuuji - Dodge Danpei (Japan)
static struct BurnRomInfo md_ddanpeiRomDesc[] = {
	{ "Honoo no Toukyuuji - Dodge Danpei (Japan)(1992)(Sega).bin", 0x080000, 0x630f07c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddanpei)
STD_ROM_FN(md_ddanpei)

struct BurnDriver BurnDrvmd_ddanpei = {
	"md_ddanpei", NULL, NULL, NULL, "1992",
	"Honoo no Toukyuuji - Dodge Danpei (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ddanpeiRomInfo, md_ddanpeiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hook (Euro)
static struct BurnRomInfo md_hookRomDesc[] = {
	{ "Hook (Euro)(1992)(Sony Imagesoft).bin", 0x100000, 0xa154433a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hook)
STD_ROM_FN(md_hook)

struct BurnDriver BurnDrvmd_hook = {
	"md_hook", NULL, NULL, NULL, "1992",
	"Hook (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hookRomInfo, md_hookRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hook (USA)
static struct BurnRomInfo md_hookuRomDesc[] = {
	{ "Hook (USA)(1992)(Sony Imagesoft).bin", 0x100000, 0x2c48e712, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hooku)
STD_ROM_FN(md_hooku)

struct BurnDriver BurnDrvmd_hooku = {
	"md_hooku", "md_hook", NULL, NULL, "1992",
	"Hook (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hookuRomInfo, md_hookuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Humans, The (USA)
static struct BurnRomInfo md_humansRomDesc[] = {
	{ "Humans, The (USA)(1992)(GameTek).bin", 0x100000, 0xa0cf4366, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_humans)
STD_ROM_FN(md_humans)

struct BurnDriver BurnDrvmd_humans = {
	"md_humans", NULL, NULL, NULL, "1992",
	"Humans, The (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_humansRomInfo, md_humansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hurricanes (Euro)
static struct BurnRomInfo md_hurricanRomDesc[] = {
	{ "hurricanes (euro).bin", 0x200000, 0xdeccc874, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hurrican)
STD_ROM_FN(md_hurrican)

struct BurnDriver BurnDrvmd_hurrican = {
	"md_hurrican", NULL, NULL, NULL, "1994",
	"Hurricanes (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hurricanRomInfo, md_hurricanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hybrid Front, The (Japan)
static struct BurnRomInfo md_hybridfRomDesc[] = {
	{ "hybrid front, the (jpn).bin", 0x200000, 0xa1f1cfe7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hybridf)
STD_ROM_FN(md_hybridf)

struct BurnDriver BurnDrvmd_hybridf = {
	"md_hybridf", NULL, NULL, NULL, "1994",
	"Hybrid Front, The (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_hybridfRomInfo, md_hybridfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hybrid Front, The (Japan, Prototype)
static struct BurnRomInfo md_hybridfpRomDesc[] = {
	{ "hybrid front, the (jpn) (beta).bin", 0x300000, 0x04f02687, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hybridfp)
STD_ROM_FN(md_hybridfp)

struct BurnDriver BurnDrvmd_hybridfp = {
	"md_hybridfp", "md_hybridf", NULL, NULL, "1994",
	"Hybrid Front, The (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_hybridfpRomInfo, md_hybridfpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hyokkori Hyoutan Jima - Daitouryou o Mezase! (Japan)
static struct BurnRomInfo md_hyokkohjRomDesc[] = {
	{ "hyokkori hyoutanjima - daitouryou o mezase! (jpn).bin", 0x080000, 0x72253bdb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hyokkohj)
STD_ROM_FN(md_hyokkohj)

struct BurnDriver BurnDrvmd_hyokkohj = {
	"md_hyokkohj", NULL, NULL, NULL, "1992",
	"Hyokkori Hyoutan Jima - Daitouryou o Mezase! (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD, 0,
	MegadriveGetZipName, md_hyokkohjRomInfo, md_hyokkohjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hyper Dunk (Euro)
static struct BurnRomInfo md_hyperdnkRomDesc[] = {
	{ "hyper dunk (euro).bin", 0x200000, 0xf27c576a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hyperdnk)
STD_ROM_FN(md_hyperdnk)

struct BurnDriver BurnDrvmd_hyperdnk = {
	"md_hyperdnk", NULL, NULL, NULL, "1994",
	"Hyper Dunk (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hyperdnkRomInfo, md_hyperdnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hyper Dunk - The Playoff Edition (Japan)
static struct BurnRomInfo md_hyperdnkjRomDesc[] = {
	{ "fz009a1.bin", 0x200000, 0x5baf53d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hyperdnkj)
STD_ROM_FN(md_hyperdnkj)

struct BurnDriver BurnDrvmd_hyperdnkj = {
	"md_hyperdnkj", "md_hyperdnk", NULL, NULL, "1994",
	"Hyper Dunk - The Playoff Edition (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hyperdnkjRomInfo, md_hyperdnkjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hyper Dunk - The Playoff Edition (Japan, Prototype)
static struct BurnRomInfo md_hyperdnkjpRomDesc[] = {
	{ "hyper dunk - the playoff edition (jpn) (beta).in", 0x200000, 0xdb124bbb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hyperdnkjp)
STD_ROM_FN(md_hyperdnkjp)

struct BurnDriver BurnDrvmd_hyperdnkjp = {
	"md_hyperdnkjp", "md_hyperdnk", NULL, NULL, "1994",
	"Hyper Dunk - The Playoff Edition (Japan, Prototype)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_hyperdnkjpRomInfo, md_hyperdnkjpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Dribble - The Playoff Edition (USA)
static struct BurnRomInfo md_ddribbleRomDesc[] = {
	{ "double dribble - the playoff edition (usa).bin", 0x200000, 0x8352b1d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddribble)
STD_ROM_FN(md_ddribble)

struct BurnDriver BurnDrvmd_ddribble = {
	"md_ddribble", "md_hyperdnk", NULL, NULL, "1994",
	"Double Dribble - The Playoff Edition (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ddribbleRomInfo, md_ddribbleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hyper Marbles (Japan, SegaNet)
static struct BurnRomInfo md_hypermRomDesc[] = {
	{ "hyper marbles (jpn) (sn).bin", 0x040000, 0x83bb2799, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hyperm)
STD_ROM_FN(md_hyperm)

struct BurnDriver BurnDrvmd_hyperm = {
	"md_hyperm", NULL, NULL, NULL, "1991",
	"Hyper Marbles (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_hypermRomInfo, md_hypermRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hyper Marbles (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_hypermgnkRomDesc[] = {
	{ "hyper marbles (jpn) (gnk).bin", 0x040000, 0x9ed72146, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hypermgnk)
STD_ROM_FN(md_hypermgnk)

struct BurnDriver BurnDrvmd_hypermgnk = {
	"md_hypermgnk", "md_hyperm", NULL, NULL, "1991",
	"Hyper Marbles (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_hypermgnkRomInfo, md_hypermgnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// IMG International Tour Tennis (Euro, USA)
static struct BurnRomInfo md_imgittRomDesc[] = {
	{ "img international tour tennis (euro, usa).bin", 0x200000, 0xe04ffc2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_imgitt)
STD_ROM_FN(md_imgitt)

struct BurnDriver BurnDrvmd_imgitt = {
	"md_imgitt", NULL, NULL, NULL, "1994",
	"IMG International Tour Tennis (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_imgittRomInfo, md_imgittRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Immortal, The (Euro, USA)
static struct BurnRomInfo md_immortalRomDesc[] = {
	{ "immortal, the (euro, usa).bin", 0x100000, 0xf653c508, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_immortal)
STD_ROM_FN(md_immortal)

struct BurnDriver BurnDrvmd_immortal = {
	"md_immortal", NULL, NULL, NULL, "1991-93",
	"Immortal, The (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_immortalRomInfo, md_immortalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wizard of the Immortal (Japan)
static struct BurnRomInfo md_immortaljRomDesc[] = {
	{ "wizard of the immortal (jpn).bin", 0x200000, 0xc99fad92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_immortalj)
STD_ROM_FN(md_immortalj)

struct BurnDriver BurnDrvmd_immortalj = {
	"md_immortalj", "md_immortal", NULL, NULL, "1991-93",
	"Wizard of the Immortal (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_immortaljRomInfo, md_immortaljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Incredible Crash Dummies, The (USA, Prototype)
static struct BurnRomInfo md_crashdumpRomDesc[] = {
	{ "incredible crash dummies, the (usa) (beta).bin", 0x100000, 0x623a920f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crashdump)
STD_ROM_FN(md_crashdump)

struct BurnDriver BurnDrvmd_crashdump = {
	"md_crashdump", "md_crashdum", NULL, NULL, "1993",
	"Incredible Crash Dummies, The (USA, Prototype)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_crashdumpRomInfo, md_crashdumpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Incredible Hulk, The (Euro, USA)
static struct BurnRomInfo md_hulkRomDesc[] = {
	{ "incredible hulk, the (euro, usa).bin", 0x200000, 0x84a5a2dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hulk)
STD_ROM_FN(md_hulk)

struct BurnDriver BurnDrvmd_hulk = {
	"md_hulk", NULL, NULL, NULL, "1994",
	"Incredible Hulk, The (Euro, USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hulkRomInfo, md_hulkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Indiana Jones and the Last Crusade (Euro)
static struct BurnRomInfo md_indycrusRomDesc[] = {
	{ "mpr-15207.bin", 0x100000, 0xeb8f4374, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_indycrus)
STD_ROM_FN(md_indycrus)

struct BurnDriver BurnDrvmd_indycrus = {
	"md_indycrus", NULL, NULL, NULL, "1992",
	"Indiana Jones and the Last Crusade (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_indycrusRomInfo, md_indycrusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Indiana Jones and the Last Crusade (USA)
static struct BurnRomInfo md_indycrusuRomDesc[] = {
	{ "indiana jones and the last crusade (usa).bin", 0x100000, 0x3599a3fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_indycrusu)
STD_ROM_FN(md_indycrusu)

struct BurnDriver BurnDrvmd_indycrusu = {
	"md_indycrusu", "md_indycrus", NULL, NULL, "1992",
	"Indiana Jones and the Last Crusade (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_indycrusuRomInfo, md_indycrusuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Insector X (USA)
static struct BurnRomInfo md_insectxRomDesc[] = {
	{ "insector x (usa).bin", 0x080000, 0x70626304, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_insectx)
STD_ROM_FN(md_insectx)

struct BurnDriver BurnDrvmd_insectx = {
	"md_insectx", NULL, NULL, NULL, "1990",
	"Insector X (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_insectxRomInfo, md_insectxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Insector X (Japan, Korea)
static struct BurnRomInfo md_insectxjRomDesc[] = {
	{ "insector x (jpn, kor).bin", 0x080000, 0x9625c434, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_insectxj)
STD_ROM_FN(md_insectxj)

struct BurnDriver BurnDrvmd_insectxj = {
	"md_insectxj", "md_insectx", NULL, NULL, "1990",
	"Insector X (Japan, Korea)\0", NULL, "Hot-B", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_insectxjRomInfo, md_insectxjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (USA)
static struct BurnRomInfo md_instchRomDesc[] = {
	{ "instruments of chaos starring young indiana jones (usa).bin", 0x100000, 0x4e384ef0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instch)
STD_ROM_FN(md_instch)

struct BurnDriver BurnDrvmd_instch = {
	"md_instch", NULL, NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchRomInfo, md_instchRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype)
static struct BurnRomInfo md_instchp1RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (usa) (beta).bin", 0x180000, 0xad6c2050, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp1)
STD_ROM_FN(md_instchp1)

struct BurnDriver BurnDrvmd_instchp1 = {
	"md_instchp1", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp1RomInfo, md_instchp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941229)
static struct BurnRomInfo md_instchp2RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - dec 29, 1994).bin", 0x100000, 0x94b02351, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp2)
STD_ROM_FN(md_instchp2)

struct BurnDriver BurnDrvmd_instchp2 = {
	"md_instchp2", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941229)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp2RomInfo, md_instchp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941228-A)
static struct BurnRomInfo md_instchp3RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - dec 28, 1994 - a).bin", 0x0ff73c, 0xf285ad46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp3)
STD_ROM_FN(md_instchp3)

struct BurnDriver BurnDrvmd_instchp3 = {
	"md_instchp3", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19941228-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp3RomInfo, md_instchp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940101)
static struct BurnRomInfo md_instchp8RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - jan 01, 1994).bin", 0x100000, 0x263f1a4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp8)
STD_ROM_FN(md_instchp8)

struct BurnDriver BurnDrvmd_instchp8 = {
	"md_instchp8", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940101)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp8RomInfo, md_instchp8RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940103)
static struct BurnRomInfo md_instchp7RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - jan 03, 1994).bin", 0x100000, 0x3c46d83d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp7)
STD_ROM_FN(md_instchp7)

struct BurnDriver BurnDrvmd_instchp7 = {
	"md_instchp7", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940103)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp7RomInfo, md_instchp7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940126)
static struct BurnRomInfo md_instchp6RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - jan 26, 1994).bin", 0x100000, 0xf3498542, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp6)
STD_ROM_FN(md_instchp6)

struct BurnDriver BurnDrvmd_instchp6 = {
	"md_instchp6", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940126)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp6RomInfo, md_instchp6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940127)
static struct BurnRomInfo md_instchp5RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - jan 27, 1994).bin", 0x100000, 0xf43112c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp5)
STD_ROM_FN(md_instchp5)

struct BurnDriver BurnDrvmd_instchp5 = {
	"md_instchp5", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940127)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp5RomInfo, md_instchp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940923-A)
static struct BurnRomInfo md_instchp4RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - sep 23, 1994 - a).bin", 0x0fe3c4, 0x14443a29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp4)
STD_ROM_FN(md_instchp4)

struct BurnDriver BurnDrvmd_instchp4 = {
	"md_instchp4", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19940923-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp4RomInfo, md_instchp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Instruments of Chaos Starring Young Indiana Jones (Prototype, 19931228)
static struct BurnRomInfo md_instchp9RomDesc[] = {
	{ "instruments of chaos starring young indiana jones (prototype - dec 28, 1993).bin", 0x100000, 0x51ca641c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_instchp9)
STD_ROM_FN(md_instchp9)

struct BurnDriver BurnDrvmd_instchp9 = {
	"md_instchp9", "md_instch", NULL, NULL, "1994",
	"Instruments of Chaos Starring Young Indiana Jones (Prototype, 19931228)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_instchp9RomInfo, md_instchp9RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// International Rugby (Euro)
static struct BurnRomInfo md_intrugbyRomDesc[] = {
	{ "international rugby (euro).bin", 0x080000, 0xd97d1699, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_intrugby)
STD_ROM_FN(md_intrugby)

struct BurnDriver BurnDrvmd_intrugby = {
	"md_intrugby", NULL, NULL, NULL, "1993",
	"International Rugby (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_intrugbyRomInfo, md_intrugbyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// International Superstar Soccer Deluxe (Euro)
static struct BurnRomInfo md_issdxRomDesc[] = {
	{ "international superstar soccer deluxe (euro).bin", 0x200000, 0x9bb3b180, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_issdx)
STD_ROM_FN(md_issdx)

struct BurnDriver BurnDrvmd_issdx = {
	"md_issdx", NULL, NULL, NULL, "1996",
	"International Superstar Soccer Deluxe (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_issdxRomInfo, md_issdxRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ishido - The Way of Stones (USA)
static struct BurnRomInfo md_ishidoRomDesc[] = {
	{ "mb834200a.bin", 0x020000, 0xb1de7d5e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ishido)
STD_ROM_FN(md_ishido)

struct BurnDriver BurnDrvmd_ishido = {
	"md_ishido", NULL, NULL, NULL, "1990",
	"Ishido - The Way of Stones (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_ishidoRomInfo, md_ishidoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// It Came from the Desert (USA)
static struct BurnRomInfo md_itcameRomDesc[] = {
	{ "it came from the desert (usa).bin", 0x080000, 0x25afb4f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_itcame)
STD_ROM_FN(md_itcame)

struct BurnDriver BurnDrvmd_itcame = {
	"md_itcame", NULL, NULL, NULL, "1990",
	"It Came from the Desert (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_itcameRomInfo, md_itcameRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Itchy and Scratchy Game, The (USA, Prototype)
static struct BurnRomInfo md_itchyRomDesc[] = {
	{ "itchy and scratchy game, the (usa) (prototype).bin", 0x100000, 0x81b7725d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_itchy)
STD_ROM_FN(md_itchy)

struct BurnDriver BurnDrvmd_itchy = {
	"md_itchy", NULL, NULL, NULL, "1994",
	"Itchy and Scratchy Game, The (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_itchyRomInfo, md_itchyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Izzy's Quest for the Olympic Rings (Euro, USA)
static struct BurnRomInfo md_izzyqstRomDesc[] = {
	{ "izzy's quest for the olympic rings (euro, usa).bin", 0x200000, 0x77b416e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_izzyqst)
STD_ROM_FN(md_izzyqst)

struct BurnDriver BurnDrvmd_izzyqst = {
	"md_izzyqst", NULL, NULL, NULL, "1995",
	"Izzy's Quest for the Olympic Rings (Euro, USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_izzyqstRomInfo, md_izzyqstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// J. League Pro Striker '93 (Japan, v1.3)
static struct BurnRomInfo md_jlpsRomDesc[] = {
	{ "j. league pro striker (jpn) (v1.3).bin", 0x100000, 0x2d5b7a11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jlps)
STD_ROM_FN(md_jlps)

struct BurnDriver BurnDrvmd_jlps = {
	"md_jlps", NULL, NULL, NULL, "1993",
	"J. League Pro Striker '93 (Japan, v1.3)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_jlpsRomInfo, md_jlpsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// J. League Pro Striker '93 (Japan, v1.0)
static struct BurnRomInfo md_jlpsaRomDesc[] = {
	{ "j. league pro striker (jpn) (v1.0).bin", 0x100000, 0xec229156, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jlpsa)
STD_ROM_FN(md_jlpsa)

struct BurnDriver BurnDrvmd_jlpsa = {
	"md_jlpsa", "md_jlps", NULL, NULL, "1993",
	"J. League Pro Striker '93 (Japan, v1.0)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_jlpsaRomInfo, md_jlpsaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// J. League Pro Striker 2 (Japan)
static struct BurnRomInfo md_jlps2RomDesc[] = {
	{ "mpr-16857.bin", 0x200000, 0x9fe71002, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jlps2)
STD_ROM_FN(md_jlps2)

struct BurnDriver BurnDrvmd_jlps2 = {
	"md_jlps2", NULL, NULL, NULL, "1994",
	"J. League Pro Striker 2 (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_jlps2RomInfo, md_jlps2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pro Striker Final Stage (Japan)
static struct BurnRomInfo md_prostrfsRomDesc[] = {
	{ "j. league pro striker final stage (jpn).bin", 0x200000, 0xe35e25fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_prostrfs)
STD_ROM_FN(md_prostrfs)

struct BurnDriver BurnDrvmd_prostrfs = {
	"md_prostrfs", NULL, NULL, NULL, "1995",
	"Pro Striker Final Stage (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_prostrfsRomInfo, md_prostrfsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// J. League Pro Striker Perfect (Japan)
static struct BurnRomInfo md_jlpspRomDesc[] = {
	{ "mpr-16267.bin", 0x100000, 0x0abed379, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jlpsp)
STD_ROM_FN(md_jlpsp)

struct BurnDriver BurnDrvmd_jlpsp = {
	"md_jlpsp", NULL, NULL, NULL, "1993",
	"J. League Pro Striker Perfect (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_jlpspRomInfo, md_jlpspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jack Nicklaus' Power Challenge Golf (Euro, USA)
static struct BurnRomInfo md_nicklausRomDesc[] = {
	{ "jack nicklaus' power challenge golf (euro, usa).bin", 0x100000, 0x5545e909, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nicklaus)
STD_ROM_FN(md_nicklaus)

struct BurnDriver BurnDrvmd_nicklaus = {
	"md_nicklaus", NULL, NULL, NULL, "1993",
	"Jack Nicklaus' Power Challenge Golf (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nicklausRomInfo, md_nicklausRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Bond 007 - The Duel (Euro, Rev. A)
static struct BurnRomInfo md_jb007RomDesc[] = {
	{ "mpr-15312a", 0x080000, 0x66635364, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jb007)
STD_ROM_FN(md_jb007)

struct BurnDriver BurnDrvmd_jb007 = {
	"md_jb007", NULL, NULL, NULL, "1992",
	"James Bond 007 - The Duel (Euro, Rev. A)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_jb007RomInfo, md_jb007RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Bond 007 - The Duel (USA)
static struct BurnRomInfo md_jb007uRomDesc[] = {
	{ "james bond 007 - the duel (usa).bin", 0x080000, 0x4e614548, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jb007u)
STD_ROM_FN(md_jb007u)

struct BurnDriver BurnDrvmd_jb007u = {
	"md_jb007u", "md_jb007", NULL, NULL, "1992",
	"James Bond 007 - The Duel (USA)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_jb007uRomInfo, md_jb007uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Bond 007 - The Duel (Japan)
static struct BurnRomInfo md_jb007jRomDesc[] = {
	{ "007 shitou - the duel (jpn).bin", 0x080000, 0xaeb4b262, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jb007j)
STD_ROM_FN(md_jb007j)

struct BurnDriver BurnDrvmd_jb007j = {
	"md_jb007j", "md_jb007", NULL, NULL, "1993",
	"James Bond 007 - The Duel (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_jb007jRomInfo, md_jb007jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James 'Buster' Douglas Knockout Boxing (Euro, USA)
static struct BurnRomInfo md_jbdougkoRomDesc[] = {
	{ "mpr-13262.bin", 0x080000, 0x87bbcf2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jbdougko)
STD_ROM_FN(md_jbdougko)

struct BurnDriver BurnDrvmd_jbdougko = {
	"md_jbdougko", NULL, NULL, NULL, "1990",
	"James 'Buster' Douglas Knockout Boxing (Euro, USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_jbdougkoRomInfo, md_jbdougkoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Final Blow (Japan)
static struct BurnRomInfo md_finalbRomDesc[] = {
	{ "final blow (jpn).bin", 0x080000, 0x48ad505d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_finalb)
STD_ROM_FN(md_finalb)

struct BurnDriver BurnDrvmd_finalb = {
	"md_finalb", "md_jbdougko", NULL, NULL, "1990",
	"Final Blow (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_finalbRomInfo, md_finalbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Pond - Underwater Agent (Euro, USA)
static struct BurnRomInfo md_jpondRomDesc[] = {
	{ "james_pond_u1_jam03", 0x080000, 0xd0e7b466, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jpond)
STD_ROM_FN(md_jpond)

struct BurnDriver BurnDrvmd_jpond = {
	"md_jpond", NULL, NULL, NULL, "1991",
	"James Pond - Underwater Agent (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jpondRomInfo, md_jpondRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Pond II - Codename RoboCod (Euro, USA)
static struct BurnRomInfo md_robocodRomDesc[] = {
	{ "pond_ii_robocod_ro_b02", 0x080000, 0xc32b5d66, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robocod)
STD_ROM_FN(md_robocod)

struct BurnDriver BurnDrvmd_robocod = {
	"md_robocod", NULL, NULL, NULL, "1991",
	"James Pond II - Codename RoboCod (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robocodRomInfo, md_robocodRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Pond II - Codename RoboCod (Japan, Korea)
static struct BurnRomInfo md_robocodjRomDesc[] = {
	{ "james pond ii - codename robocod (jpn, kor).bin", 0x080000, 0x98794702, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robocodj)
STD_ROM_FN(md_robocodj)

struct BurnDriver BurnDrvmd_robocodj = {
	"md_robocodj", "md_robocod", NULL, NULL, "1991",
	"James Pond II - Codename RoboCod (Japan, Korea)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robocodjRomInfo, md_robocodjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// James Pond 3 - Operation Starfish (Euro, USA)
static struct BurnRomInfo md_jpond3RomDesc[] = {
	{ "james pond 3 - operation starfish (euro, usa).bin", 0x200000, 0x26f64b2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jpond3)
STD_ROM_FN(md_jpond3)

struct BurnDriver BurnDrvmd_jpond3 = {
	"md_jpond3", NULL, NULL, NULL, "1993",
	"James Pond 3 - Operation Starfish (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jpond3RomInfo, md_jpond3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jammit (USA)
static struct BurnRomInfo md_jammitRomDesc[] = {
	{ "jammit (usa).bin", 0x200000, 0xd91b52b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jammit)
STD_ROM_FN(md_jammit)

struct BurnDriver BurnDrvmd_jammit = {
	"md_jammit", NULL, NULL, NULL, "1994",
	"Jammit (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jammitRomInfo, md_jammitRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Janou Touryuumon (Japan)
static struct BurnRomInfo md_janoutRomDesc[] = {
	{ "janou touryuumon (jpn).bin", 0x100000, 0xb5ef97c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_janout)
STD_ROM_FN(md_janout)

struct BurnDriver BurnDrvmd_janout = {
	"md_janout", NULL, NULL, NULL, "1993",
	"Janou Touryuumon (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_janoutRomInfo, md_janoutRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jantei Monogatari (Japan)
static struct BurnRomInfo md_janteiRomDesc[] = {
	{ "jantei monogatari (jpn).bin", 0x100000, 0x8a1b19ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jantei)
STD_ROM_FN(md_jantei)

struct BurnDriver BurnDrvmd_jantei = {
	"md_jantei", NULL, NULL, NULL, "1991",
	"Jantei Monogatari (Japan)\0", NULL, "Reno", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_janteiRomInfo, md_janteiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jelly Boy (Euro, Prototype)
static struct BurnRomInfo md_jellyboyRomDesc[] = {
	{ "jelly boy (euro) (prototype).bin", 0x100000, 0x7cfadc16, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jellyboy)
STD_ROM_FN(md_jellyboy)

struct BurnDriver BurnDrvmd_jellyboy = {
	"md_jellyboy", NULL, NULL, NULL, "199?",
	"Jelly Boy (Euro, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jellyboyRomInfo, md_jellyboyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jeopardy! (USA)
static struct BurnRomInfo md_jeopardyRomDesc[] = {
	{ "jeopardy! (usa).bin", 0x080000, 0x56cff3f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jeopardy)
STD_ROM_FN(md_jeopardy)

struct BurnDriver BurnDrvmd_jeopardy = {
	"md_jeopardy", NULL, NULL, NULL, "1992",
	"Jeopardy! (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 3, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_jeopardyRomInfo, md_jeopardyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jeopardy! Deluxe (USA)
static struct BurnRomInfo md_jeoparddRomDesc[] = {
	{ "jeopardy! deluxe (usa).bin", 0x080000, 0x25e2f9d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jeopardd)
STD_ROM_FN(md_jeopardd)

struct BurnDriver BurnDrvmd_jeopardd = {
	"md_jeopardd", NULL, NULL, NULL, "1993",
	"Jeopardy! Deluxe (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 3, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_jeoparddRomInfo, md_jeoparddRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jeopardy! Sports Edition (USA)
static struct BurnRomInfo md_jeopardsRomDesc[] = {
	{ "jeopardy! sports edition (usa).bin", 0x080000, 0x13f924d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jeopards)
STD_ROM_FN(md_jeopards)

struct BurnDriver BurnDrvmd_jeopards = {
	"md_jeopards", NULL, NULL, NULL, "1993",
	"Jeopardy! Sports Edition (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 3, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_jeopardsRomInfo, md_jeopardsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jerry Glanville's Pigskin Footbrawl (USA)
static struct BurnRomInfo md_pigskinfRomDesc[] = {
	{ "jerry glanville's pigskin footbrawl (usa).bin", 0x100000, 0xe7f48d30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pigskinf)
STD_ROM_FN(md_pigskinf)

struct BurnDriver BurnDrvmd_pigskinf = {
	"md_pigskinf", NULL, NULL, NULL, "1992",
	"Jerry Glanville's Pigskin Footbrawl (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pigskinfRomInfo, md_pigskinfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jewel Master (Japan)
static struct BurnRomInfo md_jewelmsjRomDesc[] = {
	{ "jewel master (jpn).bin", 0x080000, 0x2cf6926c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jewelmsj)
STD_ROM_FN(md_jewelmsj)

struct BurnDriver BurnDrvmd_jewelmsj = {
	"md_jewelmsj", "md_jewelms", NULL, NULL, "1991",
	"Jewel Master (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jewelmsjRomInfo, md_jewelmsjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jim Power - The Arcade Game (USA, Prototype)
static struct BurnRomInfo md_jimpowerRomDesc[] = {
	{ "jim power - the arcade game (usa) (prototype) (bad dump).bin", 0x100000, 0x1cf3238b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jimpower)
STD_ROM_FN(md_jimpower)

struct BurnDriver BurnDrvmd_jimpower = {
	"md_jimpower", "md_jimpowerpiko", NULL, NULL, "1993",
	"Jim Power - The Arcade Game (USA, Prototype)\0", "imperfect graphics", "Loriciel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_jimpowerRomInfo, md_jimpowerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jimmy White's Whirlwind Snooker (Euro)
static struct BurnRomInfo md_jimmywwsRomDesc[] = {
	{ "jimmy white's whirlwind snooker (euro).bin", 0x080000, 0x0aef5b1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jimmywws)
STD_ROM_FN(md_jimmywws)

struct BurnDriver BurnDrvmd_jimmywws = {
	"md_jimmywws", NULL, NULL, NULL, "1994",
	"Jimmy White's Whirlwind Snooker (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jimmywwsRomInfo, md_jimmywwsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jiu Ji Ma Jiang II - Ye Yan Bian (China) (Unl)
static struct BurnRomInfo md_jiujimRomDesc[] = {
	{ "jiu ji ma jiang ii - ye yan bian (chi) (unl).bin", 0x100000, 0xe9829b22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jiujim)
STD_ROM_FN(md_jiujim)

struct BurnDriver BurnDrvmd_jiujim = {
	"md_jiujim", NULL, NULL, NULL, "199?",
	"Jiu Ji Ma Jiang II - Ye Yan Bian (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_jiujimRomInfo, md_jiujimRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Joe & Mac (USA)
static struct BurnRomInfo md_joemacRomDesc[] = {
	{ "Joe & Mac (USA)(1991)(Takara).bin", 0x100000, 0x85bcc1c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_joemac)
STD_ROM_FN(md_joemac)

struct BurnDriver BurnDrvmd_joemac = {
	"md_joemac", NULL, NULL, NULL, "1991",
	"Joe & Mac (USA)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_joemacRomInfo, md_joemacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Joe Montana Football (World)
static struct BurnRomInfo md_joemontRomDesc[] = {
	{ "Joe Montana Football (World)(1990)(Sega).bin", 0x080000, 0x8aa6a1dd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_joemont)
STD_ROM_FN(md_joemont)

struct BurnDriver BurnDrvmd_joemont = {
	"md_joemont", NULL, NULL, NULL, "1990",
	"Joe Montana Football (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_joemontRomInfo, md_joemontRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Joe Montana II Sports Talk Football (World, Rev. A)
static struct BurnRomInfo md_joemont2RomDesc[] = {
	{ "Joe Montana II Sports Talk Football (World, Rev A)(1991)(Sega).bin", 0x100000, 0xa45da893, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_joemont2)
STD_ROM_FN(md_joemont2)

struct BurnDriver BurnDrvmd_joemont2 = {
	"md_joemont2", NULL, NULL, NULL, "1991",
	"Joe Montana II Sports Talk Football (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_joemont2RomInfo, md_joemont2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Joe Montana II Sports Talk Football (World)
static struct BurnRomInfo md_joemont2aRomDesc[] = {
	{ "Joe Montana II Sports Talk Football (World)(1991)(Sega).bin", 0x100000, 0xf2363a4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_joemont2a)
STD_ROM_FN(md_joemont2a)

struct BurnDriver BurnDrvmd_joemont2a = {
	"md_joemont2a", "md_joemont2", NULL, NULL, "1991",
	"Joe Montana II Sports Talk Football (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_joemont2aRomInfo, md_joemont2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// John Madden Football '92 (Euro, USA)
static struct BurnRomInfo md_madden92RomDesc[] = {
	{ "John Madden Football '92 (Euro, USA)(1991)(Electronic Arts).bin", 0x080000, 0x046e3945, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden92)
STD_ROM_FN(md_madden92)

struct BurnDriver BurnDrvmd_madden92 = {
	"md_madden92", NULL, NULL, NULL, "1991",
	"John Madden Football '92 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden92RomInfo, md_madden92RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// John Madden Football '93 (Euro, USA)
static struct BurnRomInfo md_madden93RomDesc[] = {
	{ "John Madden Football '93 (Euro, USA)(1992)(Electronic Arts).bin", 0x100000, 0xca323b3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden93)
STD_ROM_FN(md_madden93)

struct BurnDriver BurnDrvmd_madden93 = {
	"md_madden93", NULL, NULL, NULL, "1992",
	"John Madden Football '93 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden93RomInfo, md_madden93RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// John Madden Football '93 - Championship Edition (USA)
static struct BurnRomInfo md_madd93ceRomDesc[] = {
	{ "John Madden Football '93 - Championship Edition (USA)(1992)(Electronic Arts).bin", 0x100000, 0xca534b1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madd93ce)
STD_ROM_FN(md_madd93ce)

struct BurnDriver BurnDrvmd_madd93ce = {
	"md_madd93ce", NULL, NULL, NULL, "1992",
	"John Madden Football '93 - Championship Edition (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madd93ceRomInfo, md_madd93ceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// John Madden Football (Euro, USA)
static struct BurnRomInfo md_maddenRomDesc[] = {
	{ "John Madden Football (Euro, USA)(1990)(Electronic Arts).bin", 0x080000, 0x90fb8818, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden)
STD_ROM_FN(md_madden)

struct BurnDriver BurnDrvmd_madden = {
	"md_madden", NULL, NULL, NULL, "1990",
	"John Madden Football (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_maddenRomInfo, md_maddenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// John Madden Football - Pro Football (Japan)
static struct BurnRomInfo md_maddenjRomDesc[] = {
	{ "John Madden Football - Pro Football (Japan)(1992)(Victor).bin", 0x080000, 0x0460611c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_maddenj)
STD_ROM_FN(md_maddenj)

struct BurnDriver BurnDrvmd_maddenj = {
	"md_maddenj", "md_madden", NULL, NULL, "1992",
	"John Madden Football - Pro Football (Japan)\0", NULL, "Victor - Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_maddenjRomInfo, md_maddenjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super One on One - Jordan Vs Bird (Euro, USA, Rev. 1)
static struct BurnRomInfo md_jordanbRomDesc[] = {
	{ "Super One on One - Jordan Vs Bird (Euro, USA, Rev. 1)(1992)(Electronic Arts).bin", 0x080000, 0x4d3ddd7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jordanb)
STD_ROM_FN(md_jordanb)

struct BurnDriver BurnDrvmd_jordanb = {
	"md_jordanb", NULL, NULL, NULL, "1992",
	"Super One on One - Jordan Vs Bird (Euro, USA, Rev. 1)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jordanbRomInfo, md_jordanbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super One on One - Jordan Vs Bird (Euro, USA)
static struct BurnRomInfo md_jordanb1RomDesc[] = {
	{ "Super One on One - Jordan Vs Bird (Euro, USA)(1992)(Electronic Arts).bin", 0x080000, 0x22d77e6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jordanb1)
STD_ROM_FN(md_jordanb1)

struct BurnDriver BurnDrvmd_jordanb1 = {
	"md_jordanb1", "md_jordanb", NULL, NULL, "1992",
	"Super One on One - Jordan Vs Bird (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jordanb1RomInfo, md_jordanb1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super One on One - Jordan Vs Bird (Japan)
static struct BurnRomInfo md_jordanbjRomDesc[] = {
	{ "Super One on One - Jordan Vs Bird (Japan)(1993)(Victor).bin", 0x080000, 0x8837e896, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jordanbj)
STD_ROM_FN(md_jordanbj)

struct BurnDriver BurnDrvmd_jordanbj = {
	"md_jordanbj", "md_jordanb", NULL, NULL, "1993",
	"Super One on One - Jordan Vs Bird (Japan)\0", NULL, "Victor - Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jordanbjRomInfo, md_jordanbjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Joshua & The Battle of Jericho (USA) (Unl)
static struct BurnRomInfo md_joshuaRomDesc[] = {
	{ "joshua & the battle of jericho (usa) (unl).bin", 0x040000, 0xda9e25aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_joshua)
STD_ROM_FN(md_joshua)

struct BurnDriver BurnDrvmd_joshua = {
	"md_joshua", NULL, NULL, NULL, "1994",
	"Joshua & The Battle of Jericho (USA) (Unl)\0", NULL, "Wisdom Tree", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_joshuaRomInfo, md_joshuaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Judge Dredd (World)
static struct BurnRomInfo md_jdreddRomDesc[] = {
	{ "judge dredd (world).bin", 0x200000, 0xea342ed8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jdredd)
STD_ROM_FN(md_jdredd)

struct BurnDriver BurnDrvmd_jdredd = {
	"md_jdredd", NULL, NULL, NULL, "1995",
	"Judge Dredd (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jdreddRomInfo, md_jdreddRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Judge Dredd (USA, Prototype, Alt)
static struct BurnRomInfo md_jdreddp2RomDesc[] = {
	{ "judge dredd (usa) (beta) (alt).bin", 0x200000, 0xe649f784, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jdreddp2)
STD_ROM_FN(md_jdreddp2)

struct BurnDriver BurnDrvmd_jdreddp2 = {
	"md_jdreddp2", "md_jdredd", NULL, NULL, "1995",
	"Judge Dredd (USA, Prototype, Alt)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jdreddp2RomInfo, md_jdreddp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Judge Dredd (USA, Prototype)
static struct BurnRomInfo md_jdreddp1RomDesc[] = {
	{ "judge dredd (usa) (beta).bin", 0x200000, 0x8d46f4da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jdreddp1)
STD_ROM_FN(md_jdreddp1)

struct BurnDriver BurnDrvmd_jdreddp1 = {
	"md_jdreddp1", "md_jdredd", NULL, NULL, "1995",
	"Judge Dredd (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jdreddp1RomInfo, md_jdreddp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Junction (Japan, USA)
static struct BurnRomInfo md_junctionRomDesc[] = {
	{ "junction (usa, jpn).bin", 0x080000, 0x94cdce8d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_junction)
STD_ROM_FN(md_junction)

struct BurnDriver BurnDrvmd_junction = {
	"md_junction", NULL, NULL, NULL, "1990",
	"Junction (Japan, USA)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_junctionRomInfo, md_junctionRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's The Jungle Book (Euro)
static struct BurnRomInfo md_jungleRomDesc[] = {
	{ "jungle book, the (euro).bin", 0x200000, 0xb9709a99, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jungle)
STD_ROM_FN(md_jungle)

struct BurnDriver BurnDrvmd_jungle = {
	"md_jungle", NULL, NULL, NULL, "1994",
	"Disney's The Jungle Book (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jungleRomInfo, md_jungleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's The Jungle Book (USA)
static struct BurnRomInfo md_jungleuRomDesc[] = {
	{ "jungle book, the (usa).bin", 0x200000, 0x3fb6d92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jungleu)
STD_ROM_FN(md_jungleu)

struct BurnDriver BurnDrvmd_jungleu = {
	"md_jungleu", "md_jungle", NULL, NULL, "1994",
	"Disney's The Jungle Book (USA)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jungleuRomInfo, md_jungleuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Disney's The Jungle Book (WCES 1994 Prototype)
static struct BurnRomInfo md_junglepRomDesc[] = {
	{ "the jungle book (wces 1994 prototype).bin", 0x100000, 0x20b97d87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_junglep)
STD_ROM_FN(md_junglep)

struct BurnDriver BurnDrvmd_junglep = {
	"md_junglep", "md_jungle", NULL, NULL, "1994",
	"Disney's The Jungle Book (WCES 1994 Prototype)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_junglepRomInfo, md_junglepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jungle Strike (Euro, USA)
static struct BurnRomInfo md_jstrikeRomDesc[] = {
	{ "jungle strike (euro, usa).bin", 0x200000, 0xa5d29735, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jstrike)
STD_ROM_FN(md_jstrike)

struct BurnDriver BurnDrvmd_jstrike = {
	"md_jstrike", NULL, NULL, NULL, "1993",
	"Jungle Strike (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_jstrikeRomInfo, md_jstrikeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jungle Strike (USA, Prototype)
static struct BurnRomInfo md_jstrikepRomDesc[] = {
	{ "jungle strike (usa) (beta).bin", 0x200000, 0x0cd540d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jstrikep)
STD_ROM_FN(md_jstrikep)

struct BurnDriver BurnDrvmd_jstrikep = {
	"md_jstrikep", "md_jstrike", NULL, NULL, "1993",
	"Jungle Strike (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_jstrikepRomInfo, md_jstrikepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jungle Strike - Uketsugareta Kyouki (Japan)
static struct BurnRomInfo md_jstrikejRomDesc[] = {
	{ "jungle strike - uketsugareta kyouki (jpn).bin", 0x200000, 0xba7a870b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jstrikej)
STD_ROM_FN(md_jstrikej)

struct BurnDriver BurnDrvmd_jstrikej = {
	"md_jstrikej", "md_jstrike", NULL, NULL, "1993",
	"Jungle Strike - Uketsugareta Kyouki (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_jstrikejRomInfo, md_jstrikejRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park (Euro)
static struct BurnRomInfo md_jparkRomDesc[] = {
	{ "mpr-15679.bin", 0x200000, 0x448341f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jpark)
STD_ROM_FN(md_jpark)

struct BurnDriver BurnDrvmd_jpark = {
	"md_jpark", NULL, NULL, NULL, "1993",
	"Jurassic Park (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkRomInfo, md_jparkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park (Japan)
static struct BurnRomInfo md_jparkjRomDesc[] = {
	{ "jurassic park (jpn).bin", 0x200000, 0xec8e5783, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkj)
STD_ROM_FN(md_jparkj)

struct BurnDriver BurnDrvmd_jparkj = {
	"md_jparkj", "md_jpark", NULL, NULL, "1993",
	"Jurassic Park (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkjRomInfo, md_jparkjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park (USA)
static struct BurnRomInfo md_jparkuRomDesc[] = {
	{ "jurassic park (usa).bin", 0x200000, 0x7b31deef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparku)
STD_ROM_FN(md_jparku)

struct BurnDriver BurnDrvmd_jparku = {
	"md_jparku", "md_jpark", NULL, NULL, "1993",
	"Jurassic Park (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkuRomInfo, md_jparkuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park (USA, Prototype)
static struct BurnRomInfo md_jparkupRomDesc[] = {
	{ "jurassic park (usa) (beta).bin", 0x200000, 0xcf890eed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkup)
STD_ROM_FN(md_jparkup)

struct BurnDriver BurnDrvmd_jparkup = {
	"md_jparkup", "md_jpark", NULL, NULL, "1993",
	"Jurassic Park (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkupRomInfo, md_jparkupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Euro, USA)
static struct BurnRomInfo md_jparkreRomDesc[] = {
	{ "jurassic park - rampage edition (euro, usa).bin", 0x200000, 0x98b4aa1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkre)
STD_ROM_FN(md_jparkre)

struct BurnDriver BurnDrvmd_jparkre = {
	"md_jparkre", NULL, NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkreRomInfo, md_jparkreRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940708)
static struct BurnRomInfo md_jparkrep6RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jul 08, 1994).bin", 0x200000, 0xf4c78bd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep6)
STD_ROM_FN(md_jparkrep6)

struct BurnDriver BurnDrvmd_jparkrep6 = {
	"md_jparkrep6", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940708)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep6RomInfo, md_jparkrep6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940713)
static struct BurnRomInfo md_jparkrep5RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jul 13, 1994).bin", 0x200000, 0x8475a105, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep5)
STD_ROM_FN(md_jparkrep5)

struct BurnDriver BurnDrvmd_jparkrep5 = {
	"md_jparkrep5", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940713)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep5RomInfo, md_jparkrep5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940714)
static struct BurnRomInfo md_jparkrep4RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jul 14, 1994).bin", 0x200000, 0x9bf0e28d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep4)
STD_ROM_FN(md_jparkrep4)

struct BurnDriver BurnDrvmd_jparkrep4 = {
	"md_jparkrep4", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940714)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep4RomInfo, md_jparkrep4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940715)
static struct BurnRomInfo md_jparkrep3RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jul 15, 1994).bin", 0x200000, 0xd2202be5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep3)
STD_ROM_FN(md_jparkrep3)

struct BurnDriver BurnDrvmd_jparkrep3 = {
	"md_jparkrep3", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940715)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep3RomInfo, md_jparkrep3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940717)
static struct BurnRomInfo md_jparkrep2RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jul 17, 1994).bin", 0x200000, 0x2eae6140, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep2)
STD_ROM_FN(md_jparkrep2)

struct BurnDriver BurnDrvmd_jparkrep2 = {
	"md_jparkrep2", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940717)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep2RomInfo, md_jparkrep2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940718)
static struct BurnRomInfo md_jparkrep1RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jul 18, 1994).bin", 0x200000, 0x1a62b826, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep1)
STD_ROM_FN(md_jparkrep1)

struct BurnDriver BurnDrvmd_jparkrep1 = {
	"md_jparkrep1", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940718)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep1RomInfo, md_jparkrep1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940620)
static struct BurnRomInfo md_jparkrep9RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jun 20, 1994).bin", 0x1f6e60, 0x1280fa5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep9)
STD_ROM_FN(md_jparkrep9)

struct BurnDriver BurnDrvmd_jparkrep9 = {
	"md_jparkrep9", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940620)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep9RomInfo, md_jparkrep9RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940622)
static struct BurnRomInfo md_jparkrep8RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jun 22, 1994).bin", 0x200000, 0x53582f2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep8)
STD_ROM_FN(md_jparkrep8)

struct BurnDriver BurnDrvmd_jparkrep8 = {
	"md_jparkrep8", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940622)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep8RomInfo, md_jparkrep8RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Prototype, 19940630)
static struct BurnRomInfo md_jparkrep7RomDesc[] = {
	{ "jurassic park - rampage edition (prototype - jun 30, 1994).bin", 0x200000, 0xbff4b396, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkrep7)
STD_ROM_FN(md_jparkrep7)

struct BurnDriver BurnDrvmd_jparkrep7 = {
	"md_jparkrep7", "md_jparkre", NULL, NULL, "1994",
	"Jurassic Park - Rampage Edition (Prototype, 19940630)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkrep7RomInfo, md_jparkrep7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Justice League Task Force (World)
static struct BurnRomInfo md_jleagueRomDesc[] = {
	{ "justice league task force (world).bin", 0x300000, 0x2a60ebe9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jleague)
STD_ROM_FN(md_jleague)

struct BurnDriver BurnDrvmd_jleague = {
	"md_jleague", NULL, NULL, NULL, "1995",
	"Justice League Task Force (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_jleagueRomInfo, md_jleagueRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ka-Ge-Ki - Fists of Steel (USA)
static struct BurnRomInfo md_kagekiRomDesc[] = {
	{ "ka-ge-ki - fists of steel (usa).bin", 0x100000, 0xeffc0fa6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kageki)
STD_ROM_FN(md_kageki)

struct BurnDriver BurnDrvmd_kageki = {
	"md_kageki", NULL, NULL, NULL, "1991",
	"Ka-Ge-Ki - Fists of Steel (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kagekiRomInfo, md_kagekiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ka-Ge-Ki (Japan)
static struct BurnRomInfo md_kagekijRomDesc[] = {
	{ "ka-ge-ki (jpn).bin", 0x100000, 0x391866a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kagekij)
STD_ROM_FN(md_kagekij)

struct BurnDriver BurnDrvmd_kagekij = {
	"md_kagekij", "md_kageki", NULL, NULL, "1991",
	"Ka-Ge-Ki (Japan)\0", NULL, "Hot-B", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kagekijRomInfo, md_kagekijRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kawasaki Superbike Challenge (Euro, USA)
static struct BurnRomInfo md_kawasakiRomDesc[] = {
	{ "kawasaki superbike challenge (euro, usa).bin", 0x100000, 0x631cc8e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kawasaki)
STD_ROM_FN(md_kawasaki)

struct BurnDriver BurnDrvmd_kawasaki = {
	"md_kawasaki", NULL, NULL, NULL, "1994",
	"Kawasaki Superbike Challenge (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_kawasakiRomInfo, md_kawasakiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kawasaki Superbike Challenge (USA, Prototype)
static struct BurnRomInfo md_kawasakipRomDesc[] = {
	{ "kawasaki superbike challenge (usa) (beta).bin", 0x100000, 0x55934d1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kawasakip)
STD_ROM_FN(md_kawasakip)

struct BurnDriver BurnDrvmd_kawasakip = {
	"md_kawasakip", "md_kawasaki", NULL, NULL, "1994",
	"Kawasaki Superbike Challenge (USA, Prototype)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_kawasakipRomInfo, md_kawasakipRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kick Off 3 - European Challenge (Euro)
static struct BurnRomInfo md_kickoff3RomDesc[] = {
	{ "kick off 3 - european challenge (euro).bin", 0x100000, 0xbc37401a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kickoff3)
STD_ROM_FN(md_kickoff3)

struct BurnDriver BurnDrvmd_kickoff3 = {
	"md_kickoff3", NULL, NULL, NULL, "1994",
	"Kick Off 3 - European Challenge (Euro)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_kickoff3RomInfo, md_kickoff3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chameleon Kid (Japan)
static struct BurnRomInfo md_kidchamjRomDesc[] = {
	{ "chameleon kid (jpn).bin", 0x100000, 0x50217c80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kidchamj)
STD_ROM_FN(md_kidchamj)

struct BurnDriver BurnDrvmd_kidchamj = {
	"md_kidchamj", "md_kidcham", NULL, NULL, "1992",
	"Chameleon Kid (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kidchamjRomInfo, md_kidchamjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kidou Keisatsu Patlabor - 98-shiki Kidou Seyo! (Japan)
static struct BurnRomInfo md_patlaborRomDesc[] = {
	{ "kidou keisatsu patlabor - 98-shiki kidou seyo! (jpn).bin", 0x080000, 0x21a0e749, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_patlabor)
STD_ROM_FN(md_patlabor)

struct BurnDriver BurnDrvmd_patlabor = {
	"md_patlabor", NULL, NULL, NULL, "1992",
	"Kidou Keisatsu Patlabor - 98-shiki Kidou Seyo! (Japan)\0", NULL, "Ma-Ba", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_patlaborRomInfo, md_patlaborRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tougiou King Colossus (Japan)
static struct BurnRomInfo md_kingcolRomDesc[] = {
	{ "mpr-14929.bin", 0x100000, 0xffe7b3c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingcol)
STD_ROM_FN(md_kingcol)

struct BurnDriver BurnDrvmd_kingcol = {
	"md_kingcol", NULL, NULL, NULL, "1992",
	"Tougiou King Colossus (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_kingcolRomInfo, md_kingcolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tougiou King Colossus (Hack, English)
// Source http://www.romhacking.net/translations/914/
static struct BurnRomInfo md_kingcoleRomDesc[] = {
	{ "tougiou king colossus (english translation).bin", 0x100000, 0x016afd40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingcole)
STD_ROM_FN(md_kingcole)

struct BurnDriver BurnDrvmd_kingcole = {
	"md_kingcole", "md_kingcol", NULL, NULL, "2006",
	"Tougiou King Colossus (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_kingcoleRomInfo, md_kingcoleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of the Monsters (Euro)
static struct BurnRomInfo md_kotmRomDesc[] = {
	{ "king of the monsters (euro).bin", 0x100000, 0x7a94fd49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kotm)
STD_ROM_FN(md_kotm)

struct BurnDriver BurnDrvmd_kotm = {
	"md_kotm", NULL, NULL, NULL, "1993",
	"King of the Monsters (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kotmRomInfo, md_kotmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of the Monsters (USA)
static struct BurnRomInfo md_kotmuRomDesc[] = {
	{ "king of the monsters (usa).bin", 0x100000, 0xf390d406, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kotmu)
STD_ROM_FN(md_kotmu)

struct BurnDriver BurnDrvmd_kotmu = {
	"md_kotmu", "md_kotm", NULL, NULL, "1993",
	"King of the Monsters (USA)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kotmuRomInfo, md_kotmuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of the Monsters (Japan)
static struct BurnRomInfo md_kotmjRomDesc[] = {
	{ "king of the monsters (jpn).bin", 0x100000, 0x3af7e74e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kotmj)
STD_ROM_FN(md_kotmj)

struct BurnDriver BurnDrvmd_kotmj = {
	"md_kotmj", "md_kotm", NULL, NULL, "1993",
	"King of the Monsters (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kotmjRomInfo, md_kotmjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of the Monsters 2 (USA)
static struct BurnRomInfo md_kotm2RomDesc[] = {
	{ "king of the monsters 2 (usa).bin", 0x200000, 0xee1638ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kotm2)
STD_ROM_FN(md_kotm2)

struct BurnDriver BurnDrvmd_kotm2 = {
	"md_kotm2", NULL, NULL, NULL, "1994",
	"King of the Monsters 2 (USA)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kotm2RomInfo, md_kotm2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King Salmon - The Big Catch (USA)
static struct BurnRomInfo md_kingsalRomDesc[] = {
	{ "king salmon - the big catch (usa).bin", 0x080000, 0xf516e7d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingsal)
STD_ROM_FN(md_kingsal)

struct BurnDriver BurnDrvmd_kingsal = {
	"md_kingsal", NULL, NULL, NULL, "1993",
	"King Salmon - The Big Catch (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_kingsalRomInfo, md_kingsalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King Salmon (Japan)
static struct BurnRomInfo md_kingsaljRomDesc[] = {
	{ "king salmon (jpn).bin", 0x080000, 0x2cfc9f61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingsalj)
STD_ROM_FN(md_kingsalj)

struct BurnDriver BurnDrvmd_kingsalj = {
	"md_kingsalj", "md_kingsal", NULL, NULL, "1992",
	"King Salmon (Japan)\0", NULL, "Hot-B", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_kingsaljRomInfo, md_kingsaljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King's Bounty - The Conqueror's Quest (Euro, USA)
static struct BurnRomInfo md_kingsbtyRomDesc[] = {
	{ "king's bounty - the conqueror's quest (euro, usa).bin", 0x080000, 0xaa68a92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingsbty)
STD_ROM_FN(md_kingsbty)

struct BurnDriver BurnDrvmd_kingsbty = {
	"md_kingsbty", NULL, NULL, NULL, "1991",
	"King's Bounty - The Conqueror's Quest (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_kingsbtyRomInfo, md_kingsbtyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kishi Densetsu (Japan)
static struct BurnRomInfo md_kishidenRomDesc[] = {
	{ "kishi densetsu (jpn).bin", 0x180000, 0x22e1f04a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kishiden)
STD_ROM_FN(md_kishiden)

struct BurnDriver BurnDrvmd_kishiden = {
	"md_kishiden", NULL, NULL, NULL, "1993",
	"Kishi Densetsu (Japan)\0", NULL, "Kodansha", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_kishidenRomInfo, md_kishidenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kiss Shot (Japan, SegaNet)
static struct BurnRomInfo md_kissshotRomDesc[] = {
	{ "kiss shot (jpn) (sn).bin", 0x040000, 0xe487088c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kissshot)
STD_ROM_FN(md_kissshot)

struct BurnDriver BurnDrvmd_kissshot = {
	"md_kissshot", NULL, NULL, NULL, "1992",
	"Kiss Shot (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_kissshotRomInfo, md_kissshotRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Klax (Euro, USA)
static struct BurnRomInfo md_klaxRomDesc[] = {
	{ "klax (euro, usa).bin", 0x040000, 0x248cd09e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_klax)
STD_ROM_FN(md_klax)

struct BurnDriver BurnDrvmd_klax = {
	"md_klax", NULL, NULL, NULL, "1990",
	"Klax (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_klaxRomInfo, md_klaxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Klax (Japan)
static struct BurnRomInfo md_klaxjRomDesc[] = {
	{ "klax (jpn).bin", 0x040000, 0x1afcc1da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_klaxj)
STD_ROM_FN(md_klaxj)

struct BurnDriver BurnDrvmd_klaxj = {
	"md_klaxj", "md_klax", NULL, NULL, "1990",
	"Klax (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_klaxjRomInfo, md_klaxjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Krusty's Super Fun House (Euro, USA, v1.1)
static struct BurnRomInfo md_krustyRomDesc[] = {
	{ "krusty's super fun house (euro, usa) (v1.1).bin", 0x080000, 0x56976261, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_krusty)
STD_ROM_FN(md_krusty)

struct BurnDriver BurnDrvmd_krusty = {
	"md_krusty", NULL, NULL, NULL, "1992",
	"Krusty's Super Fun House (Euro, USA, v1.1)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_krustyRomInfo, md_krustyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Krusty's Super Fun House (Euro, USA)
static struct BurnRomInfo md_krusty1RomDesc[] = {
	{ "krusty's super fun house (euro, usa).bin", 0x080000, 0xf764005e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_krusty1)
STD_ROM_FN(md_krusty1)

struct BurnDriver BurnDrvmd_krusty1 = {
	"md_krusty1", "md_krusty", NULL, NULL, "1992",
	"Krusty's Super Fun House (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_krusty1RomInfo, md_krusty1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kyuukai Douchuuki (Japan)
static struct BurnRomInfo md_kyukaidkRomDesc[] = {
	{ "kyuukai douchuuki (jpn).bin", 0x080000, 0xde48dce3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kyukaidk)
STD_ROM_FN(md_kyukaidk)

struct BurnDriver BurnDrvmd_kyukaidk = {
	"md_kyukaidk", NULL, NULL, NULL, "1991",
	"Kyuukai Douchuuki (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_kyukaidkRomInfo, md_kyukaidkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// La Russa Baseball 95 (USA, Oceania)
static struct BurnRomInfo md_laruss95RomDesc[] = {
	{ "la russa baseball 95 (usa, aus).bin", 0x200000, 0x3f848a92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_laruss95)
STD_ROM_FN(md_laruss95)

struct BurnDriver BurnDrvmd_laruss95 = {
	"md_laruss95", NULL, NULL, NULL, "1994",
	"La Russa Baseball 95 (USA, Oceania)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_laruss95RomInfo, md_laruss95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lakers versus Celtics and the NBA Playoffs (USA)
static struct BurnRomInfo md_lakersRomDesc[] = {
	{ "lakers versus celtics and the nba playoffs (usa).bin", 0x080000, 0x0e33fc75, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lakers)
STD_ROM_FN(md_lakers)

struct BurnDriver BurnDrvmd_lakers = {
	"md_lakers", NULL, NULL, NULL, "1991",
	"Lakers versus Celtics and the NBA Playoffs (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_lakersRomInfo, md_lakersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - The Treasures of King Nole (Euro)
static struct BurnRomInfo md_landstlkRomDesc[] = {
	{ "landstalker - the treasures of king nole (euro).bin", 0x200000, 0xe3c65277, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlk)
STD_ROM_FN(md_landstlk)

struct BurnDriver BurnDrvmd_landstlk = {
	"md_landstlk", NULL, NULL, NULL, "1993",
	"Landstalker - The Treasures of King Nole (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkRomInfo, md_landstlkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - Die Schätze von König Nolo (Euro, German)
static struct BurnRomInfo md_landstlkgRomDesc[] = {
	{ "landstalker - die schatze von konig nolo (germany).bin", 0x200000, 0x10fedb8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlkg)
STD_ROM_FN(md_landstlkg)

struct BurnDriver BurnDrvmd_landstlkg = {
	"md_landstlkg", "md_landstlk", NULL, NULL, "1993",
	"Landstalker - Die Schatze von Konig Nolo (Euro, German)\0", NULL, "Sega", "Sega Megadrive",
	L"Landstalker - Die Sch\u00E4tze von K\u00F6nig Nolo (Euro, German)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkgRomInfo, md_landstlkgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - Koutei no Zaihou (Japan)
static struct BurnRomInfo md_landstlkjRomDesc[] = {
	{ "landstalker - koutei no zaihou (jpn).bin", 0x200000, 0x60d4cedb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlkj)
STD_ROM_FN(md_landstlkj)

struct BurnDriver BurnDrvmd_landstlkj = {
	"md_landstlkj", "md_landstlk", NULL, NULL, "1992",
	"Landstalker - Koutei no Zaihou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkjRomInfo, md_landstlkjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - The Treasures of King Nole (USA)
static struct BurnRomInfo md_landstlkuRomDesc[] = {
	{ "landstalker (usa).bin", 0x200000, 0xfbbb5b97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlku)
STD_ROM_FN(md_landstlku)

struct BurnDriver BurnDrvmd_landstlku = {
	"md_landstlku", "md_landstlk", NULL, NULL, "1992",
	"Landstalker - The Treasures of King Nole (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkuRomInfo, md_landstlkuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - Treasure of King Nole (USA, Prototype)
static struct BurnRomInfo md_landstlkupRomDesc[] = {
	{ "landstalker (usa) (beta).bin", 0x200000, 0x70483d03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlkup)
STD_ROM_FN(md_landstlkup)

struct BurnDriver BurnDrvmd_landstlkup = {
	"md_landstlkup", "md_landstlk", NULL, NULL, "1992",
	"Landstalker - Treasure of King Nole (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkupRomInfo, md_landstlkupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser (Japan)
static struct BurnRomInfo md_langrissRomDesc[] = {
	{ "mpr-13845.bin", 0x080000, 0xb6ea5016, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langriss)
STD_ROM_FN(md_langriss)

struct BurnDriver BurnDrvmd_langriss = {
	"md_langriss", "md_warsong", NULL, NULL, "1991",
	"Langrisser (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_langrissRomInfo, md_langrissRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser II (Japan, v1.2)
static struct BurnRomInfo md_langris2RomDesc[] = {
	{ "langrisser ii (jpn) (v1.2).bin", 0x200000, 0x4967c9f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langris2)
STD_ROM_FN(md_langris2)

struct BurnDriver BurnDrvmd_langris2 = {
	"md_langris2", NULL, NULL, NULL, "1994",
	"Langrisser II (Japan, v1.2)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_langris2RomInfo, md_langris2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser II (Japan, v1.1)
static struct BurnRomInfo md_langris2aRomDesc[] = {
	{ "langrisser ii (jpn) (v1.1).bin", 0x200000, 0x0caa0593, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langris2a)
STD_ROM_FN(md_langris2a)

struct BurnDriver BurnDrvmd_langris2a = {
	"md_langris2a", "md_langris2", NULL, NULL, "1994",
	"Langrisser II (Japan, v1.1)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_langris2aRomInfo, md_langris2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser II (Japan)
static struct BurnRomInfo md_langris2bRomDesc[] = {
	{ "langrisser ii (jpn).bin", 0x200000, 0x7f891dfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langris2b)
STD_ROM_FN(md_langris2b)

struct BurnDriver BurnDrvmd_langris2b = {
	"md_langris2b", "md_langris2", NULL, NULL, "1994",
	"Langrisser II (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_langris2bRomInfo, md_langris2bRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser II (Hack, English)
// http://www.romhacking.net/translations/1314/
static struct BurnRomInfo md_langris2eRomDesc[] = {
	{ "langrisser ii (english translation).bin", 0x200000, 0xe8f28522, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langris2e)
STD_ROM_FN(md_langris2e)

struct BurnDriver BurnDrvmd_langris2e = {
	"md_langris2e", "md_langris2", NULL, NULL, "2011",
	"Langrisser II (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_langris2eRomInfo, md_langris2eRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Last Action Hero (Euro, USA)
static struct BurnRomInfo md_lastactRomDesc[] = {
	{ "last action hero (euro, usa).bin", 0x100000, 0x15357dde, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lastact)
STD_ROM_FN(md_lastact)

struct BurnDriver BurnDrvmd_lastact = {
	"md_lastact", NULL, NULL, NULL, "1993",
	"Last Action Hero (Euro, USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lastactRomInfo, md_lastactRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Last Battle (Euro, USA, Korea)
static struct BurnRomInfo md_lastbtleRomDesc[] = {
	{ "mpr-12578.bin", 0x080000, 0xbbfaad77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lastbtle)
STD_ROM_FN(md_lastbtle)

struct BurnDriver BurnDrvmd_lastbtle = {
	"md_lastbtle", NULL, NULL, NULL, "1989",
	"Last Battle (Euro, USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_ADV, 0,
	MegadriveGetZipName, md_lastbtleRomInfo, md_lastbtleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fist of the North Star 'Revisited' (Hack, English v1.2)
// https://www.romhacking.net/translations/7272/
static struct BurnRomInfo md_fistnstarRomDesc[] = {
	{ "Fist of the North Star Revisited T-Eng v1.2 (2024)(Ermani S. Costa).bin", 537694, 0x7d424a16, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fistnstar)
STD_ROM_FN(md_fistnstar)

struct BurnDriver BurnDrvmd_fistnstar = {
	"md_fistnstar", "md_lastbtle", NULL, NULL, "2024",
	"Fist of the North Star 'Revisited' (Hack, English v1.2)\0", NULL, "Ermani S. Costa", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_ADV, 0,
	MegadriveGetZipName, md_fistnstarRomInfo, md_fistnstarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hokuto no Ken - Shin Seikimatsu Kyuuseishu Densetsu (Japan)
static struct BurnRomInfo md_hokutoRomDesc[] = {
	{ "hokuto no ken - shin seikimatsu kyuuseishu densetsu (jpn).bin", 0x080000, 0x1b6585e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hokuto)
STD_ROM_FN(md_hokuto)

struct BurnDriver BurnDrvmd_hokuto = {
	"md_hokuto", "md_lastbtle", NULL, NULL, "1989",
	"Hokuto no Ken - Shin Seikimatsu Kyuuseishu Densetsu (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_ADV, 0,
	MegadriveGetZipName, md_hokutoRomInfo, md_hokutoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lawnmower Man, The (Euro, USA)
static struct BurnRomInfo md_lawnmowrRomDesc[] = {
	{ "lawnmower man, the (euro, usa).bin", 0x100000, 0xa7cacd59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lawnmowr)
STD_ROM_FN(md_lawnmowr)

struct BurnDriver BurnDrvmd_lawnmowr = {
	"md_lawnmowr", NULL, NULL, NULL, "1994",
	"Lawnmower Man, The (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lawnmowrRomInfo, md_lawnmowrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Galahad (Euro, USA)
static struct BurnRomInfo md_galahadRomDesc[] = {
	{ "gal01.bin", 0x100000, 0x679557bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_galahad)
STD_ROM_FN(md_galahad)

struct BurnDriver BurnDrvmd_galahad = {
	"md_galahad", NULL, NULL, NULL, "1992",
	"Galahad (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_galahadRomInfo, md_galahadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lego Batman (Russia) (Unl)
static struct BurnRomInfo md_legobatmanRomDesc[] = {
	{ "Lego Batman (Unl).bin", 0x080000, 0x00da53a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_legobatman)
STD_ROM_FN(md_legobatman)

struct BurnDriver BurnDrvmd_legobatman = {
	"md_legobatman", NULL, NULL, NULL, "2014",
	"Lego Batman (Russia) (Unl)\0", NULL, "BMB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_legobatmanRomInfo, md_legobatmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lego Pirates of the Caribbean (Russia) (Unl)
static struct BurnRomInfo md_legopocRomDesc[] = {
	{ "Lego Pirates of the Caribbean (Unl)(2014)(BMB).bin", 1048576, 0x3d2cd306, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_legopoc)
STD_ROM_FN(md_legopoc)

struct BurnDriver BurnDrvmd_legopoc = {
	"md_legopoc", NULL, NULL, NULL, "2014",
	"Lego Pirates of the Caribbean (Russia) (Unl)\0", NULL, "BMB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_legopocRomInfo, md_legopocRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lemmings (Euro)
static struct BurnRomInfo md_lemmingsRomDesc[] = {
	{ "mpr-15233.bin", 0x100000, 0x6a1a4579, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lemmings)
STD_ROM_FN(md_lemmings)

struct BurnDriver BurnDrvmd_lemmings = {
	"md_lemmings", NULL, NULL, NULL, "1992",
	"Lemmings (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lemmingsRomInfo, md_lemmingsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lemmings (Japan, USA, Korea, v1.1)
static struct BurnRomInfo md_lemmingsjuRomDesc[] = {
	{ "sunsoft_lem8_j.bin", 0x100000, 0x68c70362, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lemmingsju)
STD_ROM_FN(md_lemmingsju)

struct BurnDriver BurnDrvmd_lemmingsju = {
	"md_lemmingsju", "md_lemmings", NULL, NULL, "1992",
	"Lemmings (Japan, USA, Korea, v1.1)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lemmingsjuRomInfo, md_lemmingsjuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lemmings (Japan, USA)
static struct BurnRomInfo md_lemmingsju1RomDesc[] = {
	{ "lemmings (usa, jpn).bin", 0x100000, 0xf015c2ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lemmingsju1)
STD_ROM_FN(md_lemmingsju1)

struct BurnDriver BurnDrvmd_lemmingsju1 = {
	"md_lemmingsju1", "md_lemmings", NULL, NULL, "1992",
	"Lemmings (Japan, USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lemmingsju1RomInfo, md_lemmingsju1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lemmings 2 - The Tribes (Euro)
static struct BurnRomInfo md_lemming2RomDesc[] = {
	{ "lemmings 2 - the tribes (euro).bin", 0x200000, 0x741eb624, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lemming2)
STD_ROM_FN(md_lemming2)

struct BurnDriver BurnDrvmd_lemming2 = {
	"md_lemming2", NULL, NULL, NULL, "1994",
	"Lemmings 2 - The Tribes (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lemming2RomInfo, md_lemming2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lemmings 2 - The Tribes (USA)
static struct BurnRomInfo md_lemming2uRomDesc[] = {
	{ "lemmings 2 - the tribes (usa).bin", 0x200000, 0xde59a3a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lemming2u)
STD_ROM_FN(md_lemming2u)

struct BurnDriver BurnDrvmd_lemming2u = {
	"md_lemming2u", "md_lemming2", NULL, NULL, "1994",
	"Lemmings 2 - The Tribes (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lemming2uRomInfo, md_lemming2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lethal Enforcers (Euro)
static struct BurnRomInfo md_lethalenRomDesc[] = {
	{ "lethal enforcers (euro).bin", 0x200000, 0xca2bf99d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lethalen)
STD_ROM_FN(md_lethalen)

struct BurnDriver BurnDrvmd_lethalen = {
	"md_lethalen", NULL, NULL, NULL, "1993",
	"Lethal Enforcers (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_lethalenRomInfo, md_lethalenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lethal Enforcers (Japan)
static struct BurnRomInfo md_lethalenjRomDesc[] = {
	{ "fz008.bin", 0x200000, 0xf25f1e49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lethalenj)
STD_ROM_FN(md_lethalenj)

struct BurnDriver BurnDrvmd_lethalenj = {
	"md_lethalenj", "md_lethalen", NULL, NULL, "1993",
	"Lethal Enforcers (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_lethalenjRomInfo, md_lethalenjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lethal Enforcers (USA)
static struct BurnRomInfo md_lethalenuRomDesc[] = {
	{ "lethal enforcers (usa).bin", 0x200000, 0x51d9a84a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lethalenu)
STD_ROM_FN(md_lethalenu)

struct BurnDriver BurnDrvmd_lethalenu = {
	"md_lethalenu", "md_lethalen", NULL, NULL, "1993",
	"Lethal Enforcers (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_lethalenuRomInfo, md_lethalenuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lethal Enforcers II - Gun Fighters (Euro)
static struct BurnRomInfo md_le2RomDesc[] = {
	{ "lethal enforcers ii - gun fighters (euro).bin", 0x200000, 0x4bfe045c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_le2)
STD_ROM_FN(md_le2)

struct BurnDriver BurnDrvmd_le2 = {
	"md_le2", NULL, NULL, NULL, "1994",
	"Lethal Enforcers II - Gun Fighters (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_le2RomInfo, md_le2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lethal Enforcers II - Gun Fighters (USA)
static struct BurnRomInfo md_le2uRomDesc[] = {
	{ "lethal enforcers ii - gun fighters (usa).bin", 0x200000, 0xe5fdd28b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_le2u)
STD_ROM_FN(md_le2u)

struct BurnDriver BurnDrvmd_le2u = {
	"md_le2u", "md_le2", NULL, NULL, "1994",
	"Lethal Enforcers II - Gun Fighters (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_le2uRomInfo, md_le2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// LHX Attack Chopper (Euro, USA)
static struct BurnRomInfo md_lhxRomDesc[] = {
	{ "lhx04.bin", 0x100000, 0x70c3428d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lhx)
STD_ROM_FN(md_lhx)

struct BurnDriver BurnDrvmd_lhx = {
	"md_lhx", NULL, NULL, NULL, "1992",
	"LHX Attack Chopper (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_lhxRomInfo, md_lhxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// LHX Attack Chopper (Japan)
static struct BurnRomInfo md_lhxjRomDesc[] = {
	{ "lhx attack chopper (jpn).bin", 0x100000, 0x224ff103, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lhxj)
STD_ROM_FN(md_lhxj)

struct BurnDriver BurnDrvmd_lhxj = {
	"md_lhxj", "md_lhx", NULL, NULL, "1993",
	"LHX Attack Chopper (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_lhxjRomInfo, md_lhxjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Liberty or Death (USA)
static struct BurnRomInfo md_libertyRomDesc[] = {
	{ "liberty or death (usa).bin", 0x200000, 0x2adb0364, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_liberty)
STD_ROM_FN(md_liberty)

struct BurnDriver BurnDrvmd_liberty = {
	"md_liberty", NULL, NULL, NULL, "1994",
	"Liberty or Death (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_libertyRomInfo, md_libertyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Light Crusader (Japan)
static struct BurnRomInfo md_lightcjRomDesc[] = {
	{ "light crusader (jpn).bin", 0x200000, 0x237076a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lightcj)
STD_ROM_FN(md_lightcj)

struct BurnDriver BurnDrvmd_lightcj = {
	"md_lightcj", "md_lightc", NULL, NULL, "1995",
	"Light Crusader (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_lightcjRomInfo, md_lightcjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Light Crusader (Korea)
static struct BurnRomInfo md_lightckRomDesc[] = {
	{ "light crusader (kor).bin", 0x200000, 0x6d0cbcb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lightck)
STD_ROM_FN(md_lightck)

struct BurnDriver BurnDrvmd_lightck = {
	"md_lightck", "md_lightc", NULL, NULL, "1995",
	"Light Crusader (Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_lightckRomInfo, md_lightckRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Light Crusader (Prototype, 19950608)
static struct BurnRomInfo md_lightcpRomDesc[] = {
	{ "light crusader (prototype - jun 08, 1995).bin", 0x200000, 0xe350ccfa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lightcp)
STD_ROM_FN(md_lightcp)

struct BurnDriver BurnDrvmd_lightcp = {
	"md_lightcp", "md_lightc", NULL, NULL, "1995",
	"Light Crusader (Prototype, 19950608)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_lightcpRomInfo, md_lightcpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Light Crusader (USA)
static struct BurnRomInfo md_lightcuRomDesc[] = {
	{ "light crusader (usa).bin", 0x200000, 0xbeb715dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lightcu)
STD_ROM_FN(md_lightcu)

struct BurnDriver BurnDrvmd_lightcu = {
	"md_lightcu", "md_lightc", NULL, NULL, "1995",
	"Light Crusader (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_lightcuRomInfo, md_lightcuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King, The (World)
static struct BurnRomInfo md_lionkingRomDesc[] = {
	{ "mpr-17270.bin", 0x300000, 0x5696a5bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lionking)
STD_ROM_FN(md_lionking)

struct BurnDriver BurnDrvmd_lionking = {
	"md_lionking", NULL, NULL, NULL, "1994",
	"Lion King, The (World)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkingRomInfo, md_lionkingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lobo (USA, Prototype)
static struct BurnRomInfo md_loboRomDesc[] = {
	{ "lobo (usa) (prototype).bin", 0x300000, 0xb5e09338, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lobo)
STD_ROM_FN(md_lobo)

struct BurnDriver BurnDrvmd_lobo = {
	"md_lobo", NULL, NULL, NULL, "1996",
	"Lobo (USA, Prototype)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_loboRomInfo, md_loboRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Long (Taiwan) (Unl)
static struct BurnRomInfo md_longRomDesc[] = {
	{ "long (chi) (unl).bin", 0x040000, 0x1b86e623, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_long)
STD_ROM_FN(md_long)

struct BurnDriver BurnDrvmd_long = {
	"md_long", NULL, NULL, NULL, "1993",
	"Long (Taiwan) (Unl)\0", "No Sound", "Songtly & Jumbo Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_longRomInfo, md_longRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lord Monarch - Tokoton Sentou Densetsu (Japan)
static struct BurnRomInfo md_lordmonRomDesc[] = {
	{ "lord monarch - tokoton sentou densetsu (jpn).bin", 0x200000, 0x238bf5db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lordmon)
STD_ROM_FN(md_lordmon)

struct BurnDriver BurnDrvmd_lordmon = {
	"md_lordmon", NULL, NULL, NULL, "1994",
	"Lord Monarch - Tokoton Sentou Densetsu (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_lordmonRomInfo, md_lordmonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lost Vikings, The (Euro)
static struct BurnRomInfo md_lostvikRomDesc[] = {
	{ "lost vikings, the (euro).bin", 0x100000, 0x1f14efc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lostvik)
STD_ROM_FN(md_lostvik)

struct BurnDriver BurnDrvmd_lostvik = {
	"md_lostvik", NULL, NULL, NULL, "1993",
	"Lost Vikings, The (Euro)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lostvikRomInfo, md_lostvikRomName, NULL, NULL, NULL, NULL, Megadrive3pInputInfo, Megadrive3pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lost Vikings, The (Euro, Prototype)
static struct BurnRomInfo md_lostvikpRomDesc[] = {
	{ "lost vikings, the (euro) (beta).bin", 0x100000, 0x17bed25f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lostvikp)
STD_ROM_FN(md_lostvikp)

struct BurnDriver BurnDrvmd_lostvikp = {
	"md_lostvikp", "md_lostvik", NULL, NULL, "1993",
	"Lost Vikings, The (Euro, Prototype)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lostvikpRomInfo, md_lostvikpRomName, NULL, NULL, NULL, NULL, Megadrive3pInputInfo, Megadrive3pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lost Vikings, The (USA)
static struct BurnRomInfo md_lostvikuRomDesc[] = {
	{ "lost vikings, the (usa).bin", 0x100000, 0x7ba49edb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lostviku)
STD_ROM_FN(md_lostviku)

struct BurnDriver BurnDrvmd_lostviku = {
	"md_lostviku", "md_lostvik", NULL, NULL, "1992",
	"Lost Vikings, The (USA)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lostvikuRomInfo, md_lostvikuRomName, NULL, NULL, NULL, NULL, Megadrive3pInputInfo, Megadrive3pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lost World, The - Jurassic Park (Euro, USA)
static struct BurnRomInfo md_lostwrldRomDesc[] = {
	{ "lost world, the - jurassic park (euro, usa).bin", 0x400000, 0x140a284c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lostwrld)
STD_ROM_FN(md_lostwrld)

struct BurnDriver BurnDrvmd_lostwrld = {
	"md_lostwrld", NULL, NULL, NULL, "1997",
	"Lost World, The - Jurassic Park (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_lostwrldRomInfo, md_lostwrldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lotus II (Euro, USA)
static struct BurnRomInfo md_lotus2RomDesc[] = {
	{ "lot205.bin", 0x100000, 0x1d8ee010, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lotus2)
STD_ROM_FN(md_lotus2)

struct BurnDriver BurnDrvmd_lotus2 = {
	"md_lotus2", NULL, NULL, NULL, "1993",
	"Lotus II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_lotus2RomInfo, md_lotus2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lotus II (USA, Prototype)
static struct BurnRomInfo md_lotus2pRomDesc[] = {
	{ "lotus ii (usa) (beta).bin", 0x100000, 0x2997b7d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lotus2p)
STD_ROM_FN(md_lotus2p)

struct BurnDriver BurnDrvmd_lotus2p = {
	"md_lotus2p", "md_lotus2", NULL, NULL, "1993",
	"Lotus II (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_lotus2pRomInfo, md_lotus2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lotus Turbo Challenge (Euro, USA)
static struct BurnRomInfo md_lotustRomDesc[] = {
	{ "lotus_turbo_lot03.u1", 0x100000, 0xb83ccb7a, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lotust)
STD_ROM_FN(md_lotust)

struct BurnDriver BurnDrvmd_lotust = {
	"md_lotust", NULL, NULL, NULL, "1992",
	"Lotus Turbo Challenge (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_lotustRomInfo, md_lotustRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// M-1 Abrams Battle Tank (Euro, USA)
static struct BurnRomInfo md_m1abramsRomDesc[] = {
	{ "m-1 abrams battle tank (euro, usa).bin", 0x080000, 0x1e2f74cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_m1abrams)
STD_ROM_FN(md_m1abrams)

struct BurnDriver BurnDrvmd_m1abrams = {
	"md_m1abrams", NULL, NULL, NULL, "1991",
	"M-1 Abrams Battle Tank (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_m1abramsRomInfo, md_m1abramsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ma Qiao E Mo Ta - Devilish Mahjong Tower (Taiwan) (Unl)
static struct BurnRomInfo md_maqiaoRomDesc[] = {
	{ "ma qiao e mo ta - devilish mahjong tower (chi) (unl).bin", 0x100000, 0x12e35994, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_maqiao)
STD_ROM_FN(md_maqiao)

struct BurnDriver BurnDrvmd_maqiao = {
	"md_maqiao", NULL, NULL, NULL, "1994",
	"Ma Qiao E Mo Ta - Devilish Mahjong Tower (Taiwan) (Unl)\0", NULL, "C&E", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_maqiaoRomInfo, md_maqiaoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madden NFL '94 (Euro, USA)
static struct BurnRomInfo md_madden94RomDesc[] = {
	{ "madden nfl '94 (euro, usa).bin", 0x200000, 0xd14b811b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden94)
STD_ROM_FN(md_madden94)

struct BurnDriver BurnDrvmd_madden94 = {
	"md_madden94", NULL, NULL, NULL, "1994",
	"Madden NFL '94 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden94RomInfo, md_madden94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madden NFL 95 (Euro, USA)
static struct BurnRomInfo md_madden95RomDesc[] = {
	{ "madden nfl 95 (euro, usa).bin", 0x200000, 0xdb0be0c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden95)
STD_ROM_FN(md_madden95)

struct BurnDriver BurnDrvmd_madden95 = {
	"md_madden95", NULL, NULL, NULL, "1994",
	"Madden NFL 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden95RomInfo, md_madden95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madden NFL 96 (Euro, USA)
static struct BurnRomInfo md_madden96RomDesc[] = {
	{ "madden nfl 96 (euro, usa).bin", 0x200000, 0xf126918b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden96)
STD_ROM_FN(md_madden96)

struct BurnDriver BurnDrvmd_madden96 = {
	"md_madden96", NULL, NULL, NULL, "1995",
	"Madden NFL 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden96RomInfo, md_madden96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madden NFL 97 (Euro, USA)
static struct BurnRomInfo md_madden97RomDesc[] = {
	{ "madden nfl 97 (euro, usa).bin", 0x200000, 0xc4b4e112, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden97)
STD_ROM_FN(md_madden97)

struct BurnDriver BurnDrvmd_madden97 = {
	"md_madden97", NULL, NULL, NULL, "1997",
	"Madden NFL 97 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden97RomInfo, md_madden97RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madden NFL 98 (USA)
static struct BurnRomInfo md_madden98RomDesc[] = {
	{ "madden nfl 98 (usa).bin", 0x200000, 0xe051ea62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madden98)
STD_ROM_FN(md_madden98)

struct BurnDriver BurnDrvmd_madden98 = {
	"md_madden98", NULL, NULL, NULL, "1997",
	"Madden NFL 98 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_madden98RomInfo, md_madden98RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madou Monogatari I (Japan)
static struct BurnRomInfo md_madoumonRomDesc[] = {
	{ "madou monogatari i (jpn).bin", 0x200000, 0xdd82c401, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madoumon)
STD_ROM_FN(md_madoumon)

struct BurnDriver BurnDrvmd_madoumon = {
	"md_madoumon", NULL, NULL, NULL, "1996",
	"Madou Monogatari I (Japan)\0", NULL, "Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_madoumonRomInfo, md_madoumonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (USA)
static struct BurnRomInfo md_msbRomDesc[] = {
	{ "magic school bus, the (usa).bin", 0x100000, 0x1a5d4412, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msb)
STD_ROM_FN(md_msb)

struct BurnDriver BurnDrvmd_msb = {
	"md_msb", NULL, NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbRomInfo, md_msbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (Prototype, 19950411)
static struct BurnRomInfo md_msbp05RomDesc[] = {
	{ "magic school bus, the (prototype - apr 11, 1995).bin", 0x0fdfbc, 0x883023bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp05)
STD_ROM_FN(md_msbp05)

struct BurnDriver BurnDrvmd_msbp05 = {
	"md_msbp05", "md_msb", NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (Prototype, 19950411)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp05RomInfo, md_msbp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (Prototype, 19950421)
static struct BurnRomInfo md_msbp04RomDesc[] = {
	{ "magic school bus, the (prototype - apr 21, 1995).bin", 0x0fcfdc, 0x7844b7ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp04)
STD_ROM_FN(md_msbp04)

struct BurnDriver BurnDrvmd_msbp04 = {
	"md_msbp04", "md_msb", NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (Prototype, 19950421)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp04RomInfo, md_msbp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (Prototype, 19950425)
static struct BurnRomInfo md_msbp03RomDesc[] = {
	{ "magic school bus, the (prototype - apr 25, 1995).bin", 0x0fd5e0, 0xb6bd2d87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp03)
STD_ROM_FN(md_msbp03)

struct BurnDriver BurnDrvmd_msbp03 = {
	"md_msbp03", "md_msb", NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (Prototype, 19950425)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp03RomInfo, md_msbp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (Prototype, 19950428)
static struct BurnRomInfo md_msbp02RomDesc[] = {
	{ "magic school bus, the (prototype - apr 28, 1995).bin", 0x0fe89c, 0x9b6bae87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp02)
STD_ROM_FN(md_msbp02)

struct BurnDriver BurnDrvmd_msbp02 = {
	"md_msbp02", "md_msb", NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (Prototype, 19950428)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp02RomInfo, md_msbp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic School Bus, The (Prototype, 19950202)
static struct BurnRomInfo md_msbp11RomDesc[] = {
	{ "magic school bus, the (prototype - feb 02, 1995).bin", 0x100000, 0x7805b5c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp11)
STD_ROM_FN(md_msbp11)

struct BurnDriver BurnDrvmd_msbp11 = {
	"md_msbp11", "md_msb", NULL, NULL, "1995",
	"Magic School Bus, The (Prototype, 19950202)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp11RomInfo, md_msbp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic School Bus, The (Prototype, 19950217)
static struct BurnRomInfo md_msbp10RomDesc[] = {
	{ "magic school bus, the (prototype - feb 17, 1995).bin", 0x0df6bc, 0x2b7a88c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp10)
STD_ROM_FN(md_msbp10)

struct BurnDriver BurnDrvmd_msbp10 = {
	"md_msbp10", "md_msb", NULL, NULL, "1995",
	"Magic School Bus, The (Prototype, 19950217)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp10RomInfo, md_msbp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic School Bus, The (Prototype, 19950112)
static struct BurnRomInfo md_msbp12RomDesc[] = {
	{ "magic school bus, the (prototype - jan 12, 1995).bin", 0x0eb2e4, 0x946346f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp12)
STD_ROM_FN(md_msbp12)

struct BurnDriver BurnDrvmd_msbp12 = {
	"md_msbp12", "md_msb", NULL, NULL, "1995",
	"Magic School Bus, The (Prototype, 19950112)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp12RomInfo, md_msbp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic School Bus, The (Prototype, 19950307)
static struct BurnRomInfo md_msbp09RomDesc[] = {
	{ "magic school bus, the (prototype - mar 07, 1995).bin", 0x0e9aa8, 0x26c71eb8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp09)
STD_ROM_FN(md_msbp09)

struct BurnDriver BurnDrvmd_msbp09 = {
	"md_msbp09", "md_msb", NULL, NULL, "1995",
	"Magic School Bus, The (Prototype, 19950307)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp09RomInfo, md_msbp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic School Bus, The (Prototype, 19950314)
static struct BurnRomInfo md_msbp08RomDesc[] = {
	{ "magic school bus, the (prototype - mar 14, 1995).bin", 0x0f1c30, 0x37a6a1af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp08)
STD_ROM_FN(md_msbp08)

struct BurnDriver BurnDrvmd_msbp08 = {
	"md_msbp08", "md_msb", NULL, NULL, "1995",
	"Magic School Bus, The (Prototype, 19950314)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp08RomInfo, md_msbp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic School Bus, The (Prototype, 19950327)
static struct BurnRomInfo md_msbp07RomDesc[] = {
	{ "magic school bus, the (prototype - mar 27, 1995).bin", 0x0f52e8, 0xb065da40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp07)
STD_ROM_FN(md_msbp07)

struct BurnDriver BurnDrvmd_msbp07 = {
	"md_msbp07", "md_msb", NULL, NULL, "1995",
	"Magic School Bus, The (Prototype, 19950327)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp07RomInfo, md_msbp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (Prototype, 19950331)
static struct BurnRomInfo md_msbp06RomDesc[] = {
	{ "magic school bus, the (prototype - mar 31, 1995).bin", 0x0f93c0, 0xcd788def, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp06)
STD_ROM_FN(md_msbp06)

struct BurnDriver BurnDrvmd_msbp06 = {
	"md_msbp06", "md_msb", NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (Prototype, 19950331)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp06RomInfo, md_msbp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scholastic's The Magic School Bus (Prototype, 19950505)
static struct BurnRomInfo md_msbp01RomDesc[] = {
	{ "magic school bus, the (prototype - may 05, 1995).bin", 0x0fea00, 0xa2315f1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msbp01)
STD_ROM_FN(md_msbp01)

struct BurnDriver BurnDrvmd_msbp01 = {
	"md_msbp01", "md_msb", NULL, NULL, "1995",
	"Scholastic's The Magic School Bus (Prototype, 19950505)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_msbp01RomInfo, md_msbp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magical Hat no Buttobi Turbo! Daibouken (Japan)
static struct BurnRomInfo md_magichatRomDesc[] = {
	{ "magical hat no buttobi turbo! daibouken (jpn).bin", 0x080000, 0xe43e853d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_magichat)
STD_ROM_FN(md_magichat)

struct BurnDriver BurnDrvmd_magichat = {
	"md_magichat", NULL, NULL, NULL, "1990",
	"Magical Hat no Buttobi Turbo! Daibouken (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_magichatRomInfo, md_magichatRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magical Taruruuto-kun (Japan)
static struct BurnRomInfo md_mtaruruRomDesc[] = {
	{ "magical taruruuto-kun (jpn).bin", 0x080000, 0xf11060a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mtaruru)
STD_ROM_FN(md_mtaruru)

struct BurnDriver BurnDrvmd_mtaruru = {
	"md_mtaruru", NULL, NULL, NULL, "1992",
	"Magical Taruruuto-kun (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mtaruruRomInfo, md_mtaruruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic Bubble (Taiwan) (Unl)
static struct BurnRomInfo md_MagbubbleRomDesc[] = {
	{ "Magic Bubble.md", 524288, 0x3ec61dc1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Magbubble)
STD_ROM_FN(md_Magbubble)

struct BurnDriver Burnmd_Magbubble = {
	"md_magbubble", NULL, NULL, NULL, "1993",
	"Magic Bubble (Taiwan) (Unl)\0", NULL, "C&E Inc.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_MagbubbleRomInfo, md_MagbubbleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mahjong Cop Ryuu - Shiro Ookami no Yabou (Japan)
static struct BurnRomInfo md_mahjongcRomDesc[] = {
	{ "mahjong cop ryuu - shiro ookami no yabou (jpn).bin", 0x040000, 0x1ccbc782, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mahjongc)
STD_ROM_FN(md_mahjongc)

struct BurnDriver BurnDrvmd_mahjongc = {
	"md_mahjongc", NULL, NULL, NULL, "1989",
	"Mahjong Cop Ryuu - Shiro Ookami no Yabou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_ADV, 0,
	MegadriveGetZipName, md_mahjongcRomInfo, md_mahjongcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mamono Hunter Youko - Dai 7 no Keishou (Japan)
static struct BurnRomInfo md_mamonoRomDesc[] = {
	{ "mamono hunter youko - dai 7 no keishou (jpn).bin", 0x080000, 0x10bb359b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mamono)
STD_ROM_FN(md_mamono)

struct BurnDriver BurnDrvmd_mamono = {
	"md_mamono", NULL, NULL, NULL, "1991",
	"Mamono Hunter Youko - Dai 7 no Keishou (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mamonoRomInfo, md_mamonoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// S.S. Lucifer - Man Overboard! (Euro)
static struct BurnRomInfo md_manoverRomDesc[] = {
	{ "mdss12c4.bin", 0x100000, 0xcae0e3a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_manover)
STD_ROM_FN(md_manover)

struct BurnDriver BurnDrvmd_manover = {
	"md_manover", NULL, NULL, NULL, "1994",
	"S.S. Lucifer - Man Overboard! (Euro)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_manoverRomInfo, md_manoverRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Newman Haas IndyCar Featuring Nigel Mansell ~ Nigel Mansell Indy Car (World)
static struct BurnRomInfo md_newmanhRomDesc[] = {
	{ "newman haas indy car featuring nigel mansell -- nigel mansell indy car (world).bin", 0x200000, 0x1233a229, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_newmanh)
STD_ROM_FN(md_newmanh)

struct BurnDriver BurnDrvmd_newmanh = {
	"md_newmanh", NULL, NULL, NULL, "1994",
	"Newman Haas IndyCar Featuring Nigel Mansell ~ Nigel Mansell Indy Car (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_newmanhRomInfo, md_newmanhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marble Madness (Euro, USA)
static struct BurnRomInfo md_marbleRomDesc[] = {
	{ "mar01.bin", 0x080000, 0x79eba28a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_marble)
STD_ROM_FN(md_marble)

struct BurnDriver BurnDrvmd_marble = {
	"md_marble", NULL, NULL, NULL, "1993",
	"Marble Madness (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_marbleRomInfo, md_marbleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mario Andretti Racing (Euro, USA)
static struct BurnRomInfo md_andrettiRomDesc[] = {
	{ "mario andretti racing (euro, usa).bin", 0x200000, 0x7f1dc0aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_andretti)
STD_ROM_FN(md_andretti)

struct BurnDriver BurnDrvmd_andretti = {
	"md_andretti", NULL, NULL, NULL, "1994",
	"Mario Andretti Racing (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_andrettiRomInfo, md_andrettiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mario Lemieux Hockey (Euro, USA)
static struct BurnRomInfo md_mariolhRomDesc[] = {
	{ "mpr-14376.bin", 0x080000, 0xf664eb6c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mariolh)
STD_ROM_FN(md_mariolh)

struct BurnDriver BurnDrvmd_mariolh = {
	"md_mariolh", NULL, NULL, NULL, "1991",
	"Mario Lemieux Hockey (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mariolhRomInfo, md_mariolhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marko's Magic Football (Euro)
static struct BurnRomInfo md_markoRomDesc[] = {
	{ "mpr-16825.bin", 0x200000, 0x2307b905, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_marko)
STD_ROM_FN(md_marko)

struct BurnDriver BurnDrvmd_marko = {
	"md_marko", NULL, NULL, NULL, "1994",
	"Marko's Magic Football (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_markoRomInfo, md_markoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marko's Magic Football (Euro, Prototype)
static struct BurnRomInfo md_markopRomDesc[] = {
	{ "marko's magic football (euro) (beta).bin", 0x200000, 0x0273e564, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_markop)
STD_ROM_FN(md_markop)

struct BurnDriver BurnDrvmd_markop = {
	"md_markop", "md_marko", NULL, NULL, "1994",
	"Marko's Magic Football (Euro, Prototype)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_markopRomInfo, md_markopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marko (USA)
static struct BurnRomInfo md_markouRomDesc[] = {
	{ "marko's magic football (usa).bin", 0x200000, 0x2b8c8cce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_markou)
STD_ROM_FN(md_markou)

struct BurnDriver BurnDrvmd_markou = {
	"md_markou", "md_marko", NULL, NULL, "1994",
	"Marko (USA)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_markouRomInfo, md_markouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marsupilami (Euro)
static struct BurnRomInfo md_marsupRomDesc[] = {
	{ "marsupilami (euro).bin", 0x200000, 0xe09bbd70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_marsup)
STD_ROM_FN(md_marsup)

struct BurnDriver BurnDrvmd_marsup = {
	"md_marsup", NULL, NULL, NULL, "1995",
	"Marsupilami (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_marsupRomInfo, md_marsupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marsupilami (USA)
static struct BurnRomInfo md_marsupuRomDesc[] = {
	{ "marsupilami (usa).bin", 0x200000, 0xc76558df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_marsupu)
STD_ROM_FN(md_marsupu)

struct BurnDriver BurnDrvmd_marsupu = {
	"md_marsupu", "md_marsup", NULL, NULL, "1995",
	"Marsupilami (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_marsupuRomInfo, md_marsupuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Master of Monsters (USA)
static struct BurnRomInfo md_mastermRomDesc[] = {
	{ "master of monsters (usa).bin", 0x080000, 0x91354820, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_masterm)
STD_ROM_FN(md_masterm)

struct BurnDriver BurnDrvmd_masterm = {
	"md_masterm", NULL, NULL, NULL, "1991",
	"Master of Monsters (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_mastermRomInfo, md_mastermRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Master of Monsters (Japan)
static struct BurnRomInfo md_mastermjRomDesc[] = {
	{ "mpr-14120.bin", 0x080000, 0xd51ee8c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mastermj)
STD_ROM_FN(md_mastermj)

struct BurnDriver BurnDrvmd_mastermj = {
	"md_mastermj", "md_masterm", NULL, NULL, "1991",
	"Master of Monsters (Japan)\0", NULL, "Toshiba EMI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_mastermjRomInfo, md_mastermjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Master of Weapon (Japan)
static struct BurnRomInfo md_mweaponRomDesc[] = {
	{ "master of weapon (jpn).bin", 0x080000, 0x12ad6178, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mweapon)
STD_ROM_FN(md_mweapon)

struct BurnDriver BurnDrvmd_mweapon = {
	"md_mweapon", NULL, NULL, NULL, "1991",
	"Master of Weapon (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_mweaponRomInfo, md_mweaponRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Maten no Soumetsu (Japan)
static struct BurnRomInfo md_matenRomDesc[] = {
	{ "maten no soumetsu (jpn).bin", 0x100000, 0xb804a105, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_maten)
STD_ROM_FN(md_maten)

struct BurnDriver BurnDrvmd_maten = {
	"md_maten", NULL, NULL, NULL, "1993",
	"Maten no Soumetsu (Japan)\0", NULL, "Kodansha", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_matenRomInfo, md_matenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Math Blaster - Episode 1 (USA)
static struct BurnRomInfo md_mathblstRomDesc[] = {
	{ "math blaster - episode 1 (usa).bin", 0x100000, 0xd055a462, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mathblst)
STD_ROM_FN(md_mathblst)

struct BurnDriver BurnDrvmd_mathblst = {
	"md_mathblst", NULL, NULL, NULL, "1994",
	"Math Blaster - Episode 1 (USA)\0", NULL, "Davidson & Associates", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_QUIZ, 0,
	MegadriveGetZipName, md_mathblstRomInfo, md_mathblstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mazin Wars (Euro)
static struct BurnRomInfo md_mazinwarRomDesc[] = {
	{ "mazin wars (euro).bin", 0x100000, 0x4b07a105, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mazinwar)
STD_ROM_FN(md_mazinwar)

struct BurnDriver BurnDrvmd_mazinwar = {
	"md_mazinwar", NULL, NULL, NULL, "1993",
	"Mazin Wars (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mazinwarRomInfo, md_mazinwarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mazin Saga (Asia)
static struct BurnRomInfo md_mazinsagaRomDesc[] = {
	{ "mazin saga (asia).bin", 0x100000, 0x36459b59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mazinsaga)
STD_ROM_FN(md_mazinsaga)

struct BurnDriver BurnDrvmd_mazinsaga = {
	"md_mazinsaga", "md_mazinwar", NULL, NULL, "1993",
	"Mazin Saga (Asia)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mazinsagaRomInfo, md_mazinsagaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mazin Saga (Japan, Korea)
static struct BurnRomInfo md_mazinsagjRomDesc[] = {
	{ "mazin saga (jpn, kor).bin", 0x100000, 0x45b3a34b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mazinsagj)
STD_ROM_FN(md_mazinsagj)

struct BurnDriver BurnDrvmd_mazinsagj = {
	"md_mazinsagj", "md_mazinwar", NULL, NULL, "1993",
	"Mazin Saga (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mazinsagjRomInfo, md_mazinsagjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mazin Saga (USA)
static struct BurnRomInfo md_mazinsaguRomDesc[] = {
	{ "mazin saga - mutant fighter (usa).bin", 0x100000, 0x1bd9fef1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mazinsagu)
STD_ROM_FN(md_mazinsagu)

struct BurnDriver BurnDrvmd_mazinsagu = {
	"md_mazinsagu", "md_mazinwar", NULL, NULL, "1993",
	"Mazin Saga (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mazinsaguRomInfo, md_mazinsaguRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// McDonald's Treasure Land Adventure (Euro)
static struct BurnRomInfo md_mcdonaldRomDesc[] = {
	{ "mcdonald's treasure land adventure (euro).bin", 0x100000, 0x6ab6a8da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mcdonald)
STD_ROM_FN(md_mcdonald)

struct BurnDriver BurnDrvmd_mcdonald = {
	"md_mcdonald", NULL, NULL, NULL, "1993",
	"McDonald's Treasure Land Adventure (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mcdonaldRomInfo, md_mcdonaldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// McDonald's Treasure Land Adventure (Japan)
static struct BurnRomInfo md_mcdonaldjRomDesc[] = {
	{ "mcdonald's treasure land adventure (jpn).bin", 0x100000, 0xfebcfd06, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mcdonaldj)
STD_ROM_FN(md_mcdonaldj)

struct BurnDriver BurnDrvmd_mcdonaldj = {
	"md_mcdonaldj", "md_mcdonald", NULL, NULL, "1993",
	"McDonald's Treasure Land Adventure (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mcdonaldjRomInfo, md_mcdonaldjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// McDonald's Treasure Land Adventure (Japan, Prototype)
static struct BurnRomInfo md_mcdonaldjpRomDesc[] = {
	{ "mcdonald's treasure land adventure (jpn) (beta).bin", 0x100000, 0x7bf477e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mcdonaldjp)
STD_ROM_FN(md_mcdonaldjp)

struct BurnDriver BurnDrvmd_mcdonaldjp = {
	"md_mcdonaldjp", "md_mcdonald", NULL, NULL, "1993",
	"McDonald's Treasure Land Adventure (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mcdonaldjpRomInfo, md_mcdonaldjpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// McDonald's Treasure Land Adventure (USA)
static struct BurnRomInfo md_mcdonalduRomDesc[] = {
	{ "mcdonald's treasure land adventure (usa).bin", 0x100000, 0x04ef4899, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mcdonaldu)
STD_ROM_FN(md_mcdonaldu)

struct BurnDriver BurnDrvmd_mcdonaldu = {
	"md_mcdonaldu", "md_mcdonald", NULL, NULL, "1993",
	"McDonald's Treasure Land Adventure (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mcdonalduRomInfo, md_mcdonalduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Medal City (Japan, SegaNet)
static struct BurnRomInfo md_medalcRomDesc[] = {
	{ "medal city (jpn) (sn).bin", 0x040000, 0x3ef4135d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_medalc)
STD_ROM_FN(md_medalc)

struct BurnDriver BurnDrvmd_medalc = {
	"md_medalc", NULL, NULL, NULL, "1991",
	"Medal City (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CASINO, 0,
	MegadriveGetZipName, md_medalcRomInfo, md_medalcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Bomberman (Euro, Korea)
static struct BurnRomInfo md_megabombRomDesc[] = {
	{ "Mega Bomberman (Euro, Korea)(1994)(Sega).bin", 0x100000, 0x54ab3beb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megabomb)
STD_ROM_FN(md_megabomb)

struct BurnDriver BurnDrvmd_megabomb = {
	"md_megabomb", NULL, NULL, NULL, "1994",
	"Mega Bomberman (Euro, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_ACTION, 0,
	MegadriveGetZipName, md_megabombRomInfo, md_megabombRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Bomberman (USA)
static struct BurnRomInfo md_megabombuRomDesc[] = {
	{ "Mega Bomberman (USA)(1994)(Sega).bin", 0x100000, 0x4bd6667d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megabombu)
STD_ROM_FN(md_megabombu)

struct BurnDriver BurnDrvmd_megabombu = {
	"md_megabombu", "md_megabomb", NULL, NULL, "1994",
	"Mega Bomberman (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_ACTION, 0,
	MegadriveGetZipName, md_megabombuRomInfo, md_megabombuRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Bomberman - 8 Player Demo (Unl)
static struct BurnRomInfo md_megabm8RomDesc[] = {
	{ "Mega Bomberman - 8 Player Demo (Unl)(1994)(Factor 5).bin", 0x100000, 0xd41c0d81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megabm8)
STD_ROM_FN(md_megabm8)

struct BurnDriver BurnDrvmd_megabm8 = {
	"md_megabm8", NULL, NULL, NULL, "1994",
	"Mega Bomberman - 8 Player Demo (Unl)\0", NULL, "Factor 5", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_DEMO, 8, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_megabm8RomInfo, md_megabm8RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games I (Euro)
static struct BurnRomInfo md_megaga1RomDesc[] = {
	{ "Mega Games I (Euro)(1992)(Sega).bin", 0x100000, 0xdb753224, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga1)
STD_ROM_FN(md_megaga1)

struct BurnDriver BurnDrvmd_megaga1 = {
	"md_megaga1", NULL, NULL, NULL, "1992",
	"Mega Games I (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga1RomInfo, md_megaga1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games 2 (Euro)
static struct BurnRomInfo md_megaga2RomDesc[] = {
	{ "Mega Games 2 (Euro)(1993)(Sega).bin", 0x200000, 0x30d59f2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga2)
STD_ROM_FN(md_megaga2)

struct BurnDriver BurnDrvmd_megaga2 = {
	"md_megaga2", NULL, NULL, NULL, "1993",
	"Mega Games 2 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga2RomInfo, md_megaga2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games 3 (Euro, Asia)
static struct BurnRomInfo md_megaga3RomDesc[] = {
	{ "Mega Games 3 (Euro, Asia)(1993)(Sega).bin", 0x200000, 0xb4247d98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga3)
STD_ROM_FN(md_megaga3)

struct BurnDriver BurnDrvmd_megaga3 = {
	"md_megaga3", NULL, NULL, NULL, "1993",
	"Mega Games 3 (Euro, Asia)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga3RomInfo, md_megaga3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games 6 Vol. 1 (Euro)
static struct BurnRomInfo md_megaga61RomDesc[] = {
	{ "Mega Games 6 Vol. 1 (Euro)(1995)(Sega).bin", 0x300000, 0xb66fb80d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga61)
STD_ROM_FN(md_megaga61)

struct BurnDriver BurnDrvmd_megaga61 = {
	"md_megaga61", NULL, NULL, NULL, "1995",
	"Mega Games 6 Vol. 1 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga61RomInfo, md_megaga61RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games 6 Vol. 2 (Euro)
static struct BurnRomInfo md_megaga62RomDesc[] = {
	{ "Mega Games 6 Vol. 2 (Euro)(1995)(Sega).bin", 0x300000, 0xe8d10db9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga62)
STD_ROM_FN(md_megaga62)

struct BurnDriver BurnDrvmd_megaga62 = {
	"md_megaga62", NULL, NULL, NULL, "1995",
	"Mega Games 6 Vol. 2 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga62RomInfo, md_megaga62RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games 6 Vol. 3 (Euro)
static struct BurnRomInfo md_megaga63RomDesc[] = {
	{ "Mega Games 6 Vol. 3 (Euro)(1995)(Sega).bin", 0x300000, 0xfe3e7e4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga63)
STD_ROM_FN(md_megaga63)

struct BurnDriver BurnDrvmd_megaga63 = {
	"md_megaga63", NULL, NULL, NULL, "1995",
	"Mega Games 6 Vol. 3 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga63RomInfo, md_megaga63RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Games 10 (Brazil)
static struct BurnRomInfo md_megaga10RomDesc[] = {
	{ "Mega Games 10 (Brazil)(199x).bin", 0x400000, 0xc19ae368, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaga10)
STD_ROM_FN(md_megaga10)

struct BurnDriver BurnDrvmd_megaga10 = {
	"md_megaga10", NULL, NULL, NULL, "199?",
	"Mega Games 10 (Brazil)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_megaga10RomInfo, md_megaga10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Man - The Wily Wars (USA)
static struct BurnRomInfo md_megamanRomDesc[] = {
	{ "mega man - the wily wars (usa).bin", 0x200000, 0x0cd405db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaman)
STD_ROM_FN(md_megaman)

struct BurnDriver BurnDrvmd_megaman = {
	"md_megaman", NULL, NULL, NULL, "1994",
	"Mega Man - The Wily Wars (USA)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megamanRomInfo, md_megamanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Man - The Wily Wars (Euro)
static struct BurnRomInfo md_megamaneuRomDesc[] = {
	{ "mega man - the wily wars (euro).bin", 0x200000, 0xdcf6e8b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megamaneu)
STD_ROM_FN(md_megamaneu)

struct BurnDriver BurnDrvmd_megamaneu = {
	"md_megamaneu", "md_megaman", NULL, NULL, "1994",
	"Mega Man - The Wily Wars (Euro)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megamaneuRomInfo, md_megamaneuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rockman Mega World (Japan)
static struct BurnRomInfo md_rockmanRomDesc[] = {
	{ "rockman mega world (jpn).bin", 0x200000, 0x4d87235e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rockman)
STD_ROM_FN(md_rockman)

struct BurnDriver BurnDrvmd_rockman = {
	"md_rockman", "md_megaman", NULL, NULL, "1994",
	"Rockman Mega World (Japan)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rockmanRomInfo, md_rockmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rockman Mega World (Japan, Alt)
static struct BurnRomInfo md_rockman1RomDesc[] = {
	{ "rockman mega world (jpn) (alt).bin", 0x200000, 0x85c956ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rockman1)
STD_ROM_FN(md_rockman1)

struct BurnDriver BurnDrvmd_rockman1 = {
	"md_rockman1", "md_megaman", NULL, NULL, "1994",
	"Rockman Mega World (Japan, Alt)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rockman1RomInfo, md_rockman1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Man - The Wily Wars (Retro-bit)
static struct BurnRomInfo md_megamanrbRomDesc[] = {
	{ "Mega Man - The Wily Wars (2021)(Retro-bit).bin", 2097152, 0x0831020b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megamanrb)
STD_ROM_FN(md_megamanrb)

struct BurnDriver BurnDrvmd_megamanrb = {
	"md_megamanrb", "md_megaman", NULL, NULL, "2021",
	"Mega Man - The Wily Wars (Retro-bit)\0", NULL, "Capcom - Retro-bit", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megamanrbRomInfo, md_megamanrbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Man - The Wily Wars Fixer Upper (Hack, v1.0.5)
static struct BurnRomInfo md_megamanfixRomDesc[] = {
	{ "Mega Man - The Wily Wars Fixer Upper (2022) (Josephine Lithius).bin", 2097152, 0x82b377f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megamanfix)
STD_ROM_FN(md_megamanfix)

struct BurnDriver BurnDrvmd_megamanfix = {
	"md_megamanfix", "md_megaman", NULL, NULL, "2022",
	"Mega Man - The Wily Wars Fixer Upper (Hack, v1.0.5)\0", NULL, "Josephine Lithius", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megamanfixRomInfo, md_megamanfixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rockman Mega World Fixer Upper (Hack, v1.0.5)
static struct BurnRomInfo md_rockmanfixRomDesc[] = {
	{ "Rockman Mega World Fixer Upper (2022)(Josephine Lithius).bin", 2097152, 0x4a2058bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rockmanfix)
STD_ROM_FN(md_rockmanfix)

struct BurnDriver BurnDrvmd_rockmanfix = {
	"md_rockmanfix", "md_megaman", NULL, NULL, "2022",
	"Rockman Mega World Fixer Upper (Hack, v1.0.5)\0", NULL, "Josephine Lithius", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rockmanfixRomInfo, md_rockmanfixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega SWIV (Euro)
static struct BurnRomInfo md_megaswivRomDesc[] = {
	{ "mega swiv (euro).bin", 0x100000, 0x78c2f046, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaswiv)
STD_ROM_FN(md_megaswiv)

struct BurnDriver BurnDrvmd_megaswiv = {
	"md_megaswiv", NULL, NULL, NULL, "1994",
	"Mega SWIV (Euro)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_megaswivRomInfo, md_megaswivRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega SWIV (Euro, Pirate)
static struct BurnRomInfo md_megaswivbRomDesc[] = {
	{ "mega swiv (euro) (pirate).bin", 0x100000, 0x1ec66bf7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaswivb)
STD_ROM_FN(md_megaswivb)

struct BurnDriver BurnDrvmd_megaswivb = {
	"md_megaswivb", "md_megaswiv", NULL, NULL, "1994",
	"Mega SWIV (Euro, Pirate)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_megaswivbRomInfo, md_megaswivbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Turrican (Euro)
static struct BurnRomInfo md_megaturrRomDesc[] = {
	{ "mega turrican (euro).bin", 0x100000, 0xb1d15d0f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaturr)
STD_ROM_FN(md_megaturr)

struct BurnDriver BurnDrvmd_megaturr = {
	"md_megaturr", NULL, NULL, NULL, "1994",
	"Mega Turrican (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megaturrRomInfo, md_megaturrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Turrican (USA)
static struct BurnRomInfo md_megaturruRomDesc[] = {
	{ "mega turrican (usa).bin", 0x100000, 0xfe898cc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaturru)
STD_ROM_FN(md_megaturru)

struct BurnDriver BurnDrvmd_megaturru = {
	"md_megaturru", "md_megaturr", NULL, NULL, "1994",
	"Mega Turrican (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megaturruRomInfo, md_megaturruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Turrican (Prototype, 19930518)
static struct BurnRomInfo md_megaturrpRomDesc[] = {
	{ "mega turrican (prototype - may 18, 1993).bin", 0x100000, 0x3ba35acd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaturrp)
STD_ROM_FN(md_megaturrp)

struct BurnDriver BurnDrvmd_megaturrp = {
	"md_megaturrp", "md_megaturr", NULL, NULL, "1993",
	"Mega Turrican (Prototype, 19930518)\0", NULL, "Factor 5", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megaturrpRomInfo, md_megaturrpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega-Lo-Mania (Euro, v1.1)
static struct BurnRomInfo md_megaloRomDesc[] = {
	{ "mega-lo-mania (euro) (v1.1).bin", 0x100000, 0xab9fed30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megalo)
STD_ROM_FN(md_megalo)

struct BurnDriver BurnDrvmd_megalo = {
	"md_megalo", NULL, NULL, NULL, "1992",
	"Mega-Lo-Mania (Euro, v1.1)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_megaloRomInfo, md_megaloRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega-Lo-Mania (Euro)
static struct BurnRomInfo md_megalo1RomDesc[] = {
	{ "mpr-15230.bin", 0x100000, 0x2148d56d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megalo1)
STD_ROM_FN(md_megalo1)

struct BurnDriver BurnDrvmd_megalo1 = {
	"md_megalo1", "md_megalo", NULL, NULL, "1992",
	"Mega-Lo-Mania (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_megalo1RomInfo, md_megalo1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega-Lo-Mania (Euro, French)
static struct BurnRomInfo md_megalofRomDesc[] = {
	{ "mega-lo-mania (france).bin", 0x100000, 0x3b3231ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megalof)
STD_ROM_FN(md_megalof)

struct BurnDriver BurnDrvmd_megalof = {
	"md_megalof", "md_megalo", NULL, NULL, "1992",
	"Mega-Lo-Mania (Euro, French)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_megalofRomInfo, md_megalofRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega-Lo-Mania (Japan)
static struct BurnRomInfo md_megalojRomDesc[] = {
	{ "mega-lo-mania (jpn).bin", 0x100000, 0xa60d8619, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaloj)
STD_ROM_FN(md_megaloj)

struct BurnDriver BurnDrvmd_megaloj = {
	"md_megaloj", "md_megalo", NULL, NULL, "1993",
	"Mega-Lo-Mania (Japan)\0", NULL, "CRI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_megalojRomInfo, md_megalojRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tyrants - Fight through Time (USA)
static struct BurnRomInfo md_tyrantRomDesc[] = {
	{ "tyrants - fight through time (usa).bin", 0x100000, 0xa744921e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tyrant)
STD_ROM_FN(md_tyrant)

struct BurnDriver BurnDrvmd_tyrant = {
	"md_tyrant", "md_megalo", NULL, NULL, "1992",
	"Tyrants - Fight through Time (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_tyrantRomInfo, md_tyrantRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MegaMind (Japan, SegaNet)
static struct BurnRomInfo md_megamindRomDesc[] = {
	{ "megamind (jpn) (sn).bin", 0x040000, 0x76df2ae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megamind)
STD_ROM_FN(md_megamind)

struct BurnDriver BurnDrvmd_megamind = {
	"md_megamind", NULL, NULL, NULL, "1991",
	"MegaMind (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_megamindRomInfo, md_megamindRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MegaPanel (Japan)
static struct BurnRomInfo md_megapanlRomDesc[] = {
	{ "megapanel (jpn).bin", 0x040000, 0x6240f579, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megapanl)
STD_ROM_FN(md_megapanl)

struct BurnDriver BurnDrvmd_megapanl = {
	"md_megapanl", NULL, NULL, NULL, "1990",
	"MegaPanel (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_megapanlRomInfo, md_megapanlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Menacer 6-Game Cartridge (Euro, USA)
static struct BurnRomInfo md_menacerRomDesc[] = {
	{ "mpr-15075.bin", 0x100000, 0x936b85f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_menacer)
STD_ROM_FN(md_menacer)

struct BurnDriver BurnDrvmd_menacer = {
	"md_menacer", NULL, NULL, NULL, "1992",
	"Menacer 6-Game Cartridge (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_menacerRomInfo, md_menacerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Meng Huan Shui Guo Pan - 777 Casino (Taiwan) (Unl)
static struct BurnRomInfo md_menghuRomDesc[] = {
	{ "meng huan shui guo pan - 777 casino (chi) (unl).bin", 0x100000, 0x42dc03e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_menghu)
STD_ROM_FN(md_menghu)

struct BurnDriver BurnDrvmd_menghu = {
	"md_menghu", NULL, NULL, NULL, "1996",
	"Meng Huan Shui Guo Pan - 777 Casino (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_CASINO, 0,
	MegadriveGetZipName, md_menghuRomInfo, md_menghuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mercs (Euro, USA) ~ Senjou no Ookami II (Japan)
static struct BurnRomInfo md_mercsRomDesc[] = {
	{ "mpr-14242.bin", 0x100000, 0x16113a72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mercs)
STD_ROM_FN(md_mercs)

struct BurnDriver BurnDrvmd_mercs = {
	"md_mercs", NULL, NULL, NULL, "1991",
	"Mercs (Euro, USA) ~ Senjou no Ookami II (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_mercsRomInfo, md_mercsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Metal Fangs (Japan)
static struct BurnRomInfo md_metalfngRomDesc[] = {
	{ "metal fangs (jpn).bin", 0x080000, 0xa8df1c4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_metalfng)
STD_ROM_FN(md_metalfng)

struct BurnDriver BurnDrvmd_metalfng = {
	"md_metalfng", NULL, NULL, NULL, "1993",
	"Metal Fangs (Japan)\0", NULL, "Victor Musical Instruments", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_metalfngRomInfo, md_metalfngRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Michael Jackson's Moonwalker (World, Rev. A)
static struct BurnRomInfo md_mwalkRomDesc[] = {
	{ "mpr-13285a.bin", 0x080000, 0x11ce1f9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mwalk)
STD_ROM_FN(md_mwalk)

struct BurnDriver BurnDrvmd_mwalk = {
	"md_mwalk", NULL, NULL, NULL, "1990",
	"Michael Jackson's Moonwalker (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mwalkRomInfo, md_mwalkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Michael Jackson's Moonwalker (World)
static struct BurnRomInfo md_mwalk1RomDesc[] = {
	{ "mpr-13285.bin", 0x080000, 0x6a70791b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mwalk1)
STD_ROM_FN(md_mwalk1)

struct BurnDriver BurnDrvmd_mwalk1 = {
	"md_mwalk1", "md_mwalk", NULL, NULL, "1990",
	"Michael Jackson's Moonwalker (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mwalk1RomInfo, md_mwalk1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Michael Jackson's Moonwalker (Prototype, 19900424)
static struct BurnRomInfo md_mwalkpRomDesc[] = {
	{ "michael jackson's moonwalker (prototype - apr 24, 1990).bin", 0x080000, 0xdc7ed8c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mwalkp)
STD_ROM_FN(md_mwalkp)

struct BurnDriver BurnDrvmd_mwalkp = {
	"md_mwalkp", "md_mwalk", NULL, NULL, "1990",
	"Michael Jackson's Moonwalker (Prototype, 19900424)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mwalkpRomInfo, md_mwalkpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mick & Mack as the Global Gladiators (Euro)
static struct BurnRomInfo md_mickmackRomDesc[] = {
	{ "mpr-15237.bin", 0x100000, 0x5c218c6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickmack)
STD_ROM_FN(md_mickmack)

struct BurnDriver BurnDrvmd_mickmack = {
	"md_mickmack", NULL, NULL, NULL, "1993",
	"Mick & Mack as the Global Gladiators (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mickmackRomInfo, md_mickmackRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mick & Mack as the Global Gladiators (USA)
static struct BurnRomInfo md_mickmackuRomDesc[] = {
	{ "mick & mack as the global gladiators (usa).bin", 0x100000, 0x40f17bb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickmacku)
STD_ROM_FN(md_mickmacku)

struct BurnDriver BurnDrvmd_mickmacku = {
	"md_mickmacku", "md_mickmack", NULL, NULL, "1992",
	"Mick & Mack as the Global Gladiators (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mickmackuRomInfo, md_mickmackuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mick & Mack as the Global Gladiators (USA, Prototype)
static struct BurnRomInfo md_mickmackupRomDesc[] = {
	{ "mick & mack as the global gladiators (usa) (beta).bin", 0x100000, 0x08c2af21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickmackup)
STD_ROM_FN(md_mickmackup)

struct BurnDriver BurnDrvmd_mickmackup = {
	"md_mickmackup", "md_mickmack", NULL, NULL, "1992",
	"Mick & Mack as the Global Gladiators (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mickmackupRomInfo, md_mickmackupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mickey Mania - The Timeless Adventures of Mickey Mouse (Euro)
static struct BurnRomInfo md_mmaniaRomDesc[] = {
	{ "mpr-17089.bin", 0x200000, 0xcb5a8b85, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmania)
STD_ROM_FN(md_mmania)

struct BurnDriver BurnDrvmd_mmania = {
	"md_mmania", NULL, NULL, NULL, "1994",
	"Mickey Mania - The Timeless Adventures of Mickey Mouse (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mmaniaRomInfo, md_mmaniaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mickey Mania - The Timeless Adventures of Mickey Mouse (Japan)
static struct BurnRomInfo md_mmaniajRomDesc[] = {
	{ "mickey mania - the timeless adventures of mickey mouse (jpn).bin", 0x200000, 0x23180cf7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmaniaj)
STD_ROM_FN(md_mmaniaj)

struct BurnDriver BurnDrvmd_mmaniaj = {
	"md_mmaniaj", "md_mmania", NULL, NULL, "1995",
	"Mickey Mania - The Timeless Adventures of Mickey Mouse (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mmaniajRomInfo, md_mmaniajRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mickey Mania - The Timeless Adventures of Mickey Mouse (USA)
static struct BurnRomInfo md_mmaniauRomDesc[] = {
	{ "mickey mania - the timeless adventures of mickey mouse (usa).bin", 0x200000, 0x629e5963, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmaniau)
STD_ROM_FN(md_mmaniau)

struct BurnDriver BurnDrvmd_mmaniau = {
	"md_mmaniau", "md_mmania", NULL, NULL, "1994",
	"Mickey Mania - The Timeless Adventures of Mickey Mouse (USA)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mmaniauRomInfo, md_mmaniauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mickey Mania - The Timeless Adventures of Mickey Mouse (USA, Prototype)
static struct BurnRomInfo md_mmaniaupRomDesc[] = {
	{ "mickey mania - the timeless adventures of mickey mouse (usa) (beta).bin", 0x200000, 0x7fc1bdf0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmaniaup)
STD_ROM_FN(md_mmaniaup)

struct BurnDriver BurnDrvmd_mmaniaup = {
	"md_mmaniaup", "md_mmania", NULL, NULL, "1994",
	"Mickey Mania - The Timeless Adventures of Mickey Mouse (USA, Prototype)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mmaniaupRomInfo, md_mmaniaupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mickey's Ultimate Challenge (USA)
static struct BurnRomInfo md_mickeyucRomDesc[] = {
	{ "mickey's ultimate challenge (usa).bin", 0x100000, 0x30b512ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickeyuc)
STD_ROM_FN(md_mickeyuc)

struct BurnDriver BurnDrvmd_mickeyuc = {
	"md_mickeyuc", NULL, NULL, NULL, "1994",
	"Mickey's Ultimate Challenge (USA)\0", NULL, "Hi Tech Expressions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mickeyucRomInfo, md_mickeyucRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines (Euro, USA, Alt)
static struct BurnRomInfo md_micromacaRomDesc[] = {
	{ "micro machines (euro, usa) (alt).bin", 0x080000, 0xe5cf560d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromaca)
STD_ROM_FN(md_micromaca)

struct BurnDriver BurnDrvmd_micromaca = {
	"md_micromaca", "md_micromac", NULL, NULL, "1993",
	"Micro Machines (Euro, USA, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_micromacaRomInfo, md_micromacaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines (Euro, USA, Alt 2)
static struct BurnRomInfo md_micromacbRomDesc[] = {
	{ "micro machines (euro, usa) (alt2).bin", 0x080000, 0x7ffbd1ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromacb)
STD_ROM_FN(md_micromacb)

struct BurnDriver BurnDrvmd_micromacb = {
	"md_micromacb", "md_micromac", NULL, NULL, "1993",
	"Micro Machines (Euro, USA, Alt 2)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_micromacbRomInfo, md_micromacbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines (Canada)
static struct BurnRomInfo md_micromaccRomDesc[] = {
	{ "micro machines (canada).bin", 0x080000, 0x54e4cff1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromacc)
STD_ROM_FN(md_micromacc)

struct BurnDriver BurnDrvmd_micromacc = {
	"md_micromacc", "md_micromac", NULL, NULL, "1993",
	"Micro Machines (Canada)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_micromaccRomInfo, md_micromaccRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines Turbo Tournament 96 (Euro, J-Cart)
static struct BurnRomInfo md_microm96aRomDesc[] = {
	{ "mm96md7cc3.bin", 0x100000, 0x7492b1de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_microm96a)
STD_ROM_FN(md_microm96a)

struct BurnDriver BurnDrvmd_microm96a = {
	"md_microm96a", "md_microm96", NULL, NULL, "1995",
	"Micro Machines Turbo Tournament 96 (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_RACING, 0,
	MegadriveGetZipName, md_microm96aRomInfo, md_microm96aRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines 2 - Turbo Tournament (Euro, J-Cart, Alt)
static struct BurnRomInfo md_micromc2aRomDesc[] = {
	{ "micro machines 2 - turbo tournament (euro) (j-cart) (alt).bin", 0x100000, 0x01c22a5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromc2a)
STD_ROM_FN(md_micromc2a)

struct BurnDriver BurnDrvmd_micromc2a = {
	"md_micromc2a", "md_micromc2", NULL, NULL, "1994",
	"Micro Machines 2 - Turbo Tournament (Euro, J-Cart, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_RACING, 0,
	MegadriveGetZipName, md_micromc2aRomInfo, md_micromc2aRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Micro Machines Military (Euro, J-Cart)
static struct BurnRomInfo md_micrommRomDesc[] = {
	{ "micro machines military (euro) (j-cart).bin", 0x100000, 0xb3abb15e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromm)
STD_ROM_FN(md_micromm)

struct BurnDriver BurnDrvmd_micromm = {
	"md_micromm", NULL, NULL, NULL, "1996",
	"Micro Machines Military (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CM_JCART_SEPROM, GBF_RACING, 0,
	MegadriveGetZipName, md_micrommRomInfo, md_micrommRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Midnight Resistance (USA)
static struct BurnRomInfo md_midresRomDesc[] = {
	{ "midnight resistance (usa).bin", 0x100000, 0x187c6af6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_midres)
STD_ROM_FN(md_midres)

struct BurnDriver BurnDrvmd_midres = {
	"md_midres", NULL, NULL, NULL, "1991",
	"Midnight Resistance (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_midresRomInfo, md_midresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Midnight Resistance (Japan)
static struct BurnRomInfo md_midresjRomDesc[] = {
	{ "midnight resistance (jpn).bin", 0x100000, 0x8f3f6e4d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_midresj)
STD_ROM_FN(md_midresj)

struct BurnDriver BurnDrvmd_midresj = {
	"md_midresj", "md_midres", NULL, NULL, "1991",
	"Midnight Resistance (Japan)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_midresjRomInfo, md_midresjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mig-29 Fighter Pilot (Euro)
static struct BurnRomInfo md_mig29RomDesc[] = {
	{ "mpr-15659.bin", 0x100000, 0x70b0a5d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mig29)
STD_ROM_FN(md_mig29)

struct BurnDriver BurnDrvmd_mig29 = {
	"md_mig29", NULL, NULL, NULL, "1993",
	"Mig-29 Fighter Pilot (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_mig29RomInfo, md_mig29RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mig-29 Fighter Pilot (Japan)
static struct BurnRomInfo md_mig29jRomDesc[] = {
	{ "mig-29 fighter pilot (jpn).bin", 0x100000, 0x3d239046, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mig29j)
STD_ROM_FN(md_mig29j)

struct BurnDriver BurnDrvmd_mig29j = {
	"md_mig29j", "md_mig29", NULL, NULL, "1993",
	"Mig-29 Fighter Pilot (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_mig29jRomInfo, md_mig29jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mig-29 Fighter Pilot (USA)
static struct BurnRomInfo md_mig29uRomDesc[] = {
	{ "mig-29 fighter pilot (usa).bin", 0x100000, 0x59ccabb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mig29u)
STD_ROM_FN(md_mig29u)

struct BurnDriver BurnDrvmd_mig29u = {
	"md_mig29u", "md_mig29", NULL, NULL, "1993",
	"Mig-29 Fighter Pilot (USA)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_mig29uRomInfo, md_mig29uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Might and Magic - Gates to Another World (Euro, USA)
static struct BurnRomInfo md_mightmagRomDesc[] = {
	{ "might and magic - gates to another world (euro, usa).bin", 0x0c0000, 0xf509145f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mightmag)
STD_ROM_FN(md_mightmag)

struct BurnDriver BurnDrvmd_mightmag = {
	"md_mightmag", NULL, NULL, NULL, "1991",
	"Might and Magic - Gates to Another World (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_mightmagRomInfo, md_mightmagRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Might and Magic III - Isles of Terra (USA, Prototype)
static struct BurnRomInfo md_mightmg3RomDesc[] = {
	{ "might and magic iii - isles of terra (usa) (prototype).bin", 0x200000, 0x6ef7104a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mightmg3)
STD_ROM_FN(md_mightmg3)

struct BurnDriver BurnDrvmd_mightmg3 = {
	"md_mightmg3", NULL, NULL, NULL, "1993",
	"Might and Magic III - Isles of Terra (USA, Prototype)\0", NULL, "CRI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_mightmg3RomInfo, md_mightmg3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (Euro)
static struct BurnRomInfo md_mmprRomDesc[] = {
	{ "mighty morphin power rangers (euro).bin", 0x200000, 0x7f96e663, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmpr)
STD_ROM_FN(md_mmpr)

struct BurnDriver BurnDrvmd_mmpr = {
	"md_mmpr", NULL, NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (Euro)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprRomInfo, md_mmprRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (USA)
static struct BurnRomInfo md_mmpruRomDesc[] = {
	{ "mighty morphin power rangers (usa).bin", 0x200000, 0x715158a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmpru)
STD_ROM_FN(md_mmpru)

struct BurnDriver BurnDrvmd_mmpru = {
	"md_mmpru", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (USA)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmpruRomInfo, md_mmpruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (USA, Prototype, 19940804)
static struct BurnRomInfo md_mmprp4RomDesc[] = {
	{ "mighty morphin power rangers (prototype - aug 04, 1994).bin", 0x200000, 0xf3ae5aaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprp4)
STD_ROM_FN(md_mmprp4)

struct BurnDriver BurnDrvmd_mmprp4 = {
	"md_mmprp4", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (USA, Prototype, 19940804)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprp4RomInfo, md_mmprp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (USA, Prototype, 19940808)
static struct BurnRomInfo md_mmprp3RomDesc[] = {
	{ "mighty morphin power rangers (prototype - aug 08, 1994).bin", 0x200000, 0x57644549, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprp3)
STD_ROM_FN(md_mmprp3)

struct BurnDriver BurnDrvmd_mmprp3 = {
	"md_mmprp3", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (USA, Prototype, 19940808)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprp3RomInfo, md_mmprp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (Prototype, 19940809)
static struct BurnRomInfo md_mmprp2RomDesc[] = {
	{ "mighty morphin power rangers (prototype - aug 09, 1994).bin", 0x200000, 0x4356fe0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprp2)
STD_ROM_FN(md_mmprp2)

struct BurnDriver BurnDrvmd_mmprp2 = {
	"md_mmprp2", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (Prototype, 19940809)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprp2RomInfo, md_mmprp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (Prototype, 19940810)
static struct BurnRomInfo md_mmprp1RomDesc[] = {
	{ "mighty morphin power rangers (prototype - aug 10, 1994).bin", 0x200000, 0xe79cd214, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprp1)
STD_ROM_FN(md_mmprp1)

struct BurnDriver BurnDrvmd_mmprp1 = {
	"md_mmprp1", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (Prototype, 19940810)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprp1RomInfo, md_mmprp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (Prototype, 19940708)
static struct BurnRomInfo md_mmprp6RomDesc[] = {
	{ "mighty morphin power rangers (prototype - jul 08, 1994).bin", 0x200000, 0xe6916c54, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprp6)
STD_ROM_FN(md_mmprp6)

struct BurnDriver BurnDrvmd_mmprp6 = {
	"md_mmprp6", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (Prototype, 19940708)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprp6RomInfo, md_mmprp6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers (Prototype, 19940718)
static struct BurnRomInfo md_mmprp5RomDesc[] = {
	{ "mighty morphin power rangers (prototype - jul 18, 1994).bin", 0x200000, 0x5accdb1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprp5)
STD_ROM_FN(md_mmprp5)

struct BurnDriver BurnDrvmd_mmprp5 = {
	"md_mmprp5", "md_mmpr", NULL, NULL, "1994",
	"Mighty Morphin Power Rangers (Prototype, 19940718)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprp5RomInfo, md_mmprp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Movie (Euro)
static struct BurnRomInfo md_mmprtmRomDesc[] = {
	{ "mighty morphin power rangers - the movie (euro).bin", 0x200000, 0x254a4972, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtm)
STD_ROM_FN(md_mmprtm)

struct BurnDriver BurnDrvmd_mmprtm = {
	"md_mmprtm", NULL, NULL, NULL, "1995",
	"Mighty Morphin Power Rangers - The Movie (Euro)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmRomInfo, md_mmprtmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Movie (USA)
static struct BurnRomInfo md_mmprtmuRomDesc[] = {
	{ "mighty morphin power rangers - the movie (usa).bin", 0x200000, 0xaa941cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtmu)
STD_ROM_FN(md_mmprtmu)

struct BurnDriver BurnDrvmd_mmprtmu = {
	"md_mmprtmu", "md_mmprtm", NULL, NULL, "1995",
	"Mighty Morphin Power Rangers - The Movie (USA)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmuRomInfo, md_mmprtmuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950713)
static struct BurnRomInfo md_mmprtmp4RomDesc[] = {
	{ "mighty morphin power rangers - the movie (prototype - jul 13, 1995).bin", 0x200000, 0x227bf7fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtmp4)
STD_ROM_FN(md_mmprtmp4)

struct BurnDriver BurnDrvmd_mmprtmp4 = {
	"md_mmprtmp4", "md_mmprtm", NULL, NULL, "1995",
	"Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950713)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmp4RomInfo, md_mmprtmp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950717)
static struct BurnRomInfo md_mmprtmp3RomDesc[] = {
	{ "mighty morphin power rangers - the movie (prototype - jul 17, 1995).bin", 0x200000, 0x579de657, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtmp3)
STD_ROM_FN(md_mmprtmp3)

struct BurnDriver BurnDrvmd_mmprtmp3 = {
	"md_mmprtmp3", "md_mmprtm", NULL, NULL, "1995",
	"Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950717)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmp3RomInfo, md_mmprtmp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950722)
static struct BurnRomInfo md_mmprtmp2RomDesc[] = {
	{ "mighty morphin power rangers - the movie (prototype - jul 22, 1995).bin", 0x200000, 0xc2ca3a8b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtmp2)
STD_ROM_FN(md_mmprtmp2)

struct BurnDriver BurnDrvmd_mmprtmp2 = {
	"md_mmprtmp2", "md_mmprtm", NULL, NULL, "1995",
	"Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950722)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmp2RomInfo, md_mmprtmp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950724)
static struct BurnRomInfo md_mmprtmp1RomDesc[] = {
	{ "mighty morphin power rangers - the movie (prototype - jul 24, 1995).bin", 0x200000, 0x3429fa3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtmp1)
STD_ROM_FN(md_mmprtmp1)

struct BurnDriver BurnDrvmd_mmprtmp1 = {
	"md_mmprtmp1", "md_mmprtm", NULL, NULL, "1995",
	"Mighty Morphin Power Rangers - The Movie (USA, Prototype, 19950724)\0", NULL, "Sega - Banpresto", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmp1RomInfo, md_mmprtmp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mike Ditka Power Football (Euro, USA)
static struct BurnRomInfo md_ditkapfRomDesc[] = {
	{ "mike ditka power football (euro, usa).bin", 0x100000, 0x6078b310, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ditkapf)
STD_ROM_FN(md_ditkapf)

struct BurnDriver BurnDrvmd_ditkapf = {
	"md_ditkapf", NULL, NULL, NULL, "1991",
	"Mike Ditka Power Football (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ditkapfRomInfo, md_ditkapfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mike Ditka Power Football (Euro, USA, Alt)
static struct BurnRomInfo md_ditkapf1RomDesc[] = {
	{ "mike ditka power football (euro, usa) (alt).bin", 0x100000, 0xde50ca8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ditkapf1)
STD_ROM_FN(md_ditkapf1)

struct BurnDriver BurnDrvmd_ditkapf1 = {
	"md_ditkapf1", "md_ditkapf", NULL, NULL, "1991",
	"Mike Ditka Power Football (Euro, USA, Alt)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ditkapf1RomInfo, md_ditkapf1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Minnesota Fats - Pool Legend (USA)
static struct BurnRomInfo md_mfpoolRomDesc[] = {
	{ "minnesota fats - pool legend (usa).bin", 0x100000, 0x38174f40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mfpool)
STD_ROM_FN(md_mfpool)

struct BurnDriver BurnDrvmd_mfpool = {
	"md_mfpool", NULL, NULL, NULL, "1995",
	"Minnesota Fats - Pool Legend (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mfpoolRomInfo, md_mfpoolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chou Kyuukai Miracle Nine (Japan)
static struct BurnRomInfo md_miracle9RomDesc[] = {
	{ "chou kyuukai miracle nine (jpn).bin", 0x200000, 0x6d8c2206, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_miracle9)
STD_ROM_FN(md_miracle9)

struct BurnDriver BurnDrvmd_miracle9 = {
	"md_miracle9", NULL, NULL, NULL, "1995",
	"Chou Kyuukai Miracle Nine (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_miracle9RomInfo, md_miracle9RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Miracle Piano Teaching System, The (USA)
static struct BurnRomInfo md_miraclepRomDesc[] = {
	{ "miracle piano teaching system, the (usa).bin", 0x080000, 0xa719542e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_miraclep)
STD_ROM_FN(md_miraclep)

struct BurnDriver BurnDrvmd_miraclep = {
	"md_miraclep", NULL, NULL, NULL, "1992",
	"Miracle Piano Teaching System, The (USA)\0", NULL, "The Software Toolworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_miraclepRomInfo, md_miraclepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MK 5 - Mortal Combat - SubZero (Unl)
static struct BurnRomInfo md_mk5RomDesc[] = {
	{ "mk 5 - mortal combat - subzero (unl).bin", 0x200000, 0x11e367a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk5)
STD_ROM_FN(md_mk5)

struct BurnDriver BurnDrvmd_mk5 = {
	"md_mk5", NULL, NULL, NULL, "1998",
	"MK 5 - Mortal Combat - SubZero (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk5RomInfo, md_mk5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MK 5 - Mortal Combat - SubZero (Unl) (Pirate)
static struct BurnRomInfo md_mk5aRomDesc[] = {
	{ "mk 5 - mortal combat - subzero (unl) (pirate).bin", 0x200000, 0x41203006, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk5a)
STD_ROM_FN(md_mk5a)

struct BurnDriver BurnDrvmd_mk5a = {
	"md_mk5a", "md_mk5", NULL, NULL, "1998",
	"MK 5 - Mortal Combat - SubZero (Unl) (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk5aRomInfo, md_mk5aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MLBPA Baseball (USA)
static struct BurnRomInfo md_mlbpaRomDesc[] = {
	{ "mlbpa baseball (usa).bin", 0x200000, 0x14a8064d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mlbpa)
STD_ROM_FN(md_mlbpa)

struct BurnDriver BurnDrvmd_mlbpa = {
	"md_mlbpa", NULL, NULL, NULL, "1992",
	"MLBPA Baseball (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mlbpaRomInfo, md_mlbpaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monopoly (USA)
static struct BurnRomInfo md_monopolyRomDesc[] = {
	{ "monopoly (usa).bin", 0x080000, 0xc10268da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_monopoly)
STD_ROM_FN(md_monopoly)

struct BurnDriver BurnDrvmd_monopoly = {
	"md_monopoly", NULL, NULL, NULL, "1992",
	"Monopoly (USA)\0", NULL, "Parker Brothers", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 8, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD, 0,
	MegadriveGetZipName, md_monopolyRomInfo, md_monopolyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monopoly (USA, Prototype)
static struct BurnRomInfo md_monopolypRomDesc[] = {
	{ "monopoly (usa) (beta).bin", 0x080000, 0xdfbcc3fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_monopolyp)
STD_ROM_FN(md_monopolyp)

struct BurnDriver BurnDrvmd_monopolyp = {
	"md_monopolyp", "md_monopoly", NULL, NULL, "1992",
	"Monopoly (USA, Prototype)\0", NULL, "Parker Brothers", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 8, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD, 0,
	MegadriveGetZipName, md_monopolypRomInfo, md_monopolypRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monster World IV (Japan)
static struct BurnRomInfo md_mworld4RomDesc[] = {
	{ "monster world iv (jpn).bin", 0x200000, 0x36a3aaa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mworld4)
STD_ROM_FN(md_mworld4)

struct BurnDriver BurnDrvmd_mworld4 = {
	"md_mworld4", NULL, NULL, NULL, "1994",
	"Monster World IV (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mworld4RomInfo, md_mworld4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monster World IV (Hack, English v2.2)
// Source : http://www.romhacking.net/translations/1276/
static struct BurnRomInfo md_mworld4engRomDesc[] = {
	{ "Monster World IV (J) [!] [T-Eng].bin", 0x200000, 0xc94a35bf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mworld4eng)
STD_ROM_FN(md_mworld4eng)

struct BurnDriver BurnDrvmd_mworld4eng = {
	"md_mworld4eng", "md_mworld4", NULL, NULL, "2008",
	"Monster World IV (Hack, English v2.2)\0", NULL, "Michele Di Somma", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mworld4engRomInfo, md_mworld4engRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monster World IV (USA, Europe) (English, Japanese) (Virtual Console)
static struct BurnRomInfo md_mworld4eng2RomDesc[] = {
	{ "Monster World IV (USA, Europe) (En,Ja) (Virtual Console).md", 0x200000, 0xaf050c46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mworld4eng2)
STD_ROM_FN(md_mworld4eng2)

struct BurnDriver BurnDrvmd_mworld4eng2 = {
	"md_mworld4eng2", "md_mworld4", NULL, NULL, "2012",
	"Monster World IV (USA, Europe) (English, Japanese) (Virtual Console)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mworld4eng2RomInfo, md_mworld4eng2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat (World, v1.1)
static struct BurnRomInfo md_mkRomDesc[] = {
	{ "mortal kombat (world) (v1.1).bin", 0x200000, 0x33f19ab6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk)
STD_ROM_FN(md_mk)

struct BurnDriver BurnDrvmd_mk = {
	"md_mk", NULL, NULL, NULL, "1993",
	"Mortal Kombat (World, v1.1)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mkRomInfo, md_mkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat (World)
static struct BurnRomInfo md_mkaRomDesc[] = {
	{ "s215_ver_1.00.bin", 0x200000, 0x1aa3a207, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mka)
STD_ROM_FN(md_mka)

struct BurnDriver BurnDrvmd_mka = {
	"md_mka", "md_mk", NULL, NULL, "1993",
	"Mortal Kombat (World)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mkaRomInfo, md_mkaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat II (World)
static struct BurnRomInfo md_mk2RomDesc[] = {
	{ "s376-u2.1+s382-u1.1.bin", 0x300000, 0xa9e013d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk2)
STD_ROM_FN(md_mk2)

struct BurnDriver BurnDrvmd_mk2 = {
	"md_mk2", NULL, NULL, NULL, "1994",
	"Mortal Kombat II (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk2RomInfo, md_mk2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat II (World) Unlimited Hack by Smoke
static struct BurnRomInfo md_mk2wuRomDesc[] = {
	{ "Mortal Kombat II Unlimited (V1.0) (Hack By Smoke).bin", 0x3f1f88, 0x53206165, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk2wu)
STD_ROM_FN(md_mk2wu)

struct BurnDriver BurnDrvmd_mk2wu = {
	"md_mk2wu", "md_mk2", NULL, NULL, "2011",
	"Mortal Kombat II (World) Unlimited (Hack, v1.0)\0", NULL, "Smoke", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk2wuRomInfo, md_mk2wuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat 3 (Euro)
static struct BurnRomInfo md_mk3RomDesc[] = {
	{ "mortal_kombat_3_pal.bin", 0x400000, 0xaf6de3e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk3)
STD_ROM_FN(md_mk3)

struct BurnDriver BurnDrvmd_mk3 = {
	"md_mk3", NULL, NULL, NULL, "1995",
	"Mortal Kombat 3 (Euro)\0", "Press A+C+Start for 4P mode.", "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk3RomInfo, md_mk3RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat 3 (USA)
static struct BurnRomInfo md_mk3uRomDesc[] = {
	{ "mortal kombat 3 (usa).bin", 0x400000, 0xdd638af6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk3u)
STD_ROM_FN(md_mk3u)

struct BurnDriver BurnDrvmd_mk3u = {
	"md_mk3u", "md_mk3", NULL, NULL, "1995",
	"Mortal Kombat 3 (USA)\0", "Press A+C+Start for 4P mode.", "Williams", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk3uRomInfo, md_mk3uRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mr. Nutz (Euro)
static struct BurnRomInfo md_mrnutzRomDesc[] = {
	{ "mr. nutz (euro).bin", 0x100000, 0x0786ea0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mrnutz)
STD_ROM_FN(md_mrnutz)

struct BurnDriver BurnDrvmd_mrnutz = {
	"md_mrnutz", NULL, NULL, NULL, "1994",
	"Mr. Nutz (Euro)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mrnutzRomInfo, md_mrnutzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mr. Nutz - Hoppin' Mad (Prototype)
static struct BurnRomInfo md_mrnutz2RomDesc[] = {
	{ "mr. nutz - hoppin' mad (proto).bin", 0x100000, 0x2bfcaa3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mrnutz2)
STD_ROM_FN(md_mrnutz2)

struct BurnDriver BurnDrvmd_mrnutz2 = {
	"md_mrnutz2", NULL, NULL, NULL, "1994",
	"Mr. Nutz - Hoppin' Mad (Prototype)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mrnutz2RomInfo, md_mrnutz2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ms. Pac-Man (Euro, USA)
static struct BurnRomInfo md_mspacmanRomDesc[] = {
	{ "ms. pac-man (euro, usa).bin", 0x020000, 0xaf041be6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mspacman)
STD_ROM_FN(md_mspacman)

struct BurnDriver BurnDrvmd_mspacman = {
	"md_mspacman", NULL, NULL, NULL, "1991",
	"Ms. Pac-Man (Euro, USA)\0", NULL, "Tengen ~ Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_MAZE, 0,
	MegadriveGetZipName, md_mspacmanRomInfo, md_mspacmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ms. Pac-Man (Pirate, Ripped from Golden 10 in 1) (Unl)
static struct BurnRomInfo md_mspacmanpirRomDesc[] = {
	{ "ms. pac-man (usa) (pirate).bin", 0x020000, 0x39b51b26, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mspacmanpir)
STD_ROM_FN(md_mspacmanpir)

struct BurnDriver BurnDrvmd_mspacmanpir = {
	"md_mspacmanpir", "md_mspacman", NULL, NULL, "199?",
	"Ms. Pac-Man (Pirate, Ripped from Golden 10 in 1) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_MAZE, 0,
	MegadriveGetZipName, md_mspacmanpirRomInfo, md_mspacmanpirRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Muhammad Ali Heavyweight Boxing (Euro)
static struct BurnRomInfo md_muhammadRomDesc[] = {
	{ "muhammad ali heavyweight boxing (euro).bin", 0x100000, 0x8ea4717b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_muhammad)
STD_ROM_FN(md_muhammad)

struct BurnDriver BurnDrvmd_muhammad = {
	"md_muhammad", NULL, NULL, NULL, "1992",
	"Muhammad Ali Heavyweight Boxing (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_muhammadRomInfo, md_muhammadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Muhammad Ali Heavyweight Boxing (USA)
static struct BurnRomInfo md_muhammaduRomDesc[] = {
	{ "muhammad ali heavyweight boxing (usa).bin", 0x100000, 0xb638b6a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_muhammadu)
STD_ROM_FN(md_muhammadu)

struct BurnDriver BurnDrvmd_muhammadu = {
	"md_muhammadu", "md_muhammad", NULL, NULL, "1992",
	"Muhammad Ali Heavyweight Boxing (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_muhammaduRomInfo, md_muhammaduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Muhammad Ali Heavyweight Boxing (USA, Prototype)
static struct BurnRomInfo md_muhammadupRomDesc[] = {
	{ "muhammad ali heavyweight boxing (usa) (beta).bin", 0x100000, 0x7b852653, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_muhammadup)
STD_ROM_FN(md_muhammadup)

struct BurnDriver BurnDrvmd_muhammadup = {
	"md_muhammadup", "md_muhammad", NULL, NULL, "1992",
	"Muhammad Ali Heavyweight Boxing (USA, Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_muhammadupRomInfo, md_muhammadupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MUSHA - Metallic Uniframe Super Hybrid Armor (USA)
static struct BurnRomInfo md_mushaRomDesc[] = {
	{ "musha - metallic uniframe super hybrid armor (usa).bin", 0x080000, 0x58a7f7b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_musha)
STD_ROM_FN(md_musha)

struct BurnDriver BurnDrvmd_musha = {
	"md_musha", NULL, NULL, NULL, "1990",
	"MUSHA - Metallic Uniframe Super Hybrid Armor (USA)\0", NULL, "Seismic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_mushaRomInfo, md_mushaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Musha Aleste - Full Metal Fighter Ellinor (Japan)
static struct BurnRomInfo md_mushajRomDesc[] = {
	{ "musha aleste - full metal fighter ellinor (jpn).bin", 0x080000, 0x8fde18ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mushaj)
STD_ROM_FN(md_mushaj)

struct BurnDriver BurnDrvmd_mushaj = {
	"md_mushaj", "md_musha", NULL, NULL, "1990",
	"Musha Aleste - Full Metal Fighter Ellinor (Japan)\0", NULL, "Toaplan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_mushajRomInfo, md_mushajRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mutant League Football (Japan)
static struct BurnRomInfo md_mlfootbjRomDesc[] = {
	{ "mutant league football (jpn).bin", 0x100000, 0x2a97e6af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mlfootbj)
STD_ROM_FN(md_mlfootbj)

struct BurnDriver BurnDrvmd_mlfootbj = {
	"md_mlfootbj", "md_mlfootb", NULL, NULL, "1993",
	"Mutant League Football (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mlfootbjRomInfo, md_mlfootbjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mutant League Hockey (Euro, USA)
static struct BurnRomInfo md_mlhockeyRomDesc[] = {
	{ "mutant league hockey (euro, usa).bin", 0x200000, 0x3529180f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mlhockey)
STD_ROM_FN(md_mlhockey)

struct BurnDriver BurnDrvmd_mlhockey = {
	"md_mlhockey", NULL, NULL, NULL, "1994",
	"Mutant League Hockey (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_FOURWAYPLAY, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mlhockeyRomInfo, md_mlhockeyRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mystic Defender (Euro, USA, Rev. A)
static struct BurnRomInfo md_mystdefRomDesc[] = {
	{ "mpr-12707a.bin", 0x080000, 0x50fd5d93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mystdef)
STD_ROM_FN(md_mystdef)

struct BurnDriver BurnDrvmd_mystdef = {
	"md_mystdef", NULL, NULL, NULL, "1989",
	"Mystic Defender (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mystdefRomInfo, md_mystdefRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mystic Defender (Euro, USA)
static struct BurnRomInfo md_mystdefaRomDesc[] = {
	{ "mpr-12707.bin", 0x080000, 0xf9ce1ab8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mystdefa)
STD_ROM_FN(md_mystdefa)

struct BurnDriver BurnDrvmd_mystdefa = {
	"md_mystdefa", "md_mystdef", NULL, NULL, "1989",
	"Mystic Defender (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mystdefaRomInfo, md_mystdefaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kujaku Ou 2 - Geneijou (Japan)
static struct BurnRomInfo md_kujaku2RomDesc[] = {
	{ "kujaku ou 2 - geneijou (jpn).bin", 0x060000, 0xaffd56bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kujaku2)
STD_ROM_FN(md_kujaku2)

struct BurnDriver BurnDrvmd_kujaku2 = {
	"md_kujaku2", "md_mystdef", NULL, NULL, "1989",
	"Kujaku Ou 2 - Geneijou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kujaku2RomInfo, md_kujaku2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// On Dal Jang Goon (Korea)
static struct BurnRomInfo md_ondalRomDesc[] = {
	{ "on dal jang goon (kor).bin", 0x080000, 0x67ccb1ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ondal)
STD_ROM_FN(md_ondal)

struct BurnDriver BurnDrvmd_ondal = {
	"md_ondal", "md_mystdef", NULL, NULL, "1990",
	"On Dal Jang Goon (Korea)\0", NULL, "Sega - Samsung", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ondalRomInfo, md_ondalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveJNTSCDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mystical Fighter (USA)
static struct BurnRomInfo md_mysticfRomDesc[] = {
	{ "mystical fighter (usa).bin", 0x080000, 0xb2f2a69b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mysticf)
STD_ROM_FN(md_mysticf)

struct BurnDriver BurnDrvmd_mysticf = {
	"md_mysticf", NULL, NULL, NULL, "1992",
	"Mystical Fighter (USA)\0", NULL, "Dreamworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mysticfRomInfo, md_mysticfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Maou Renjishi (Japan)
static struct BurnRomInfo md_maourenRomDesc[] = {
	{ "maou renjishi (jpn).bin", 0x080000, 0x24a7f28c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_maouren)
STD_ROM_FN(md_maouren)

struct BurnDriver BurnDrvmd_maouren = {
	"md_maouren", "md_mysticf", NULL, NULL, "1991",
	"Maou Renjishi (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_maourenRomInfo, md_maourenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fushigi no Umi no Nadia (Japan)
static struct BurnRomInfo md_nadiaRomDesc[] = {
	{ "namcot_mfn_mb838200-20.bin", 0x100000, 0x4762062a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nadia)
STD_ROM_FN(md_nadia)

struct BurnDriver BurnDrvmd_nadia = {
	"md_nadia", NULL, NULL, NULL, "1991",
	"Fushigi no Umi no Nadia (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_nadiaRomInfo, md_nadiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fushigi no Umi no Nadia (Hack, English v1.1)
// Source : http://www.romhacking.net/translations/1630/
static struct BurnRomInfo md_nadiaeRomDesc[] = {
	{ "fushigi no umi no nadia (english translation).md", 0x180000, 0x8dec9c35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nadiae)
STD_ROM_FN(md_nadiae)

struct BurnDriver BurnDrvmd_nadiae = {
	"md_nadiae", "md_nadia", NULL, NULL, "2022",
	"Fushigi no Umi no Nadia (Hack, English v1.1)\0", NULL, "KingMike's Translations", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_nadiaeRomInfo, md_nadiaeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nakajima Satoru Kanshuu F1 Grand Prix (Japan)
static struct BurnRomInfo md_nakaf1gpRomDesc[] = {
	{ "nakajima satoru kanshuu f1 grand prix (jpn).bin", 0x100000, 0x93be47cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nakaf1gp)
STD_ROM_FN(md_nakaf1gp)

struct BurnDriver BurnDrvmd_nakaf1gp = {
	"md_nakaf1gp", NULL, NULL, NULL, "1991",
	"Nakajima Satoru Kanshuu F1 Grand Prix (Japan)\0", NULL, "Varie", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_nakaf1gpRomInfo, md_nakaf1gpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nakajima Satoru Kanshuu F1 Hero MD (Japan)
static struct BurnRomInfo md_f1heromdRomDesc[] = {
	{ "nakajima satoru kanshuu f1 hero md (jpn).bin", 0x100000, 0x24f87987, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_f1heromd)
STD_ROM_FN(md_f1heromd)

struct BurnDriver BurnDrvmd_f1heromd = {
	"md_f1heromd", NULL, NULL, NULL, "1992",
	"Nakajima Satoru Kanshuu F1 Hero MD (Japan)\0", NULL, "Varie", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_f1heromdRomInfo, md_f1heromdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nakajima Satoru Kanshuu F1 Super License (Japan)
static struct BurnRomInfo md_nakaf1slRomDesc[] = {
	{ "nakajima satoru kanshuu f1 super license (jpn).bin", 0x100000, 0x8774bc79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nakaf1sl)
STD_ROM_FN(md_nakaf1sl)

struct BurnDriver BurnDrvmd_nakaf1sl = {
	"md_nakaf1sl", NULL, NULL, NULL, "1992",
	"Nakajima Satoru Kanshuu F1 Super License (Japan)\0", NULL, "Varie", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_nakaf1slRomInfo, md_nakaf1slRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action (USA)
static struct BurnRomInfo md_nbaactRomDesc[] = {
	{ "nba action (usa).bin", 0x200000, 0x99c348ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact)
STD_ROM_FN(md_nbaact)

struct BurnDriver BurnDrvmd_nbaact = {
	"md_nbaact", NULL, NULL, NULL, "1994",
	"NBA Action (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaactRomInfo, md_nbaactRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action (Prototype, 19940104)
static struct BurnRomInfo md_nbaactp3RomDesc[] = {
	{ "nba action (prototype - jan 04, 1994).bin", 0x200000, 0x2491df2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaactp3)
STD_ROM_FN(md_nbaactp3)

struct BurnDriver BurnDrvmd_nbaactp3 = {
	"md_nbaactp3", "md_nbaact", NULL, NULL, "1994",
	"NBA Action (Prototype, 19940104)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaactp3RomInfo, md_nbaactp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action (Prototype, 19940116)
static struct BurnRomInfo md_nbaactp2RomDesc[] = {
	{ "nba action (prototype - jan 16, 1994).bin", 0x200000, 0xfe43c79d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaactp2)
STD_ROM_FN(md_nbaactp2)

struct BurnDriver BurnDrvmd_nbaactp2 = {
	"md_nbaactp2", "md_nbaact", NULL, NULL, "1994",
	"NBA Action (Prototype, 19940116)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaactp2RomInfo, md_nbaactp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action (Prototype, 19940127, Broken - C08 missing)
static struct BurnRomInfo md_nbaactp1RomDesc[] = {
	{ "nba action (prototype - jan 27, 1994) (broken - c08 missing).bin", 0x200000, 0x176a4bc5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaactp1)
STD_ROM_FN(md_nbaactp1)

struct BurnDriver BurnDrvmd_nbaactp1 = {
	"md_nbaactp1", "md_nbaact", NULL, NULL, "1994",
	"NBA Action (Prototype, 19940127, Broken - C08 missing)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaactp1RomInfo, md_nbaactp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Euro, USA)
static struct BurnRomInfo md_nbaact95RomDesc[] = {
	{ "nba action '95 starring david robinson (euro, usa).bin", 0x200000, 0xaa7006d6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95)
STD_ROM_FN(md_nbaact95)

struct BurnDriver BurnDrvmd_nbaact95 = {
	"md_nbaact95", NULL, NULL, NULL, "1995",
	"NBA Action '95 (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95RomInfo, md_nbaact95RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941202-B)
static struct BurnRomInfo md_nbaact95p23RomDesc[] = {
	{ "nba action '95 (prototype - dec 02, 1994 - b).bin", 0x200000, 0x04bf6f6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p23)
STD_ROM_FN(md_nbaact95p23)

struct BurnDriver BurnDrvmd_nbaact95p23 = {
	"md_nbaact95p23", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941202-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p23RomInfo, md_nbaact95p23RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941209)
static struct BurnRomInfo md_nbaact95p22RomDesc[] = {
	{ "nba action '95 (prototype - dec 09, 1994).bin", 0x200000, 0x2b198487, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p22)
STD_ROM_FN(md_nbaact95p22)

struct BurnDriver BurnDrvmd_nbaact95p22 = {
	"md_nbaact95p22", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941209)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p22RomInfo, md_nbaact95p22RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941215)
static struct BurnRomInfo md_nbaact95p21RomDesc[] = {
	{ "nba action '95 (prototype - dec 15, 1994).bin", 0x200000, 0x10a3b46d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p21)
STD_ROM_FN(md_nbaact95p21)

struct BurnDriver BurnDrvmd_nbaact95p21 = {
	"md_nbaact95p21", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941215)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p21RomInfo, md_nbaact95p21RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941222-A)
static struct BurnRomInfo md_nbaact95p20RomDesc[] = {
	{ "nba action '95 (prototype - dec 22, 1994 - a).bin", 0x200000, 0xf92ba323, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p20)
STD_ROM_FN(md_nbaact95p20)

struct BurnDriver BurnDrvmd_nbaact95p20 = {
	"md_nbaact95p20", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941222-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p20RomInfo, md_nbaact95p20RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941224-A)
static struct BurnRomInfo md_nbaact95p19RomDesc[] = {
	{ "nba action '95 (prototype - dec 24, 1994 - a).bin", 0x200000, 0xddb04550, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p19)
STD_ROM_FN(md_nbaact95p19)

struct BurnDriver BurnDrvmd_nbaact95p19 = {
	"md_nbaact95p19", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941224-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p19RomInfo, md_nbaact95p19RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941229)
static struct BurnRomInfo md_nbaact95p18RomDesc[] = {
	{ "nba action '95 (prototype - dec 29, 1994).bin", 0x200000, 0xdcebe32a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p18)
STD_ROM_FN(md_nbaact95p18)

struct BurnDriver BurnDrvmd_nbaact95p18 = {
	"md_nbaact95p18", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941229)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p18RomInfo, md_nbaact95p18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941230)
static struct BurnRomInfo md_nbaact95p17RomDesc[] = {
	{ "nba action '95 (prototype - dec 30, 1994).bin", 0x200000, 0xd87956c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p17)
STD_ROM_FN(md_nbaact95p17)

struct BurnDriver BurnDrvmd_nbaact95p17 = {
	"md_nbaact95p17", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941230)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p17RomInfo, md_nbaact95p17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941231)
static struct BurnRomInfo md_nbaact95p16RomDesc[] = {
	{ "nba action '95 (prototype - dec 31, 1994).bin", 0x200000, 0x582a378f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p16)
STD_ROM_FN(md_nbaact95p16)

struct BurnDriver BurnDrvmd_nbaact95p16 = {
	"md_nbaact95p16", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941231)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p16RomInfo, md_nbaact95p16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950201, Alt)
static struct BurnRomInfo md_nbaact95p03RomDesc[] = {
	{ "nba action '95 (prototype - feb 01, 1995).bin", 0x200000, 0x2c02a79d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p03)
STD_ROM_FN(md_nbaact95p03)

struct BurnDriver BurnDrvmd_nbaact95p03 = {
	"md_nbaact95p03", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950201, Alt)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p03RomInfo, md_nbaact95p03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950201)
static struct BurnRomInfo md_nbaact95p02RomDesc[] = {
	{ "nba action '95 (prototype - feb 1, 1995).bin", 0x1ff49e, 0xc4a0a624, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p02)
STD_ROM_FN(md_nbaact95p02)

struct BurnDriver BurnDrvmd_nbaact95p02 = {
	"md_nbaact95p02", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950201)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p02RomInfo, md_nbaact95p02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950202)
static struct BurnRomInfo md_nbaact95p01RomDesc[] = {
	{ "nba action '95 (prototype - feb 2, 1995).bin", 0x1fe1f0, 0xa9167903, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p01)
STD_ROM_FN(md_nbaact95p01)

struct BurnDriver BurnDrvmd_nbaact95p01 = {
	"md_nbaact95p01", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950202)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p01RomInfo, md_nbaact95p01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950103)
static struct BurnRomInfo md_nbaact95p15RomDesc[] = {
	{ "nba action '95 (prototype - jan 03, 1995).bin", 0x200000, 0x374af160, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p15)
STD_ROM_FN(md_nbaact95p15)

struct BurnDriver BurnDrvmd_nbaact95p15 = {
	"md_nbaact95p15", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950103)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p15RomInfo, md_nbaact95p15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950108)
static struct BurnRomInfo md_nbaact95p14RomDesc[] = {
	{ "nba action '95 (prototype - jan 08, 1995).bin", 0x200000, 0x0a6b7b9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p14)
STD_ROM_FN(md_nbaact95p14)

struct BurnDriver BurnDrvmd_nbaact95p14 = {
	"md_nbaact95p14", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950108)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p14RomInfo, md_nbaact95p14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950112)
static struct BurnRomInfo md_nbaact95p13RomDesc[] = {
	{ "nba action '95 (prototype - jan 12, 1995).bin", 0x200000, 0xb47ff025, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p13)
STD_ROM_FN(md_nbaact95p13)

struct BurnDriver BurnDrvmd_nbaact95p13 = {
	"md_nbaact95p13", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950112)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p13RomInfo, md_nbaact95p13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950115-A)
static struct BurnRomInfo md_nbaact95p12RomDesc[] = {
	{ "nba action '95 (prototype - jan 15, 1995 - a).bin", 0x200000, 0x9c6a1f27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p12)
STD_ROM_FN(md_nbaact95p12)

struct BurnDriver BurnDrvmd_nbaact95p12 = {
	"md_nbaact95p12", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950115-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p12RomInfo, md_nbaact95p12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950121)
static struct BurnRomInfo md_nbaact95p11RomDesc[] = {
	{ "nba action '95 (prototype - jan 21, 1995).bin", 0x200000, 0xe337bdfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p11)
STD_ROM_FN(md_nbaact95p11)

struct BurnDriver BurnDrvmd_nbaact95p11 = {
	"md_nbaact95p11", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950121)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p11RomInfo, md_nbaact95p11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950122-B)
static struct BurnRomInfo md_nbaact95p10RomDesc[] = {
	{ "nba action '95 (prototype - jan 22, 1995 - b).bin", 0x200000, 0x7bd7ca47, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p10)
STD_ROM_FN(md_nbaact95p10)

struct BurnDriver BurnDrvmd_nbaact95p10 = {
	"md_nbaact95p10", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950122-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p10RomInfo, md_nbaact95p10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950124-B)
static struct BurnRomInfo md_nbaact95p09RomDesc[] = {
	{ "nba action '95 (prototype - jan 24, 1995 - b).bin", 0x200000, 0x15abcf41, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p09)
STD_ROM_FN(md_nbaact95p09)

struct BurnDriver BurnDrvmd_nbaact95p09 = {
	"md_nbaact95p09", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950124-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p09RomInfo, md_nbaact95p09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950127-A)
static struct BurnRomInfo md_nbaact95p08RomDesc[] = {
	{ "nba action '95 (prototype - jan 27, 1995 - a).bin", 0x1fe190, 0x79c7fb00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p08)
STD_ROM_FN(md_nbaact95p08)

struct BurnDriver BurnDrvmd_nbaact95p08 = {
	"md_nbaact95p08", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950127-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p08RomInfo, md_nbaact95p08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950127-B)
static struct BurnRomInfo md_nbaact95p07RomDesc[] = {
	{ "nba action '95 (prototype - jan 27, 1995 - b).bin", 0x1fe190, 0xef7f608b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p07)
STD_ROM_FN(md_nbaact95p07)

struct BurnDriver BurnDrvmd_nbaact95p07 = {
	"md_nbaact95p07", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950127-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p07RomInfo, md_nbaact95p07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950128-A)
static struct BurnRomInfo md_nbaact95p06RomDesc[] = {
	{ "nba action '95 (prototype - jan 28, 1995 - a).bin", 0x200000, 0x57c2c69c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p06)
STD_ROM_FN(md_nbaact95p06)

struct BurnDriver BurnDrvmd_nbaact95p06 = {
	"md_nbaact95p06", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950128-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p06RomInfo, md_nbaact95p06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950128)
static struct BurnRomInfo md_nbaact95p05RomDesc[] = {
	{ "nba action '95 (prototype - jan 28, 1995).bin", 0x1fe19e, 0x97d7075d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p05)
STD_ROM_FN(md_nbaact95p05)

struct BurnDriver BurnDrvmd_nbaact95p05 = {
	"md_nbaact95p05", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950128)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p05RomInfo, md_nbaact95p05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19950130)
static struct BurnRomInfo md_nbaact95p04RomDesc[] = {
	{ "nba action '95 (prototype - jan 30, 1995).bin", 0x200000, 0x2fac80b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p04)
STD_ROM_FN(md_nbaact95p04)

struct BurnDriver BurnDrvmd_nbaact95p04 = {
	"md_nbaact95p04", "md_nbaact95", NULL, NULL, "1995",
	"NBA Action '95 (Prototype, 19950130)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p04RomInfo, md_nbaact95p04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941118)
static struct BurnRomInfo md_nbaact95p25RomDesc[] = {
	{ "nba action '95 (prototype - nov 18, 1994).bin", 0x200000, 0x2d411e4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p25)
STD_ROM_FN(md_nbaact95p25)

struct BurnDriver BurnDrvmd_nbaact95p25 = {
	"md_nbaact95p25", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941118)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p25RomInfo, md_nbaact95p25RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Action '95 (Prototype, 19941123-A)
static struct BurnRomInfo md_nbaact95p24RomDesc[] = {
	{ "nba action '95 (prototype - nov 23, 1994 - a).bin", 0x200000, 0x4650cfcc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaact95p24)
STD_ROM_FN(md_nbaact95p24)

struct BurnDriver BurnDrvmd_nbaact95p24 = {
	"md_nbaact95p24", "md_nbaact95", NULL, NULL, "1994",
	"NBA Action '95 (Prototype, 19941123-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaact95p24RomInfo, md_nbaact95p24RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA All-Star Challenge (Euro, USA)
static struct BurnRomInfo md_nbaallstRomDesc[] = {
	{ "nba all-star challenge (euro, usa).bin", 0x100000, 0xc4674adf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaallst)
STD_ROM_FN(md_nbaallst)

struct BurnDriver BurnDrvmd_nbaallst = {
	"md_nbaallst", NULL, NULL, NULL, "1992",
	"NBA All-Star Challenge (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaallstRomInfo, md_nbaallstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Hang Time (Euro)
static struct BurnRomInfo md_nbahangRomDesc[] = {
	{ "nba hang time (euro).bin", 0x300000, 0xedb4d4aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbahang)
STD_ROM_FN(md_nbahang)

struct BurnDriver BurnDrvmd_nbahang = {
	"md_nbahang", NULL, NULL, NULL, "1996",
	"NBA Hang Time (Euro)\0", "Press P3 start for 2nd team", "Midway", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbahangRomInfo, md_nbahangRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Hang Time (USA)
static struct BurnRomInfo md_nbahanguRomDesc[] = {
	{ "nba hang time (usa).bin", 0x300000, 0x176b0338, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbahangu)
STD_ROM_FN(md_nbahangu)

struct BurnDriver BurnDrvmd_nbahangu = {
	"md_nbahangu", "md_nbahang", NULL, NULL, "1996",
	"NBA Hang Time (USA)\0", "Press P3 start for 2nd team", "Midway", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbahanguRomInfo, md_nbahanguRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Jam (Euro, USA, v1.1)
static struct BurnRomInfo md_nbajamRomDesc[] = {
	{ "nba jam (euro, usa) (v1.1).bin", 0x200000, 0xeb8360e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbajam)
STD_ROM_FN(md_nbajam)

struct BurnDriver BurnDrvmd_nbajam = {
	"md_nbajam", NULL, NULL, NULL, "1993",
	"NBA Jam (Euro, USA, v1.1)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbajamRomInfo, md_nbajamRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Jam (Euro, USA)
static struct BurnRomInfo md_nbajam1RomDesc[] = {
	{ "s285_ver_1.00.bin", 0x200000, 0x10fa248f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbajam1)
STD_ROM_FN(md_nbajam1)

struct BurnDriver BurnDrvmd_nbajam1 = {
	"md_nbajam1", "md_nbajam", NULL, NULL, "1993",
	"NBA Jam (Euro, USA)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbajam1RomInfo, md_nbajam1RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Jam (Japan)
static struct BurnRomInfo md_nbajamjRomDesc[] = {
	{ "nba jam (jpn).bin", 0x200000, 0xa6c6305a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbajamj)
STD_ROM_FN(md_nbajamj)

struct BurnDriver BurnDrvmd_nbajamj = {
	"md_nbajamj", "md_nbajam", NULL, NULL, "1994",
	"NBA Jam (Japan)\0", NULL, "Acclaim Japan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbajamjRomInfo, md_nbajamjRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Jam (Japan, Prototype)
static struct BurnRomInfo md_nbajamjpRomDesc[] = {
	{ "jamod0.ic1", 0x080000, 0x8506240d, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000  },
	{ "jamev0.ic2", 0x080000, 0x2e597f94, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001  },
	{ "jamod1.ic3", 0x080000, 0x762c4fac, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100000  },
	{ "jamev1.ic4", 0x080000, 0x8735b9f6, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_100001  },
};

STD_ROM_PICK(md_nbajamjp)
STD_ROM_FN(md_nbajamjp)

struct BurnDriver BurnDrvmd_nbajamjp = {
	"md_nbajamjp", "md_nbajam", NULL, NULL, "1994",
	"NBA Jam (Japan, Prototype)\0", NULL, "Acclaim Japan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbajamjpRomInfo, md_nbajamjpRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Jam Tournament Edition (World)
static struct BurnRomInfo md_nbajamteRomDesc[] = {
	{ "nba jam tournament edition (world).bin", 0x300000, 0xe9ffcb37, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbajamte)
STD_ROM_FN(md_nbajamte)

struct BurnDriver BurnDrvmd_nbajamte = {
	"md_nbajamte", NULL, NULL, NULL, "1995",
	"NBA Jam Tournament Edition (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbajamteRomInfo, md_nbajamteRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Jam Tournament Edition (World, 2002 Fix Release)
static struct BurnRomInfo md_nbajamtefRomDesc[] = {
	{ "nba jam tournament edition (world) (fixed).bin", 0x300000, 0x6e25ebf0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbajamtef)
STD_ROM_FN(md_nbajamtef)

struct BurnDriver BurnDrvmd_nbajamtef = {
	"md_nbajamtef", "md_nbajamte", NULL, NULL, "2002?",
	"NBA Jam Tournament Edition (World, 2002 Fix Release)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbajamtefRomInfo, md_nbajamtefRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Live 95 (Euro, USA)
static struct BurnRomInfo md_nbaliv95RomDesc[] = {
	{ "nba live 95 (euro, usa).bin", 0x200000, 0x66018abc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaliv95)
STD_ROM_FN(md_nbaliv95)

struct BurnDriver BurnDrvmd_nbaliv95 = {
	"md_nbaliv95", NULL, NULL, NULL, "1994",
	"NBA Live 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaliv95RomInfo, md_nbaliv95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Live 95 (Korea)
static struct BurnRomInfo md_nbaliv95kRomDesc[] = {
	{ "lh5370hc.bin", 0x200000, 0x779c1244, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaliv95k)
STD_ROM_FN(md_nbaliv95k)

struct BurnDriver BurnDrvmd_nbaliv95k = {
	"md_nbaliv95k", "md_nbaliv95", NULL, NULL, "1994",
	"NBA Live 95 (Korea)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaliv95kRomInfo, md_nbaliv95kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Live 96 (Euro, USA)
static struct BurnRomInfo md_nbaliv96RomDesc[] = {
	{ "nba live 96 (euro, usa).bin", 0x200000, 0x49de0062, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaliv96)
STD_ROM_FN(md_nbaliv96)

struct BurnDriver BurnDrvmd_nbaliv96 = {
	"md_nbaliv96", NULL, NULL, NULL, "1995",
	"NBA Live 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaliv96RomInfo, md_nbaliv96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Live 97 (Euro, USA)
static struct BurnRomInfo md_nbaliv97RomDesc[] = {
	{ "nba live 97 (euro, usa).bin", 0x200000, 0x7024843a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaliv97)
STD_ROM_FN(md_nbaliv97)

struct BurnDriver BurnDrvmd_nbaliv97 = {
	"md_nbaliv97", NULL, NULL, NULL, "1996",
	"NBA Live 97 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaliv97RomInfo, md_nbaliv97RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Live 98 (USA)
static struct BurnRomInfo md_nbaliv98RomDesc[] = {
	{ "nba live 98 (usa).bin", 0x200000, 0x23473a8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbaliv98)
STD_ROM_FN(md_nbaliv98)

struct BurnDriver BurnDrvmd_nbaliv98 = {
	"md_nbaliv98", NULL, NULL, NULL, "1997",
	"NBA Live 98 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbaliv98RomInfo, md_nbaliv98RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Playoffs - Bulls Vs Blazers (Japan)
static struct BurnRomInfo md_bullvsbljRomDesc[] = {
	{ "nba playoffs - bulls vs blazers (jpn).bin", 0x100000, 0xeae8c000, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bullvsblj)
STD_ROM_FN(md_bullvsblj)

struct BurnDriver BurnDrvmd_bullvsblj = {
	"md_bullvsblj", "md_bullvsbl", NULL, NULL, "1993",
	"NBA Playoffs - Bulls Vs Blazers (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bullvsbljRomInfo, md_bullvsbljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Playoffs - Bulls Vs Blazers (Japan, Alt)
static struct BurnRomInfo md_bullvsblj1RomDesc[] = {
	{ "nba playoffs - bulls vs blazers (jpn) (alt).bin", 0x100000, 0x4565ce1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bullvsblj1)
STD_ROM_FN(md_bullvsblj1)

struct BurnDriver BurnDrvmd_bullvsblj1 = {
	"md_bullvsblj1", "md_bullvsbl", NULL, NULL, "1993",
	"NBA Playoffs - Bulls Vs Blazers (Japan, Alt)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bullvsblj1RomInfo, md_bullvsblj1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Pro Basketball - Bulls Vs Lakers (Japan)
static struct BurnRomInfo md_bullvslajRomDesc[] = {
	{ "nba pro basketball - bulls vs lakers (jpn).bin", 0x100000, 0x4416ce39, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bullvslaj)
STD_ROM_FN(md_bullvslaj)

struct BurnDriver BurnDrvmd_bullvslaj = {
	"md_bullvslaj", "md_bullvsla", NULL, NULL, "1993",
	"NBA Pro Basketball - Bulls Vs Lakers (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_bullvslajRomInfo, md_bullvslajRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Pro Basketball '94 (Japan)
static struct BurnRomInfo md_nbapro94RomDesc[] = {
	{ "nba pro basketball '94 (jpn).bin", 0x200000, 0xeea19bce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbapro94)
STD_ROM_FN(md_nbapro94)

struct BurnDriver BurnDrvmd_nbapro94 = {
	"md_nbapro94", NULL, NULL, NULL, "1994",
	"NBA Pro Basketball '94 (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbapro94RomInfo, md_nbapro94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Showdown '94 (Euro, USA)
static struct BurnRomInfo md_nbashowRomDesc[] = {
	{ "nba showdown '94 (euro, usa).bin", 0x200000, 0x160b7090, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbashow)
STD_ROM_FN(md_nbashow)

struct BurnDriver BurnDrvmd_nbashow = {
	"md_nbashow", NULL, NULL, NULL, "1994",
	"NBA Showdown '94 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbashowRomInfo, md_nbashowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA Showdown '94 (USA, Prototype, Hacked)
static struct BurnRomInfo md_nbashowpRomDesc[] = {
	{ "nba showdown '94 (usa) (beta).bin", 0x200000, 0x6643a308, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nbashowp)
STD_ROM_FN(md_nbashowp)

struct BurnDriver BurnDrvmd_nbashowp = {
	"md_nbashowp", "md_nbashow", NULL, NULL, "1994",
	"NBA Showdown '94 (USA, Prototype, Hacked)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nbashowpRomInfo, md_nbashowpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NCAA Final Four Basketball (USA)
static struct BurnRomInfo md_ncaabaskRomDesc[] = {
	{ "ncaa final four basketball (usa).bin", 0x180000, 0xed0c1303, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ncaabask)
STD_ROM_FN(md_ncaabask)

struct BurnDriver BurnDrvmd_ncaabask = {
	"md_ncaabask", NULL, NULL, NULL, "1994",
	"NCAA Final Four Basketball (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ncaabaskRomInfo, md_ncaabaskRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NCAA Football (USA)
static struct BurnRomInfo md_ncaafootRomDesc[] = {
	{ "ncaa football (usa).bin", 0x100000, 0x081012f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ncaafoot)
STD_ROM_FN(md_ncaafoot)

struct BurnDriver BurnDrvmd_ncaafoot = {
	"md_ncaafoot", NULL, NULL, NULL, "1994",
	"NCAA Football (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ncaafootRomInfo, md_ncaafootRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nekketsu Koukou Dodgeball Bu - Soccer Hen MD (Japan)
static struct BurnRomInfo md_neksoccrRomDesc[] = {
	{ "nekketsu koukou dodgeball bu - soccer hen md (jpn).bin", 0x080000, 0xf49c3a86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_neksoccr)
STD_ROM_FN(md_neksoccr)

struct BurnDriver BurnDrvmd_neksoccr = {
	"md_neksoccr", NULL, NULL, NULL, "1992",
	"Nekketsu Koukou Dodgeball Bu - Soccer Hen MD (Japan)\0", NULL, "Palsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_neksoccrRomInfo, md_neksoccrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New 3D Golf Simulation - Devil's Course (Japan)
static struct BurnRomInfo md_n3dgdeviRomDesc[] = {
	{ "new 3d golf simulation devil's course (jpn).bin", 0x180000, 0xbd090c67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_n3dgdevi)
STD_ROM_FN(md_n3dgdevi)

struct BurnDriver BurnDrvmd_n3dgdevi = {
	"md_n3dgdevi", NULL, NULL, NULL, "1994",
	"New 3D Golf Simulation - Devil's Course (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_n3dgdeviRomInfo, md_n3dgdeviRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New 3D Golf Simulation - Harukanaru Augusta (Japan)
static struct BurnRomInfo md_n3dgauguRomDesc[] = {
	{ "mpr-16076.bin", 0x180000, 0xd2a9bf92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_n3dgaugu)
STD_ROM_FN(md_n3dgaugu)

struct BurnDriver BurnDrvmd_n3dgaugu = {
	"md_n3dgaugu", NULL, NULL, NULL, "1993",
	"New 3D Golf Simulation - Harukanaru Augusta (Japan)\0", NULL, "T&E Soft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_n3dgauguRomInfo, md_n3dgauguRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New 3D Golf Simulation - Waialae no Kiseki (Japan)
static struct BurnRomInfo md_n3dgwaiaRomDesc[] = {
	{ "new 3d golf simulation waialae no kiseki (jpn).bin", 0x180000, 0xcbe2c1f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_n3dgwaia)
STD_ROM_FN(md_n3dgwaia)

struct BurnDriver BurnDrvmd_n3dgwaia = {
	"md_n3dgwaia", NULL, NULL, NULL, "1994",
	"New 3D Golf Simulation - Waialae no Kiseki (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_n3dgwaiaRomInfo, md_n3dgwaiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Euro, USA)
static struct BurnRomInfo md_nfl95RomDesc[] = {
	{ "nfl '95 (euro, usa).bin", 0x200000, 0xb58e4a81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95)
STD_ROM_FN(md_nfl95)

struct BurnDriver BurnDrvmd_nfl95 = {
	"md_nfl95", NULL, NULL, NULL, "1994",
	"NFL '95 (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95RomInfo, md_nfl95RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940801)
static struct BurnRomInfo md_nfl95p21RomDesc[] = {
	{ "nfl '95 (prototype - aug 01, 1994).bin", 0x200000, 0x5a57ea4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p21)
STD_ROM_FN(md_nfl95p21)

struct BurnDriver BurnDrvmd_nfl95p21 = {
	"md_nfl95p21", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940801)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p21RomInfo, md_nfl95p21RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940805)
static struct BurnRomInfo md_nfl95p20RomDesc[] = {
	{ "nfl '95 (prototype - aug 05, 1994).bin", 0x200000, 0x88d51773, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p20)
STD_ROM_FN(md_nfl95p20)

struct BurnDriver BurnDrvmd_nfl95p20 = {
	"md_nfl95p20", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940805)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p20RomInfo, md_nfl95p20RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940810)
static struct BurnRomInfo md_nfl95p19RomDesc[] = {
	{ "nfl '95 (prototype - aug 10, 1994).bin", 0x200000, 0xa3c5710b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p19)
STD_ROM_FN(md_nfl95p19)

struct BurnDriver BurnDrvmd_nfl95p19 = {
	"md_nfl95p19", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940810)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p19RomInfo, md_nfl95p19RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940812)
static struct BurnRomInfo md_nfl95p18RomDesc[] = {
	{ "nfl '95 (prototype - aug 12, 1994).bin", 0x200000, 0x3d23633b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p18)
STD_ROM_FN(md_nfl95p18)

struct BurnDriver BurnDrvmd_nfl95p18 = {
	"md_nfl95p18", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940812)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p18RomInfo, md_nfl95p18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940812, Alt)
static struct BurnRomInfo md_nfl95p17RomDesc[] = {
	{ "nfl '95 (prototype - aug 12, 1994 - b).bin", 0x200000, 0xcc86a259, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p17)
STD_ROM_FN(md_nfl95p17)

struct BurnDriver BurnDrvmd_nfl95p17 = {
	"md_nfl95p17", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940812, Alt)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p17RomInfo, md_nfl95p17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940817-B)
static struct BurnRomInfo md_nfl95p16RomDesc[] = {
	{ "nfl '95 (prototype - aug 17, 1994 - b).bin", 0x200000, 0xa6015c29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p16)
STD_ROM_FN(md_nfl95p16)

struct BurnDriver BurnDrvmd_nfl95p16 = {
	"md_nfl95p16", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940817-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p16RomInfo, md_nfl95p16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940817)
static struct BurnRomInfo md_nfl95p15RomDesc[] = {
	{ "nfl '95 (prototype - aug 17, 1994).bin", 0x200000, 0x655966c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p15)
STD_ROM_FN(md_nfl95p15)

struct BurnDriver BurnDrvmd_nfl95p15 = {
	"md_nfl95p15", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940817)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p15RomInfo, md_nfl95p15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940822)
static struct BurnRomInfo md_nfl95p14RomDesc[] = {
	{ "nfl '95 (prototype - aug 22, 1994).bin", 0x200000, 0xb01434e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p14)
STD_ROM_FN(md_nfl95p14)

struct BurnDriver BurnDrvmd_nfl95p14 = {
	"md_nfl95p14", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940822)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p14RomInfo, md_nfl95p14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940830)
static struct BurnRomInfo md_nfl95p13RomDesc[] = {
	{ "nfl '95 (prototype - aug 30, 1994).bin", 0x200000, 0xd0e0a436, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p13)
STD_ROM_FN(md_nfl95p13)

struct BurnDriver BurnDrvmd_nfl95p13 = {
	"md_nfl95p13", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940830)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p13RomInfo, md_nfl95p13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940831)
static struct BurnRomInfo md_nfl95p12RomDesc[] = {
	{ "nfl '95 (prototype - aug 31, 1994).bin", 0x200000, 0xc360521e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p12)
STD_ROM_FN(md_nfl95p12)

struct BurnDriver BurnDrvmd_nfl95p12 = {
	"md_nfl95p12", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940831)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p12RomInfo, md_nfl95p12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940901)
static struct BurnRomInfo md_nfl95p11RomDesc[] = {
	{ "nfl '95 (prototype - sep 01, 1994).bin", 0x200000, 0x9240fcaa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p11)
STD_ROM_FN(md_nfl95p11)

struct BurnDriver BurnDrvmd_nfl95p11 = {
	"md_nfl95p11", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940901)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p11RomInfo, md_nfl95p11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940902)
static struct BurnRomInfo md_nfl95p10RomDesc[] = {
	{ "nfl '95 (prototype - sep 02, 1994).bin", 0x200000, 0xff049a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p10)
STD_ROM_FN(md_nfl95p10)

struct BurnDriver BurnDrvmd_nfl95p10 = {
	"md_nfl95p10", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940902)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p10RomInfo, md_nfl95p10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940904)
static struct BurnRomInfo md_nfl95p09RomDesc[] = {
	{ "nfl '95 (prototype - sep 04, 1994).bin", 0x200000, 0x60604d40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p09)
STD_ROM_FN(md_nfl95p09)

struct BurnDriver BurnDrvmd_nfl95p09 = {
	"md_nfl95p09", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940904)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p09RomInfo, md_nfl95p09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940905-B)
static struct BurnRomInfo md_nfl95p08RomDesc[] = {
	{ "nfl '95 (prototype - sep 05, 1994 - b).bin", 0x200000, 0x123985a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p08)
STD_ROM_FN(md_nfl95p08)

struct BurnDriver BurnDrvmd_nfl95p08 = {
	"md_nfl95p08", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940905-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p08RomInfo, md_nfl95p08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940905)
static struct BurnRomInfo md_nfl95p07RomDesc[] = {
	{ "nfl '95 (prototype - sep 05, 1994).bin", 0x200000, 0xdbdf61ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p07)
STD_ROM_FN(md_nfl95p07)

struct BurnDriver BurnDrvmd_nfl95p07 = {
	"md_nfl95p07", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940905)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p07RomInfo, md_nfl95p07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940906)
static struct BurnRomInfo md_nfl95p06RomDesc[] = {
	{ "nfl '95 (prototype - sep 06, 1994).bin", 0x200000, 0x624b8699, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p06)
STD_ROM_FN(md_nfl95p06)

struct BurnDriver BurnDrvmd_nfl95p06 = {
	"md_nfl95p06", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940906)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p06RomInfo, md_nfl95p06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940907)
static struct BurnRomInfo md_nfl95p05RomDesc[] = {
	{ "nfl '95 (prototype - sep 07, 1994).bin", 0x200000, 0xae8aa4be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p05)
STD_ROM_FN(md_nfl95p05)

struct BurnDriver BurnDrvmd_nfl95p05 = {
	"md_nfl95p05", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940907)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p05RomInfo, md_nfl95p05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940908)
static struct BurnRomInfo md_nfl95p04RomDesc[] = {
	{ "nfl '95 (prototype - sep 08, 1994).bin", 0x200000, 0x22c5e289, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p04)
STD_ROM_FN(md_nfl95p04)

struct BurnDriver BurnDrvmd_nfl95p04 = {
	"md_nfl95p04", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940908)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p04RomInfo, md_nfl95p04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940909)
static struct BurnRomInfo md_nfl95p03RomDesc[] = {
	{ "nfl '95 (prototype - sep 09, 1994).bin", 0x200000, 0x55df1066, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p03)
STD_ROM_FN(md_nfl95p03)

struct BurnDriver BurnDrvmd_nfl95p03 = {
	"md_nfl95p03", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940909)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p03RomInfo, md_nfl95p03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940911-B)
static struct BurnRomInfo md_nfl95p02RomDesc[] = {
	{ "nfl '95 (prototype - sep 11, 1994 - b).bin", 0x200000, 0x111ac6a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p02)
STD_ROM_FN(md_nfl95p02)

struct BurnDriver BurnDrvmd_nfl95p02 = {
	"md_nfl95p02", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940911-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p02RomInfo, md_nfl95p02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL '95 (Prototype, 19940911)
static struct BurnRomInfo md_nfl95p01RomDesc[] = {
	{ "nfl '95 (prototype - sep 11, 1994).bin", 0x200000, 0x21614c4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl95p01)
STD_ROM_FN(md_nfl95p01)

struct BurnDriver BurnDrvmd_nfl95p01 = {
	"md_nfl95p01", "md_nfl95", NULL, NULL, "1994",
	"NFL '95 (Prototype, 19940911)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl95p01RomInfo, md_nfl95p01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL 98 (USA)
static struct BurnRomInfo md_nfl98RomDesc[] = {
	{ "nfl 98 (usa).bin", 0x200000, 0xf73ec54c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl98)
STD_ROM_FN(md_nfl98)

struct BurnDriver BurnDrvmd_nfl98 = {
	"md_nfl98", NULL, NULL, NULL, "1997",
	"NFL 98 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl98RomInfo, md_nfl98RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL Football '94 Starring Joe Montana (USA)
static struct BurnRomInfo md_nfl94RomDesc[] = {
	{ "nfl football '94 starring joe montana (usa).bin", 0x200000, 0x0d486ed5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl94)
STD_ROM_FN(md_nfl94)

struct BurnDriver BurnDrvmd_nfl94 = {
	"md_nfl94", NULL, NULL, NULL, "1993",
	"NFL Football '94 Starring Joe Montana (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl94RomInfo, md_nfl94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL Football '94 Starring Joe Montana (Japan)
static struct BurnRomInfo md_nfl94jRomDesc[] = {
	{ "nfl football '94 (jpn).bin", 0x200000, 0xe490dc4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfl94j)
STD_ROM_FN(md_nfl94j)

struct BurnDriver BurnDrvmd_nfl94j = {
	"md_nfl94j", "md_nfl94", NULL, NULL, "1994",
	"NFL Football '94 Starring Joe Montana (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nfl94jRomInfo, md_nfl94jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL Quarterback Club (World)
static struct BurnRomInfo md_nflqbRomDesc[] = {
	{ "nfl quarterback club (world).bin", 0x300000, 0x94542eaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nflqb)
STD_ROM_FN(md_nflqb)

struct BurnDriver BurnDrvmd_nflqb = {
	"md_nflqb", NULL, NULL, NULL, "1994",
	"NFL Quarterback Club (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NBA_JAM_TE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nflqbRomInfo, md_nflqbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL Quarterback Club 96 (Euro, USA)
static struct BurnRomInfo md_nflqb96RomDesc[] = {
	{ "nfl quarterback club 96 (euro, usa).bin", 0x400000, 0xd5a37cab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nflqb96)
STD_ROM_FN(md_nflqb96)

struct BurnDriver BurnDrvmd_nflqb96 = {
	"md_nflqb96", NULL, NULL, NULL, "1996",
	"NFL Quarterback Club 96 (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_NFL_QB_96, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nflqb96RomInfo, md_nflqb96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NFL Sports Talk Football '93 Starring Joe Montana (Euro, USA)
static struct BurnRomInfo md_nflsportRomDesc[] = {
	{ "mpr-15005+mpr-15006.bin", 0x180000, 0xce0b1fe1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nflsport)
STD_ROM_FN(md_nflsport)

struct BurnDriver BurnDrvmd_nflsport = {
	"md_nflsport", NULL, NULL, NULL, "1992",
	"NFL Sports Talk Football '93 Starring Joe Montana (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nflsportRomInfo, md_nflsportRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHK Taiga Drama - Taiheiki (Japan)
static struct BurnRomInfo md_nhktaidrRomDesc[] = {
	{ "nhk taiga drama - taiheiki (jpn).bin", 0x100000, 0x09fbb30e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhktaidr)
STD_ROM_FN(md_nhktaidr)

struct BurnDriver BurnDrvmd_nhktaidr = {
	"md_nhktaidr", NULL, NULL, NULL, "1991",
	"NHK Taiga Drama - Taiheiki (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nhktaidrRomInfo, md_nhktaidrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL '94 (Euro, USA)
static struct BurnRomInfo md_nhl94RomDesc[] = {
	{ "nhl94_hl9402", 1048576, 0xacecd225, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl94)
STD_ROM_FN(md_nhl94)

struct BurnDriver BurnDrvmd_nhl94 = {
	"md_nhl94", NULL, NULL, NULL, "1993",
	"NHL '94 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl94RomInfo, md_nhl94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL '94: 2023 Edition (Hack, v4.4)
// https://www.romhacking.net/reviews/9871
static struct BurnRomInfo md_nhl2023RomDesc[] = {
	{ "NHL '94 - 2023 Edition v4.4 (2023)(Adam Catalyst).bin", 2097152, 0x29d2dbcf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl2023)
STD_ROM_FN(md_nhl2023)

struct BurnDriver BurnDrvmd_nhl2023 = {
	"md_nhl2023", "md_nhl94", NULL, NULL, "2023",
	"NHL '94: 2023 Edition (Hack, v4.4)\0", NULL, "Adam Catalyst", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl2023RomInfo, md_nhl2023RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL '94: 2024 Edition (Hack, v3.0)
// https://www.romhacking.net/hacks/8267/
static struct BurnRomInfo md_nhl2024RomDesc[] = {
	{ "NHL '94 - 2024 Edition v3.0 (2024)(Adam Catalyst).bin", 2097152, 0xe27ea125, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl2024)
STD_ROM_FN(md_nhl2024)

struct BurnDriver BurnDrvmd_nhl2024 = {
	"md_nhl2024", "md_nhl94", NULL, NULL, "2024",
	"NHL '94: 2024 Edition (Hack, v3.0)\0", NULL, "Adam Catalyst", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl2024RomInfo, md_nhl2024RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL 95 (Euro, USA)
static struct BurnRomInfo md_nhl95RomDesc[] = {
	{ "nhl 95 (euro, usa).bin", 0x200000, 0xe8ee917e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl95)
STD_ROM_FN(md_nhl95)

struct BurnDriver BurnDrvmd_nhl95 = {
	"md_nhl95", NULL, NULL, NULL, "1995",
	"NHL 95 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl95RomInfo, md_nhl95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL 96 (Euro, USA)
static struct BurnRomInfo md_nhl96RomDesc[] = {
	{ "nhl 96 (euro, usa).bin", 0x200000, 0x8135702c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl96)
STD_ROM_FN(md_nhl96)

struct BurnDriver BurnDrvmd_nhl96 = {
	"md_nhl96", NULL, NULL, NULL, "1995",
	"NHL 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl96RomInfo, md_nhl96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL 97 (Euro, USA)
static struct BurnRomInfo md_nhl97RomDesc[] = {
	{ "nhl 97 (euro, usa).bin", 0x200000, 0xf067c103, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl97)
STD_ROM_FN(md_nhl97)

struct BurnDriver BurnDrvmd_nhl97 = {
	"md_nhl97", NULL, NULL, NULL, "1996",
	"NHL 97 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl97RomInfo, md_nhl97RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL 98 (USA)
static struct BurnRomInfo md_nhl98RomDesc[] = {
	{ "nhl 98 (usa).bin", 0x200000, 0x7b64cd98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhl98)
STD_ROM_FN(md_nhl98)

struct BurnDriver BurnDrvmd_nhl98 = {
	"md_nhl98", NULL, NULL, NULL, "1997",
	"NHL 98 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhl98RomInfo, md_nhl98RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (USA)
static struct BurnRomInfo md_nhlasRomDesc[] = {
	{ "nhl all-star hockey '95 (usa).bin", 0x200000, 0xe6c0218b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlas)
STD_ROM_FN(md_nhlas)

struct BurnDriver BurnDrvmd_nhlas = {
	"md_nhlas", NULL, NULL, NULL, "1995",
	"NHL All-Star Hockey '95 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasRomInfo, md_nhlasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941201-B)
static struct BurnRomInfo md_nhlasp03RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - dec 01, 1994 - b).bin", 0x1ffffa, 0xc209d720, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp03)
STD_ROM_FN(md_nhlasp03)

struct BurnDriver BurnDrvmd_nhlasp03 = {
	"md_nhlasp03", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941201-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp03RomInfo, md_nhlasp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941201)
static struct BurnRomInfo md_nhlasp02RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - dec 01, 1994).bin", 0x1ffffa, 0x112e4cb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp02)
STD_ROM_FN(md_nhlasp02)

struct BurnDriver BurnDrvmd_nhlasp02 = {
	"md_nhlasp02", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941201)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp02RomInfo, md_nhlasp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941202)
static struct BurnRomInfo md_nhlasp01RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - dec 02, 1994).bin", 0x1ffffa, 0x01d6a6c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp01)
STD_ROM_FN(md_nhlasp01)

struct BurnDriver BurnDrvmd_nhlasp01 = {
	"md_nhlasp01", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941202)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp01RomInfo, md_nhlasp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941107)
static struct BurnRomInfo md_nhlasp12RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 07, 1994).bin", 0x200000, 0xe8f2c88f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp12)
STD_ROM_FN(md_nhlasp12)

struct BurnDriver BurnDrvmd_nhlasp12 = {
	"md_nhlasp12", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941107)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp12RomInfo, md_nhlasp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941109)
static struct BurnRomInfo md_nhlasp11RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 09, 1994).bin", 0x1ffff9, 0x82624073, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp11)
STD_ROM_FN(md_nhlasp11)

struct BurnDriver BurnDrvmd_nhlasp11 = {
	"md_nhlasp11", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941109)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp11RomInfo, md_nhlasp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941119)
static struct BurnRomInfo md_nhlasp10RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 19, 1994).bin", 0x200000, 0xcd0f588a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp10)
STD_ROM_FN(md_nhlasp10)

struct BurnDriver BurnDrvmd_nhlasp10 = {
	"md_nhlasp10", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941119)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp10RomInfo, md_nhlasp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941121)
static struct BurnRomInfo md_nhlasp09RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 21, 1994).bin", 0x200000, 0xcfe4059d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp09)
STD_ROM_FN(md_nhlasp09)

struct BurnDriver BurnDrvmd_nhlasp09 = {
	"md_nhlasp09", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941121)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp09RomInfo, md_nhlasp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941122)
static struct BurnRomInfo md_nhlasp08RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 22, 1994).bin", 0x1ffffa, 0x81d30fe6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp08)
STD_ROM_FN(md_nhlasp08)

struct BurnDriver BurnDrvmd_nhlasp08 = {
	"md_nhlasp08", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941122)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp08RomInfo, md_nhlasp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941123)
static struct BurnRomInfo md_nhlasp07RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 23, 1994).bin", 0x1ffffa, 0x88d4fc38, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp07)
STD_ROM_FN(md_nhlasp07)

struct BurnDriver BurnDrvmd_nhlasp07 = {
	"md_nhlasp07", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941123)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp07RomInfo, md_nhlasp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941127)
static struct BurnRomInfo md_nhlasp06RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 27, 1994).bin", 0x1ffffa, 0x658ffe52, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp06)
STD_ROM_FN(md_nhlasp06)

struct BurnDriver BurnDrvmd_nhlasp06 = {
	"md_nhlasp06", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941127)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp06RomInfo, md_nhlasp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941128)
static struct BurnRomInfo md_nhlasp05RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 28, 1994).bin", 0x1ffffa, 0x51ad0056, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp05)
STD_ROM_FN(md_nhlasp05)

struct BurnDriver BurnDrvmd_nhlasp05 = {
	"md_nhlasp05", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941128)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp05RomInfo, md_nhlasp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941129)
static struct BurnRomInfo md_nhlasp04RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - nov 29, 1994).bin", 0x1ffffa, 0xa060a60b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp04)
STD_ROM_FN(md_nhlasp04)

struct BurnDriver BurnDrvmd_nhlasp04 = {
	"md_nhlasp04", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941129)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp04RomInfo, md_nhlasp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941001)
static struct BurnRomInfo md_nhlasp14RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - oct 01, 1994).bin", 0x1ffff9, 0xb1c0fbb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp14)
STD_ROM_FN(md_nhlasp14)

struct BurnDriver BurnDrvmd_nhlasp14 = {
	"md_nhlasp14", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941001)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp14RomInfo, md_nhlasp14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19941021)
static struct BurnRomInfo md_nhlasp13RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - oct 21, 1994).bin", 0x200000, 0x17eb2238, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp13)
STD_ROM_FN(md_nhlasp13)

struct BurnDriver BurnDrvmd_nhlasp13 = {
	"md_nhlasp13", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19941021)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp13RomInfo, md_nhlasp13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19940914)
static struct BurnRomInfo md_nhlasp16RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - sep 14, 1994).bin", 0x200000, 0x5d4bc48d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp16)
STD_ROM_FN(md_nhlasp16)

struct BurnDriver BurnDrvmd_nhlasp16 = {
	"md_nhlasp16", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19940914)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp16RomInfo, md_nhlasp16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHL All-Star Hockey '95 (Prototype, 19940929)
static struct BurnRomInfo md_nhlasp15RomDesc[] = {
	{ "nhl all-star hockey '95 (prototype - sep 29, 1994).bin", 0x1ffff9, 0x96bae44f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlasp15)
STD_ROM_FN(md_nhlasp15)

struct BurnDriver BurnDrvmd_nhlasp15 = {
	"md_nhlasp15", "md_nhlas", NULL, NULL, "1994",
	"NHL All-Star Hockey '95 (Prototype, 19940929)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlasp15RomInfo, md_nhlasp15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHLPA Hockey 93 (Euro, USA, v1.1)
static struct BurnRomInfo md_nhlpa93RomDesc[] = {
	{ "h9306.bin", 0x080000, 0xf361d0bf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlpa93)
STD_ROM_FN(md_nhlpa93)

struct BurnDriver BurnDrvmd_nhlpa93 = {
	"md_nhlpa93", NULL, NULL, NULL, "1992",
	"NHLPA Hockey 93 (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlpa93RomInfo, md_nhlpa93RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHLPA Hockey 93 (Euro, USA)
static struct BurnRomInfo md_nhlpa93aRomDesc[] = {
	{ "nhlpa hockey 93 (euro, usa).bin", 0x080000, 0xcbbf4262, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlpa93a)
STD_ROM_FN(md_nhlpa93a)

struct BurnDriver BurnDrvmd_nhlpa93a = {
	"md_nhlpa93a", "md_nhlpa93", NULL, NULL, "1992",
	"NHLPA Hockey 93 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlpa93aRomInfo, md_nhlpa93aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nigel Mansell's World Championship Racing (Euro)
static struct BurnRomInfo md_mansellRomDesc[] = {
	{ "nigel mansell's world championship racing (euro).bin", 0x100000, 0x3fe3d63b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mansell)
STD_ROM_FN(md_mansell)

struct BurnDriver BurnDrvmd_mansell = {
	"md_mansell", NULL, NULL, NULL, "1993",
	"Nigel Mansell's World Championship Racing (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_mansellRomInfo, md_mansellRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nigel Mansell's World Championship Racing (USA)
static struct BurnRomInfo md_manselluRomDesc[] = {
	{ "nigel mansell's world championship racing (usa).bin", 0x100000, 0x6bc57b2c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mansellu)
STD_ROM_FN(md_mansellu)

struct BurnDriver BurnDrvmd_mansellu = {
	"md_mansellu", "md_mansell", NULL, NULL, "1993",
	"Nigel Mansell's World Championship Racing (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_manselluRomInfo, md_manselluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nightmare Circus (Brazil)
static struct BurnRomInfo md_ncircRomDesc[] = {
	{ "nightmare circus (bra).bin", 0x200000, 0x06da3217, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ncirc)
STD_ROM_FN(md_ncirc)

struct BurnDriver BurnDrvmd_ncirc = {
	"md_ncirc", NULL, NULL, NULL, "1995",
	"Nightmare Circus (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ncircRomInfo, md_ncircRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nightmare Circus (Brazil, Alt)
static struct BurnRomInfo md_ncirc1RomDesc[] = {
	{ "nightmare circus (bra) (alt).bin", 0x200000, 0x31de5a94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ncirc1)
STD_ROM_FN(md_ncirc1)

struct BurnDriver BurnDrvmd_ncirc1 = {
	"md_ncirc1", "md_ncirc", NULL, NULL, "1995",
	"Nightmare Circus (Brazil, Alt)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ncirc1RomInfo, md_ncirc1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nightmare Circus (Prototype)
static struct BurnRomInfo md_ncircpRomDesc[] = {
	{ "nightmare circus (prototype).bin", 0x400000, 0xee96f1b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ncircp)
STD_ROM_FN(md_ncircp)

struct BurnDriver BurnDrvmd_ncircp = {
	"md_ncircp", "md_ncirc", NULL, NULL, "199?",
	"Nightmare Circus (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ncircpRomInfo, md_ncircpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nikkan Sports Pro Yakyuu Van (Japan)
static struct BurnRomInfo md_nikkanRomDesc[] = {
	{ "nikkan sports pro yakyuu van (jpn).bin", 0x080000, 0xc3655a59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nikkan)
STD_ROM_FN(md_nikkan)

struct BurnDriver BurnDrvmd_nikkan = {
	"md_nikkan", NULL, NULL, NULL, "1991",
	"Nikkan Sports Pro Yakyuu Van (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nikkanRomInfo, md_nikkanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ninja Burai Densetsu (Japan)
static struct BurnRomInfo md_ninjabRomDesc[] = {
	{ "ninja burai densetsu (jpn).bin", 0x100000, 0xa8d828a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ninjab)
STD_ROM_FN(md_ninjab)

struct BurnDriver BurnDrvmd_ninjab = {
	"md_ninjab", NULL, NULL, NULL, "1991",
	"Ninja Burai Densetsu (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_ninjabRomInfo, md_ninjabRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ninja Gaiden (Japan, Prototype)
static struct BurnRomInfo md_ngaidenRomDesc[] = {
	{ "ninja gaiden (jpn) (prototype) (bad dump).bin", 0x100000, 0x0d7f74ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ngaiden)
STD_ROM_FN(md_ngaiden)

struct BurnDriver BurnDrvmd_ngaiden = {
	"md_ngaiden", NULL, NULL, NULL, "1992",
	"Ninja Gaiden (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ngaidenRomInfo, md_ngaidenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// No Escape (USA)
static struct BurnRomInfo md_noescapeRomDesc[] = {
	{ "no escape (usa).bin", 0x200000, 0x44ee5f20, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_noescape)
STD_ROM_FN(md_noescape)

struct BurnDriver BurnDrvmd_noescape = {
	"md_noescape", NULL, NULL, NULL, "1994",
	"No Escape (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_noescapeRomInfo, md_noescapeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nobunaga no Yabou - Bushou Fuuunroku (Japan)
static struct BurnRomInfo md_nobubufuRomDesc[] = {
	{ "mpr-14456.bin", 0x100000, 0x30bf8637, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nobubufu)
STD_ROM_FN(md_nobubufu)

struct BurnDriver BurnDrvmd_nobubufu = {
	"md_nobubufu", NULL, NULL, NULL, "1991",
	"Nobunaga no Yabou - Bushou Fuuunroku (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 8, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nobubufuRomInfo, md_nobubufuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nobunaga no Yabou - Haouden (Japan)
static struct BurnRomInfo md_nobuhaoRomDesc[] = {
	{ "nobunaga no yabou - haouden (jpn).bin", 0x200000, 0x96c01fc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nobuhao)
STD_ROM_FN(md_nobuhao)

struct BurnDriver BurnDrvmd_nobuhao = {
	"md_nobuhao", NULL, NULL, NULL, "1994",
	"Nobunaga no Yabou - Haouden (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 8, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nobuhaoRomInfo, md_nobuhaoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nobunaga's Ambition (USA)
static struct BurnRomInfo md_nobuambRomDesc[] = {
	{ "nobunaga's ambition (usa).bin", 0x080000, 0xb9bc07bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nobuamb)
STD_ROM_FN(md_nobuamb)

struct BurnDriver BurnDrvmd_nobuamb = {
	"md_nobuamb", NULL, NULL, NULL, "1993",
	"Nobunaga's Ambition (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 8, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nobuambRomInfo, md_nobuambRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nobunaga no Yabou - Zenkokuban (Japan)
static struct BurnRomInfo md_nobuzenkRomDesc[] = {
	{ "nobunaga no yabou - zenkoku ban (jpn).bin", 0x080000, 0x1381b313, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nobuzenk)
STD_ROM_FN(md_nobuzenk)

struct BurnDriver BurnDrvmd_nobuzenk = {
	"md_nobuzenk", "md_nobuamb", NULL, NULL, "1993",
	"Nobunaga no Yabou - Zenkokuban (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 8, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nobuzenkRomInfo, md_nobuzenkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Normy's Beach Babe-O-Rama (Euro, USA)
static struct BurnRomInfo md_normyRomDesc[] = {
	{ "normy's beach babe-o-rama (euro, usa).bin", 0x100000, 0xb56a8220, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_normy)
STD_ROM_FN(md_normy)

struct BurnDriver BurnDrvmd_normy = {
	"md_normy", NULL, NULL, NULL, "1994",
	"Normy's Beach Babe-O-Rama (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_normyRomInfo, md_normyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Olympic Gold (Euro)
static struct BurnRomInfo md_olympgldRomDesc[] = {
	{ "mpr-14753.bin", 0x080000, 0x924e57d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_olympgld)
STD_ROM_FN(md_olympgld)

struct BurnDriver BurnDrvmd_olympgld = {
	"md_olympgld", NULL, NULL, NULL, "1992",
	"Olympic Gold (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_olympgldRomInfo, md_olympgldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Olympic Gold (Japan, Korea)
static struct BurnRomInfo md_olympgldjRomDesc[] = {
	{ "olympic gold (jpn, kor).bin", 0x080000, 0xe9c925b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_olympgldj)
STD_ROM_FN(md_olympgldj)

struct BurnDriver BurnDrvmd_olympgldj = {
	"md_olympgldj", "md_olympgld", NULL, NULL, "1992",
	"Olympic Gold (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_olympgldjRomInfo, md_olympgldjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Olympic Gold (USA)
static struct BurnRomInfo md_olympglduRomDesc[] = {
	{ "olympic gold (usa).bin", 0x080000, 0x339594b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_olympgldu)
STD_ROM_FN(md_olympgldu)

struct BurnDriver BurnDrvmd_olympgldu = {
	"md_olympgldu", "md_olympgld", NULL, NULL, "1992",
	"Olympic Gold (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_olympglduRomInfo, md_olympglduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Olympic Gold (USA, Alt)
static struct BurnRomInfo md_olympgldu1RomDesc[] = {
	{ "olympic gold (usa) (alt).bin", 0x080000, 0xaf639376, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_olympgldu1)
STD_ROM_FN(md_olympgldu1)

struct BurnDriver BurnDrvmd_olympgldu1 = {
	"md_olympgldu1", "md_olympgld", NULL, NULL, "1992",
	"Olympic Gold (USA, Alt)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_olympgldu1RomInfo, md_olympgldu1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Olympic Summer Games (Euro, USA)
static struct BurnRomInfo md_olympsumRomDesc[] = {
	{ "olympic summer games (euro, usa).bin", 0x200000, 0x9e470fb9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_olympsum)
STD_ROM_FN(md_olympsum)

struct BurnDriver BurnDrvmd_olympsum = {
	"md_olympsum", NULL, NULL, NULL, "1996",
	"Olympic Summer Games (Euro, USA)\0", NULL, "Black Pearl", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_olympsumRomInfo, md_olympsumRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Onslaught (Euro, USA)
static struct BurnRomInfo md_onslauRomDesc[] = {
	{ "onslaught (euro, usa).bin", 0x080000, 0x9f19d6df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_onslau)
STD_ROM_FN(md_onslau)

struct BurnDriver BurnDrvmd_onslau = {
	"md_onslau", NULL, NULL, NULL, "1991",
	"Onslaught (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_onslauRomInfo, md_onslauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Euro)
static struct BurnRomInfo md_oozeRomDesc[] = {
	{ "ooze, the (euro).bin", 0x100000, 0xe16b102c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ooze)
STD_ROM_FN(md_ooze)

struct BurnDriver BurnDrvmd_ooze = {
	"md_ooze", NULL, NULL, NULL, "1995",
	"Ooze, The (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozeRomInfo, md_oozeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Japan, USA)
static struct BurnRomInfo md_oozejuRomDesc[] = {
	{ "ooze, the (usa, jpn).bin", 0x100000, 0x1c0dd42f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozeju)
STD_ROM_FN(md_oozeju)

struct BurnDriver BurnDrvmd_oozeju = {
	"md_oozeju", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Japan, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozejuRomInfo, md_oozejuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Euro, Prototype, 19950728)
static struct BurnRomInfo md_oozep01RomDesc[] = {
	{ "ooze, the (euro) (prototype - jul 28, 1995).bin", 0x100000, 0x7cf868e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep01)
STD_ROM_FN(md_oozep01)

struct BurnDriver BurnDrvmd_oozep01 = {
	"md_oozep01", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Euro, Prototype, 19950728)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep01RomInfo, md_oozep01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Prototype, 19950615)
static struct BurnRomInfo md_oozep07RomDesc[] = {
	{ "ooze, the (prototype - jun 15, 1995).bin", 0x0e35ce, 0x921106fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep07)
STD_ROM_FN(md_oozep07)

struct BurnDriver BurnDrvmd_oozep07 = {
	"md_oozep07", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Prototype, 19950615)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep07RomInfo, md_oozep07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Prototype, 19950619)
static struct BurnRomInfo md_oozep06RomDesc[] = {
	{ "ooze, the (prototype - jun 19, 1995).bin", 0x100000, 0xfa39281d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep06)
STD_ROM_FN(md_oozep06)

struct BurnDriver BurnDrvmd_oozep06 = {
	"md_oozep06", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Prototype, 19950619)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep06RomInfo, md_oozep06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Prototype, 19950629-B)
static struct BurnRomInfo md_oozep03RomDesc[] = {
	{ "ooze, the (prototype - jun 29, 1995 - b).bin", 0x0ee456, 0xca93e93b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep03)
STD_ROM_FN(md_oozep03)

struct BurnDriver BurnDrvmd_oozep03 = {
	"md_oozep03", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Prototype, 19950629-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep03RomInfo, md_oozep03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Prototype, 19950629)
static struct BurnRomInfo md_oozep02RomDesc[] = {
	{ "ooze, the (prototype - jun 29, 1995).bin", 0x100000, 0x1776763b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep02)
STD_ROM_FN(md_oozep02)

struct BurnDriver BurnDrvmd_oozep02 = {
	"md_oozep02", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Prototype, 19950629)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep02RomInfo, md_oozep02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Prototype 104, 19950622)
static struct BurnRomInfo md_oozep05RomDesc[] = {
	{ "ooze, the (prototype 104 - jun 22, 1995).bin", 0x0ebea8, 0xce1f139f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep05)
STD_ROM_FN(md_oozep05)

struct BurnDriver BurnDrvmd_oozep05 = {
	"md_oozep05", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Prototype 104, 19950622)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep05RomInfo, md_oozep05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ooze, The (Prototype 112, 19950626)
static struct BurnRomInfo md_oozep04RomDesc[] = {
	{ "ooze, the (prototype 112 - jun 26, 1995).bin", 0x0ec570, 0x70419442, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oozep04)
STD_ROM_FN(md_oozep04)

struct BurnDriver BurnDrvmd_oozep04 = {
	"md_oozep04", "md_ooze", NULL, NULL, "1995",
	"Ooze, The (Prototype 112, 19950626)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_oozep04RomInfo, md_oozep04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Operation Europe - Path to Victory 1939-45 (USA)
static struct BurnRomInfo md_opeuropeRomDesc[] = {
	{ "operation europe - path to victory 1939-45 (usa).bin", 0x100000, 0xe7cba1d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_opeurope)
STD_ROM_FN(md_opeurope)

struct BurnDriver BurnDrvmd_opeurope = {
	"md_opeurope", NULL, NULL, NULL, "1994",
	"Operation Europe - Path to Victory 1939-45 (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_opeuropeRomInfo, md_opeuropeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Europa Sensen (Japan)
static struct BurnRomInfo md_eurosensRomDesc[] = {
	{ "europa sensen (jpn).bin", 0x100000, 0xb0416c60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eurosens)
STD_ROM_FN(md_eurosens)

struct BurnDriver BurnDrvmd_eurosens = {
	"md_eurosens", "md_opeurope", NULL, NULL, "1993",
	"Europa Sensen (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_eurosensRomInfo, md_eurosensRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Osomatsu-kun Hachamecha Gekijou (Japan)
static struct BurnRomInfo md_osomatsuRomDesc[] = {
	{ "osomatsu-kun hachamecha gekijou (jpn).bin", 0x040000, 0x2453350c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_osomatsu)
STD_ROM_FN(md_osomatsu)

struct BurnDriver BurnDrvmd_osomatsu = {
	"md_osomatsu", NULL, NULL, NULL, "1988",
	"Osomatsu-kun Hachamecha Gekijou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_osomatsuRomInfo, md_osomatsuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ottifants, The (Euro)
static struct BurnRomInfo md_ottifantRomDesc[] = {
	{ "ottifants, the (euro).bin", 0x100000, 0x41ac8003, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ottifant)
STD_ROM_FN(md_ottifant)

struct BurnDriver BurnDrvmd_ottifant = {
	"md_ottifant", NULL, NULL, NULL, "1993",
	"Ottifants, The (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ottifantRomInfo, md_ottifantRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ottifants, The (Euro, German , Prototype)
static struct BurnRomInfo md_ottifantgRomDesc[] = {
	{ "ottifants, the (germany) (beta).bin", 0x100000, 0xc6e3dd23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ottifantg)
STD_ROM_FN(md_ottifantg)

struct BurnDriver BurnDrvmd_ottifantg = {
	"md_ottifantg", "md_ottifant", NULL, NULL, "1993",
	"Ottifants, The (Euro, German, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ottifantgRomInfo, md_ottifantgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Outlander (Euro)
static struct BurnRomInfo md_outlandrRomDesc[] = {
	{ "outlander (euro).bin", 0x100000, 0xfe6f2350, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outlandr)
STD_ROM_FN(md_outlandr)

struct BurnDriver BurnDrvmd_outlandr = {
	"md_outlandr", NULL, NULL, NULL, "1992",
	"Outlander (Euro)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_RACING, 0,
	MegadriveGetZipName, md_outlandrRomInfo, md_outlandrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Outlander (USA)
static struct BurnRomInfo md_outlandruRomDesc[] = {
	{ "outlander (usa).bin", 0x100000, 0xc5ba7bbf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outlandru)
STD_ROM_FN(md_outlandru)

struct BurnDriver BurnDrvmd_outlandru = {
	"md_outlandru", "md_outlandr", NULL, NULL, "1992",
	"Outlander (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_RACING, 0,
	MegadriveGetZipName, md_outlandruRomInfo, md_outlandruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun (Euro, USA)
static struct BurnRomInfo md_outrunRomDesc[] = {
	{ "outrun (euro, usa).bin", 0x100000, 0xfdd9a8d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outrun)
STD_ROM_FN(md_outrun)

struct BurnDriver BurnDrvmd_outrun = {
	"md_outrun", NULL, NULL, NULL, "1991",
	"OutRun (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outrunRomInfo, md_outrunRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun (Japan)
static struct BurnRomInfo md_outrunjRomDesc[] = {
	{ "outrun (jpn).bin", 0x100000, 0xee7d9f4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outrunj)
STD_ROM_FN(md_outrunj)

struct BurnDriver BurnDrvmd_outrunj = {
	"md_outrunj", "md_outrun", NULL, NULL, "1991",
	"OutRun (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outrunjRomInfo, md_outrunjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun 2019 (Euro)
static struct BurnRomInfo md_outr2019RomDesc[] = {
	{ "mpr-15482.bin", 0x100000, 0x5cb3536a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outr2019)
STD_ROM_FN(md_outr2019)

struct BurnDriver BurnDrvmd_outr2019 = {
	"md_outr2019", NULL, NULL, NULL, "1993",
	"OutRun 2019 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outr2019RomInfo, md_outr2019RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun 2019 (Japan)
static struct BurnRomInfo md_outr2019jRomDesc[] = {
	{ "outrun 2019 (jpn).bin", 0x100000, 0x0eac7440, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outr2019j)
STD_ROM_FN(md_outr2019j)

struct BurnDriver BurnDrvmd_outr2019j = {
	"md_outr2019j", "md_outr2019", NULL, NULL, "1993",
	"OutRun 2019 (Japan)\0", NULL, "Sims", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outr2019jRomInfo, md_outr2019jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun 2019 (USA)
static struct BurnRomInfo md_outr2019uRomDesc[] = {
	{ "outrun 2019 (usa).bin", 0x100000, 0xe32e17e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outr2019u)
STD_ROM_FN(md_outr2019u)

struct BurnDriver BurnDrvmd_outr2019u = {
	"md_outr2019u", "md_outr2019", NULL, NULL, "1993",
	"OutRun 2019 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outr2019uRomInfo, md_outr2019uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun 2019 (USA, Prototype)
static struct BurnRomInfo md_outr2019upRomDesc[] = {
	{ "outrun 2019 (usa) (beta).bin", 0x100000, 0xd2ecddfa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outr2019up)
STD_ROM_FN(md_outr2019up)

struct BurnDriver BurnDrvmd_outr2019up = {
	"md_outr2019up", "md_outr2019", NULL, NULL, "1993",
	"OutRun 2019 (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outr2019upRomInfo, md_outr2019upRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Junker's High (Japan, Prototype)
static struct BurnRomInfo md_junkerRomDesc[] = {
	{ "junker's high (jpn) (beta) (bad dump).bin", 0x100000, 0x23534949, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_junker)
STD_ROM_FN(md_junker)

struct BurnDriver BurnDrvmd_junker = {
	"md_junker", "md_outr2019", NULL, NULL, "1992",
	"Junker's High (Japan, Prototype)\0", NULL, "Sims Co.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RACING, 0,
	MegadriveGetZipName, md_junkerRomInfo, md_junkerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRunners (USA)
static struct BurnRomInfo md_orunnersRomDesc[] = {
	{ "outrunners (usa).bin", 0x200000, 0xede636b9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_orunners)
STD_ROM_FN(md_orunners)

struct BurnDriver BurnDrvmd_orunners = {
	"md_orunners", NULL, NULL, NULL, "1994",
	"OutRunners (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_orunnersRomInfo, md_orunnersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRunners (Japan)
static struct BurnRomInfo md_orunnersjRomDesc[] = {
	{ "outrunners (jpn).bin", 0x200000, 0xe164a09f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_orunnersj)
STD_ROM_FN(md_orunnersj)

struct BurnDriver BurnDrvmd_orunnersj = {
	"md_orunnersj", "md_orunners", NULL, NULL, "1994",
	"OutRunners (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_orunnersjRomInfo, md_orunnersjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pac-Attack (USA)
static struct BurnRomInfo md_pacattakRomDesc[] = {
	{ "pac-attack (usa).bin", 0x040000, 0x5df382f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pacattak)
STD_ROM_FN(md_pacattak)

struct BurnDriver BurnDrvmd_pacattak = {
	"md_pacattak", "md_pacpanic", NULL, NULL, "1993",
	"Pac-Attack (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_pacattakRomInfo, md_pacattakRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pac-Man 2 - The New Adventures (USA)
static struct BurnRomInfo md_pacman2RomDesc[] = {
	{ "pac-man 2 - the new adventures (usa).bin", 0x200000, 0xfe7a7ed1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pacman2)
STD_ROM_FN(md_pacman2)

struct BurnDriver BurnDrvmd_pacman2 = {
	"md_pacman2", NULL, NULL, NULL, "1994",
	"Pac-Man 2 - The New Adventures (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_pacman2RomInfo, md_pacman2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pac-Mania (Euro, USA)
static struct BurnRomInfo md_pacmaniaRomDesc[] = {
	{ "mpr-14392.bin", 0x040000, 0x74bba09b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pacmania)
STD_ROM_FN(md_pacmania)

struct BurnDriver BurnDrvmd_pacmania = {
	"md_pacmania", NULL, NULL, NULL, "1991",
	"Pac-Mania (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_pacmaniaRomInfo, md_pacmaniaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pac-Panic (Euro)
static struct BurnRomInfo md_pacpanicRomDesc[] = {
	{ "pac-panic (euro).bin", 0x040000, 0x3c427882, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pacpanic)
STD_ROM_FN(md_pacpanic)

struct BurnDriver BurnDrvmd_pacpanic = {
	"md_pacpanic", NULL, NULL, NULL, "1993",
	"Pac-Panic (Euro)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_pacpanicRomInfo, md_pacpanicRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pachinko Kuunyan (Japan)
static struct BurnRomInfo md_pachinkoRomDesc[] = {
	{ "pachinko kuunyan (jpn).bin", 0x100000, 0x9d137e7f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pachinko)
STD_ROM_FN(md_pachinko)

struct BurnDriver BurnDrvmd_pachinko = {
	"md_pachinko", NULL, NULL, NULL, "1992",
	"Pachinko Kuunyan (Japan)\0", NULL, "Soft Vision International", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CASINO | GBF_ADV, 0,
	MegadriveGetZipName, md_pachinkoRomInfo, md_pachinkoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// P.T.O. - Pacific Theater of Operations (USA)
static struct BurnRomInfo md_ptoRomDesc[] = {
	{ "pacific theater of operations (usa).bin", 0x100000, 0xd9d4c6e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pto)
STD_ROM_FN(md_pto)

struct BurnDriver BurnDrvmd_pto = {
	"md_pto", NULL, NULL, NULL, "1993",
	"P.T.O. - Pacific Theater of Operations (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_ptoRomInfo, md_ptoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teitoku no Ketsudan (Japan)
static struct BurnRomInfo md_teiketsuRomDesc[] = {
	{ "teitoku no ketsudan (jpn).bin", 0x100000, 0x9b08e4e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_teiketsu)
STD_ROM_FN(md_teiketsu)

struct BurnDriver BurnDrvmd_teiketsu = {
	"md_teiketsu", "md_pto", NULL, NULL, "1992",
	"Teitoku no Ketsudan (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_teiketsuRomInfo, md_teiketsuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Paddle Fighter (Japan, SegaNet)
static struct BurnRomInfo md_paddleRomDesc[] = {
	{ "paddle fighter (jpn) (sn).bin", 0x040000, 0x3d8147e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paddle)
STD_ROM_FN(md_paddle)

struct BurnDriver BurnDrvmd_paddle = {
	"md_paddle", NULL, NULL, NULL, "1991",
	"Paddle Fighter (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BALLPADDLE, 0,
	MegadriveGetZipName, md_paddleRomInfo, md_paddleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Paddle Fighter (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_paddlegnkRomDesc[] = {
	{ "paddle fighter (jpn) (gnk).bin", 0x040000, 0xebef05a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paddlegnk)
STD_ROM_FN(md_paddlegnk)

struct BurnDriver BurnDrvmd_paddlegnk = {
	"md_paddlegnk", "md_paddle", NULL, NULL, "1991",
	"Paddle Fighter (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BALLPADDLE, 0,
	MegadriveGetZipName, md_paddlegnkRomInfo, md_paddlegnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pagemaster, The (Euro)
static struct BurnRomInfo md_pagemstrRomDesc[] = {
	{ "pagemaster, the (euro).bin", 0x200000, 0x79a180e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pagemstr)
STD_ROM_FN(md_pagemstr)

struct BurnDriver BurnDrvmd_pagemstr = {
	"md_pagemstr", NULL, NULL, NULL, "1994",
	"Pagemaster, The (Euro)\0", NULL, "Fox Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pagemstrRomInfo, md_pagemstrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pagemaster, The (USA)
static struct BurnRomInfo md_pagemstruRomDesc[] = {
	{ "pagemaster, the (usa).bin", 0x200000, 0x75a96d4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pagemstru)
STD_ROM_FN(md_pagemstru)

struct BurnDriver BurnDrvmd_pagemstru = {
	"md_pagemstru", "md_pagemstr", NULL, NULL, "1994",
	"Pagemaster, The (USA)\0", NULL, "Fox Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pagemstruRomInfo, md_pagemstruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pagemaster, The (USA, Prototype)
static struct BurnRomInfo md_pagemstrupRomDesc[] = {
	{ "pagemaster, the (usa) (beta).bin", 0x200000, 0x29895e3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pagemstrup)
STD_ROM_FN(md_pagemstrup)

struct BurnDriver BurnDrvmd_pagemstrup = {
	"md_pagemstrup", "md_pagemstr", NULL, NULL, "1994",
	"Pagemaster, The (USA, Prototype)\0", NULL, "Fox Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pagemstrupRomInfo, md_pagemstrupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Panorama Cotton (Japan)
static struct BurnRomInfo md_pcottonRomDesc[] = {
	{ "panorama cotton (jpn).bin", 0x280000, 0x9e57d92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pcotton)
STD_ROM_FN(md_pcotton)

struct BurnDriver BurnDrvmd_pcotton = {
	"md_pcotton", NULL, NULL, NULL, "1994",
	"Panorama Cotton (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_pcottonRomInfo, md_pcottonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Paperboy (Euro, USA)
static struct BurnRomInfo md_paperboyRomDesc[] = {
	{ "paperboy (euro, usa).bin", 0x080000, 0x0a44819b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paperboy)
STD_ROM_FN(md_paperboy)

struct BurnDriver BurnDrvmd_paperboy = {
	"md_paperboy", NULL, NULL, NULL, "1991",
	"Paperboy (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_paperboyRomInfo, md_paperboyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Paperboy (Japan)
static struct BurnRomInfo md_paperboyjRomDesc[] = {
	{ "mpr-14774.bin", 0x080000, 0xe14250ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paperboyj)
STD_ROM_FN(md_paperboyj)

struct BurnDriver BurnDrvmd_paperboyj = {
	"md_paperboyj", "md_paperboy", NULL, NULL, "1992",
	"Paperboy (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_paperboyjRomInfo, md_paperboyjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Party Quiz Mega Q (Japan)
static struct BurnRomInfo md_partyqRomDesc[] = {
	{ "party quiz mega q (jpn).bin", 0x100000, 0x9d4b447a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_partyq)
STD_ROM_FN(md_partyq)

struct BurnDriver BurnDrvmd_partyq = {
	"md_partyq", NULL, NULL, NULL, "1993",
	"Party Quiz Mega Q (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 5, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_QUIZ, 0,
	MegadriveGetZipName, md_partyqRomInfo, md_partyqRomName, NULL, NULL, NULL, NULL, Megadrive5pInputInfo, Megadrive5pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pebble Beach Golf Links (Euro)
static struct BurnRomInfo md_pebbleRomDesc[] = {
	{ "pebble beach golf links (euro).bin", 0x200000, 0x6cfc7297, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pebble)
STD_ROM_FN(md_pebble)

struct BurnDriver BurnDrvmd_pebble = {
	"md_pebble", NULL, NULL, NULL, "1993",
	"Pebble Beach Golf Links (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pebbleRomInfo, md_pebbleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pebble Beach Golf Links (USA)
static struct BurnRomInfo md_pebbleuRomDesc[] = {
	{ "pebble beach golf links (usa).bin", 0x200000, 0x95823c43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pebbleu)
STD_ROM_FN(md_pebbleu)

struct BurnDriver BurnDrvmd_pebbleu = {
	"md_pebbleu", "md_pebble", NULL, NULL, "1993",
	"Pebble Beach Golf Links (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pebbleuRomInfo, md_pebbleuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New 3D Golf Simulation - Pebble Beach no Hatou (Japan)
static struct BurnRomInfo md_n3dgpebbRomDesc[] = {
	{ "new 3d golf simulation pebble beach no hatou (jpn).bin", 0x180000, 0x96ed2e5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_n3dgpebb)
STD_ROM_FN(md_n3dgpebb)

struct BurnDriver BurnDrvmd_n3dgpebb = {
	"md_n3dgpebb", "md_pebble", NULL, NULL, "1993",
	"New 3D Golf Simulation - Pebble Beach no Hatou (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_n3dgpebbRomInfo, md_n3dgpebbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pelé's World Tournament Soccer (Euro, USA)
static struct BurnRomInfo md_pele2RomDesc[] = {
	{ "pele ii - world tournament soccer (euro, usa).bin", 0x200000, 0x05a486e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pele2)
STD_ROM_FN(md_pele2)

struct BurnDriver BurnDrvmd_pele2 = {
	"md_pele2", NULL, NULL, NULL, "1994",
	"Pele's World Tournament Soccer (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	L"Pel\u00e9's World Tournament Soccer (Euro, USA)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_pele2RomInfo, md_pele2RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pelé! (Euro, USA)
static struct BurnRomInfo md_peleRomDesc[] = {
	{ "pele! (euro, usa).bin", 0x100000, 0x5a8abe51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pele)
STD_ROM_FN(md_pele)

struct BurnDriver BurnDrvmd_pele = {
	"md_pele", NULL, NULL, NULL, "1993",
	"Pele! (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	L"Pel\u00e9! (Euro, USA)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_peleRomInfo, md_peleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pepenga Pengo (Japan)
static struct BurnRomInfo md_ppengoRomDesc[] = {
	{ "pepenga pengo (jpn).bin", 0x100000, 0xd1e2324b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppengo)
STD_ROM_FN(md_ppengo)

struct BurnDriver BurnDrvmd_ppengo = {
	"md_ppengo", NULL, NULL, NULL, "1995",
	"Pepenga Pengo (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_ppengoRomInfo, md_ppengoRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pete Sampras Tennis (Euro, USA, J-Cart, Alt)
static struct BurnRomInfo md_sampras1RomDesc[] = {
	{ "mdstee_13.bin", 0x100000, 0xaa8b19bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sampras1)
STD_ROM_FN(md_sampras1)

struct BurnDriver BurnDrvmd_sampras1 = {
	"md_sampras1", "md_sampras", NULL, NULL, "1994",
	"Pete Sampras Tennis (Euro, USA, J-Cart, Alt)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sampras1RomInfo, md_sampras1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pete Sampras Tennis (Euro, USA, J-Cart, Alt 2)
static struct BurnRomInfo md_sampras2RomDesc[] = {
	{ "pete sampras tennis (euro, usa) (j-cart).bin", 0x100000, 0x9ef5bbd1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sampras2)
STD_ROM_FN(md_sampras2)

struct BurnDriver BurnDrvmd_sampras2 = {
	"md_sampras2", "md_sampras", NULL, NULL, "1994",
	"Pete Sampras Tennis (Euro, USA, J-Cart, Alt 2)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sampras2RomInfo, md_sampras2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA European Tour (Euro, USA)
static struct BurnRomInfo md_pgaeuroRomDesc[] = {
	{ "euro03.bin", 0x100000, 0x8ca45acd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pgaeuro)
STD_ROM_FN(md_pgaeuro)

struct BurnDriver BurnDrvmd_pgaeuro = {
	"md_pgaeuro", NULL, NULL, NULL, "1994",
	"PGA European Tour (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pgaeuroRomInfo, md_pgaeuroRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour 96 (Euro, USA)
static struct BurnRomInfo md_pga96RomDesc[] = {
	{ "pga9601.bin", 0x200000, 0x9698bbde, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pga96)
STD_ROM_FN(md_pga96)

struct BurnDriver BurnDrvmd_pga96 = {
	"md_pga96", NULL, NULL, NULL, "1995",
	"PGA Tour 96 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pga96RomInfo, md_pga96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour Golf (Euro, USA, v1.2)
static struct BurnRomInfo md_pgaRomDesc[] = {
	{ "pga09.bin", 0x080000, 0xc1f0b4e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pga)
STD_ROM_FN(md_pga)

struct BurnDriver BurnDrvmd_pga = {
	"md_pga", NULL, NULL, NULL, "1991",
	"PGA Tour Golf (Euro, USA, v1.2)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pgaRomInfo, md_pgaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour Golf (Euro, USA, v1.1)
static struct BurnRomInfo md_pgaaRomDesc[] = {
	{ "pga tour golf (euro, usa) (v1.1).bin", 0x080000, 0x0489ff8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pgaa)
STD_ROM_FN(md_pgaa)

struct BurnDriver BurnDrvmd_pgaa = {
	"md_pgaa", "md_pga", NULL, NULL, "1991",
	"PGA Tour Golf (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pgaaRomInfo, md_pgaaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour Golf II (Euro, USA)
static struct BurnRomInfo md_pga2aRomDesc[] = {
	{ "pga_tour_golf_pgt04", 0x100000, 0x8d980bb4, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pga2a)
STD_ROM_FN(md_pga2a)

struct BurnDriver BurnDrvmd_pga2a = {
	"md_pga2a", "md_pga2", NULL, NULL, "1992",
	"PGA Tour Golf II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pga2aRomInfo, md_pga2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour Golf II (Euro, USA, v1.1)
static struct BurnRomInfo md_pga2RomDesc[] = {
	{ "pga tour golf ii (euro, usa) (v1.1).bin", 0x100000, 0xe82b8606, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pga2)
STD_ROM_FN(md_pga2)

struct BurnDriver BurnDrvmd_pga2 = {
	"md_pga2", NULL, NULL, NULL, "1992",
	"PGA Tour Golf II (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pga2RomInfo, md_pga2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour Golf II (Japan)
static struct BurnRomInfo md_pga2jRomDesc[] = {
	{ "pga tour golf ii (jpn).bin", 0x100000, 0xc05b7a4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pga2j)
STD_ROM_FN(md_pga2j)

struct BurnDriver BurnDrvmd_pga2j = {
	"md_pga2j", "md_pga2", NULL, NULL, "1993",
	"PGA Tour Golf II (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pga2jRomInfo, md_pga2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PGA Tour Golf III (Euro, USA)
static struct BurnRomInfo md_pga3RomDesc[] = {
	{ "pga tour golf iii (euro, usa).bin", 0x200000, 0xaeb3f65f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pga3)
STD_ROM_FN(md_pga3)

struct BurnDriver BurnDrvmd_pga3 = {
	"md_pga3", NULL, NULL, NULL, "1994",
	"PGA Tour Golf III (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_pga3RomInfo, md_pga3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II (Euro, USA, Rev. A)
static struct BurnRomInfo md_pstar2RomDesc[] = {
	{ "Phantasy Star II (Euro, USA, Rev A)(1989)(Sega).bin", 0x0c0000, 0x904fa047, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar2)
STD_ROM_FN(md_pstar2)

struct BurnDriver BurnDrvmd_pstar2 = {
	"md_pstar2", NULL, NULL, NULL, "1989",
	"Phantasy Star II (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar2RomInfo, md_pstar2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II (Euro, USA)
static struct BurnRomInfo md_pstar2aRomDesc[] = {
	{ "Phantasy Star II (Euro, USA)(1989)(Sega).bin", 0x0c0000, 0x0d07d0ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar2a)
STD_ROM_FN(md_pstar2a)

struct BurnDriver BurnDrvmd_pstar2a = {
	"md_pstar2a", "md_pstar2", NULL, NULL, "1989",
	"Phantasy Star II (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar2aRomInfo, md_pstar2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II (Brazil)
static struct BurnRomInfo md_pstar2brRomDesc[] = {
	{ "Phantasy Star II (Brazil)(199x)(Tec Toy).bin", 0x0c0000, 0xe6688b66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar2br)
STD_ROM_FN(md_pstar2br)

struct BurnDriver BurnDrvmd_pstar2br = {
	"md_pstar2br", "md_pstar2", NULL, NULL, "199?",
	"Phantasy Star II (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar2brRomInfo, md_pstar2brRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Kaerazaru Toki no Owari ni (Japan)
static struct BurnRomInfo md_pstar2jRomDesc[] = {
	{ "Phantasy Star II - Kaerazaru Toki no Owari ni (Japan)(1989)(Sega).bin", 0x0c0000, 0xbec8eb5a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar2j)
STD_ROM_FN(md_pstar2j)

struct BurnDriver BurnDrvmd_pstar2j = {
	"md_pstar2j", "md_pstar2", NULL, NULL, "1989",
	"Phantasy Star II - Kaerazaru Toki no Owari ni (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar2jRomInfo, md_pstar2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Amia's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2aaRomDesc[] = {
	{ "Phantasy Star II - Amia's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0xa3a724aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2aa)
STD_ROM_FN(md_ps2aa)

struct BurnDriver BurnDrvmd_ps2aa = {
	"md_ps2aa", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Amia's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2aaRomInfo, md_ps2aaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Amia's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1530/
static struct BurnRomInfo md_ps2aaeRomDesc[] = {
	{ "Phantasy Star II - Amia's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0x7fdb5fe9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2aae)
STD_ROM_FN(md_ps2aae)

struct BurnDriver BurnDrvmd_ps2aae = {
	"md_ps2aae", "md_ps2aa", NULL, NULL, "2010",
	"Phantasy Star II - Amia's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2aaeRomInfo, md_ps2aaeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Anne's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2abRomDesc[] = {
	{ "Phantasy Star II - Anne's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0xfafa5b6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ab)
STD_ROM_FN(md_ps2ab)

struct BurnDriver BurnDrvmd_ps2ab = {
	"md_ps2ab", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Anne's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2abRomInfo, md_ps2abRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Anne's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1221/
static struct BurnRomInfo md_ps2abeRomDesc[] = {
	{ "Phantasy Star II - Anne's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0x355fad11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2abe)
STD_ROM_FN(md_ps2abe)

struct BurnDriver BurnDrvmd_ps2abe = {
	"md_ps2abe", "md_ps2ab", NULL, NULL, "2010",
	"Phantasy Star II - Anne's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2abeRomInfo, md_ps2abeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Huey's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2acRomDesc[] = {
	{ "Phantasy Star II - Huey's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0x1a076f83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ac)
STD_ROM_FN(md_ps2ac)

struct BurnDriver BurnDrvmd_ps2ac = {
	"md_ps2ac", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Huey's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2acRomInfo, md_ps2acRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Huey's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1337/
static struct BurnRomInfo md_ps2aceRomDesc[] = {
	{ "Phantasy Star II - Huey's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0xdb2cce50, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ace)
STD_ROM_FN(md_ps2ace)

struct BurnDriver BurnDrvmd_ps2ace = {
	"md_ps2ace", "md_ps2ac", NULL, NULL, "2010",
	"Phantasy Star II - Huey's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2aceRomInfo, md_ps2aceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Kinds's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2adRomDesc[] = {
	{ "Phantasy Star II - Kinds's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0xc334f308, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ad)
STD_ROM_FN(md_ps2ad)

struct BurnDriver BurnDrvmd_ps2ad = {
	"md_ps2ad", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Kinds's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2adRomInfo, md_ps2adRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Kinds's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1150/
static struct BurnRomInfo md_ps2adeRomDesc[] = {
	{ "Phantasy Star II - Kinds's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0xe91051e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ade)
STD_ROM_FN(md_ps2ade)

struct BurnDriver BurnDrvmd_ps2ade = {
	"md_ps2ade", "md_ps2ad", NULL, NULL, "2010",
	"Phantasy Star II - Kinds's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2adeRomInfo, md_ps2adeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Nei's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2aeRomDesc[] = {
	{ "Phantasy Star II - Nei's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0x3d9ad465, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ae)
STD_ROM_FN(md_ps2ae)

struct BurnDriver BurnDrvmd_ps2ae = {
	"md_ps2ae", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Nei's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2aeRomInfo, md_ps2aeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Nei's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1532/
static struct BurnRomInfo md_ps2aeeRomDesc[] = {
	{ "Phantasy Star II - Nei's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0xb0ce897c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2aee)
STD_ROM_FN(md_ps2aee)

struct BurnDriver BurnDrvmd_ps2aee = {
	"md_ps2aee", "md_ps2ae", NULL, NULL, "2010",
	"Phantasy Star II - Nei's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2aeeRomInfo, md_ps2aeeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Rudger's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2afRomDesc[] = {
	{ "Phantasy Star II - Rudger's Adventure (Japan, SegaNet)(1991(Sega).bin", 0x040000, 0x6b5916d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2af)
STD_ROM_FN(md_ps2af)

struct BurnDriver BurnDrvmd_ps2af = {
	"md_ps2af", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Rudger's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2afRomInfo, md_ps2afRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Rudger's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1533/
static struct BurnRomInfo md_ps2afeRomDesc[] = {
	{ "Phantasy Star II - Rudger's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0x3cd3bc1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2afe)
STD_ROM_FN(md_ps2afe)

struct BurnDriver BurnDrvmd_ps2afe = {
	"md_ps2afe", "md_ps2af", NULL, NULL, "2010",
	"Phantasy Star II - Rudger's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2afeRomInfo, md_ps2afeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Shilka's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2agRomDesc[] = {
	{ "Phantasy Star II - Shilka's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0x1f83beb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ag)
STD_ROM_FN(md_ps2ag)

struct BurnDriver BurnDrvmd_ps2ag = {
	"md_ps2ag", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Shilka's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2agRomInfo, md_ps2agRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Shilka's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1159/
static struct BurnRomInfo md_ps2ageRomDesc[] = {
	{ "Phantasy Star II - Shilka's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0x76e56009, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2age)
STD_ROM_FN(md_ps2age)

struct BurnDriver BurnDrvmd_ps2age = {
	"md_ps2age", "md_ps2ag", NULL, NULL, "2010",
	"Phantasy Star II - Shilka's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2ageRomInfo, md_ps2ageRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Yushis's Adventure (Japan, SegaNet)
static struct BurnRomInfo md_ps2ahRomDesc[] = {
	{ "Phantasy Star II - Yushis's Adventure (Japan, SegaNet)(1991)(Sega).bin", 0x040000, 0xd40c76d6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ah)
STD_ROM_FN(md_ps2ah)

struct BurnDriver BurnDrvmd_ps2ah = {
	"md_ps2ah", NULL, NULL, NULL, "1991",
	"Phantasy Star II - Yushis's Adventure (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2ahRomInfo, md_ps2ahRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II - Yushis's Adventure (Hack, English)
// Source : http://www.romhacking.net/translations/1531/
static struct BurnRomInfo md_ps2aheRomDesc[] = {
	{ "Phantasy Star II - Yushis's Adventure (Hack, English)(2010)(Jon Najar).bin", 0x040000, 0x5395a7e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ps2ahe)
STD_ROM_FN(md_ps2ahe)

struct BurnDriver BurnDrvmd_ps2ahe = {
	"md_ps2ahe", "md_ps2ah", NULL, NULL, "2010",
	"Phantasy Star II - Yushis's Adventure (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ps2aheRomInfo, md_ps2aheRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star III - Generations of Doom (Euro, USA, Korea)
static struct BurnRomInfo md_pstar3RomDesc[] = {
	{ "phantasy star iii - generations of doom (euro, usa, kor).bin", 786432, 0xc6b42b0f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar3)
STD_ROM_FN(md_pstar3)

struct BurnDriver BurnDrvmd_pstar3 = {
	"md_pstar3", NULL, NULL, NULL, "1990",
	"Phantasy Star III - Generations of Doom (Euro, USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar3RomInfo, md_pstar3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star III - Generations of Doom (Brazil)
static struct BurnRomInfo md_pstar3brRomDesc[] = {
	{ "phantasy star iii - generations of doom (bra).bin", 786432, 0x2e9b4c23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar3br)
STD_ROM_FN(md_pstar3br)

struct BurnDriver BurnDrvmd_pstar3br = {
	"md_pstar3br", "md_pstar3", NULL, NULL, "1998",
	"Phantasy Star III - Generations of Doom (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar3brRomInfo, md_pstar3brRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star III - Toki no Keishousha (Japan)
static struct BurnRomInfo md_pstar3jRomDesc[] = {
	{ "phantasy star iii - toki no keishousha (jpn).bin", 786432, 0x6c48c06f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar3j)
STD_ROM_FN(md_pstar3j)

struct BurnDriver BurnDrvmd_pstar3j = {
	"md_pstar3j", "md_pstar3", NULL, NULL, "1990",
	"Phantasy Star III - Toki no Keishousha (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar3jRomInfo, md_pstar3jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star III - Successors of Time (Hack, v1.2)
// https://www.romhacking.net/translations/3549/
static struct BurnRomInfo md_pstar3stRomDesc[] = {
	{ "Phantasy Star III - Successors of Time v1.2 (2020)(Hack).bin", 828012, 0x4db28d1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar3st)
STD_ROM_FN(md_pstar3st)

struct BurnDriver BurnDrvmd_pstar3st = {
	"md_pstar3st", "md_pstar3", NULL, NULL, "2020",
	"Phantasy Star III - Successors of Time (Hack, v1.2)\0", NULL, "Rebecca Capowski, lory1990, Peaches", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar3stRomInfo, md_pstar3stRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (USA)
static struct BurnRomInfo md_pstar4uRomDesc[] = {
	{ "phantasy star iv (usa).bin", 0x300000, 0xfe236442, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4u)
STD_ROM_FN(md_pstar4u)

struct BurnDriver BurnDrvmd_pstar4u = {
	"md_pstar4u", "md_pstar4", NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4uRomInfo, md_pstar4uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Euro)
static struct BurnRomInfo md_pstar4RomDesc[] = {
	{ "phantasy star iv (euro).bin", 0x300000, 0x389c2968, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4)
STD_ROM_FN(md_pstar4)

struct BurnDriver BurnDrvmd_pstar4 = {
	"md_pstar4", NULL, NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4RomInfo, md_pstar4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - Sennenki no Owari ni (Japan)
static struct BurnRomInfo md_pstar4jRomDesc[] = {
	{ "phantasy star - sennenki no owari ni (jpn).bin", 0x300000, 0xf0bfad42, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4j)
STD_ROM_FN(md_pstar4j)

struct BurnDriver BurnDrvmd_pstar4j = {
	"md_pstar4j", "md_pstar4", NULL, NULL, "1993",
	"Phantasy Star - Sennenki no Owari ni (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4jRomInfo, md_pstar4jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Prototype, 19940815)
static struct BurnRomInfo md_pstar4p3RomDesc[] = {
	{ "phantasy star iv (prototype - aug 15, 1994).bin", 0x300000, 0x60137f25, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4p3)
STD_ROM_FN(md_pstar4p3)

struct BurnDriver BurnDrvmd_pstar4p3 = {
	"md_pstar4p3", "md_pstar4", NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (Prototype, 19940815)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4p3RomInfo, md_pstar4p3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Prototype, 19940608)
static struct BurnRomInfo md_pstar4p4RomDesc[] = {
	{ "phantasy star iv (prototype - jun 08, 1994).bin", 0x300000, 0xdc2e1c0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4p4)
STD_ROM_FN(md_pstar4p4)

struct BurnDriver BurnDrvmd_pstar4p4 = {
	"md_pstar4p4", "md_pstar4", NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (Prototype, 19940608)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4p4RomInfo, md_pstar4p4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Prototype, 19940530)
static struct BurnRomInfo md_pstar4p5RomDesc[] = {
	{ "phantasy star iv (prototype - may 30, 1994).bin", 0x300000, 0xb32b17e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4p5)
STD_ROM_FN(md_pstar4p5)

struct BurnDriver BurnDrvmd_pstar4p5 = {
	"md_pstar4p5", "md_pstar4", NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (Prototype, 19940530)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4p5RomInfo, md_pstar4p5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Prototype, 19941107)
static struct BurnRomInfo md_pstar4p1RomDesc[] = {
	{ "phantasy star iv (prototype - nov 07, 1994).bin", 0x300000, 0xbda29cdf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4p1)
STD_ROM_FN(md_pstar4p1)

struct BurnDriver BurnDrvmd_pstar4p1 = {
	"md_pstar4p1", "md_pstar4", NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (Prototype, 19941107)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4p1RomInfo, md_pstar4p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Prototype, 19941027)
static struct BurnRomInfo md_pstar4p2RomDesc[] = {
	{ "phantasy star iv (prototype - oct 27, 1994).bin", 0x300000, 0x12a2590a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4p2)
STD_ROM_FN(md_pstar4p2)

struct BurnDriver BurnDrvmd_pstar4p2 = {
	"md_pstar4p2", "md_pstar4", NULL, NULL, "1994",
	"Phantasy Star - The End of the Millennium (Prototype, 19941027)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4p2RomInfo, md_pstar4p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};



// Phantom 2040 (Euro)
static struct BurnRomInfo md_phantomRomDesc[] = {
	{ "phantom 2040 (euro).bin", 0x200000, 0xb024882e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_phantom)
STD_ROM_FN(md_phantom)

struct BurnDriver BurnDrvmd_phantom = {
	"md_phantom", NULL, NULL, NULL, "1995",
	"Phantom 2040 (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_phantomRomInfo, md_phantomRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantom 2040 (USA)
static struct BurnRomInfo md_phantomuRomDesc[] = {
	{ "phantom 2040 (usa).bin", 0x200000, 0xfb36e1f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_phantomu)
STD_ROM_FN(md_phantomu)

struct BurnDriver BurnDrvmd_phantomu = {
	"md_phantomu", "md_phantom", NULL, NULL, "1995",
	"Phantom 2040 (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_phantomuRomInfo, md_phantomuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phelios (Euro)
static struct BurnRomInfo md_pheliosRomDesc[] = {
	{ "phelios (euro).bin", 0x080000, 0x13abc2b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_phelios)
STD_ROM_FN(md_phelios)

struct BurnDriver BurnDrvmd_phelios = {
	"md_phelios", NULL, NULL, NULL, "1990",
	"Phelios (Euro)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_pheliosRomInfo, md_pheliosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phelios (Japan)
static struct BurnRomInfo md_pheliosjRomDesc[] = {
	{ "phelios (jpn).bin", 0x080000, 0x94596174, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pheliosj)
STD_ROM_FN(md_pheliosj)

struct BurnDriver BurnDrvmd_pheliosj = {
	"md_pheliosj", "md_phelios", NULL, NULL, "1990",
	"Phelios (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_pheliosjRomInfo, md_pheliosjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phelios (USA)
static struct BurnRomInfo md_pheliosuRomDesc[] = {
	{ "phelios (usa).bin", 0x080000, 0x11c79320, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pheliosu)
STD_ROM_FN(md_pheliosu)

struct BurnDriver BurnDrvmd_pheliosu = {
	"md_pheliosu", "md_phelios", NULL, NULL, "1990",
	"Phelios (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_pheliosuRomInfo, md_pheliosuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pink Goes to Hollywood (USA, Prototype)
static struct BurnRomInfo md_pinkpRomDesc[] = {
	{ "pink goes to hollywood (usa) (beta).bin", 0x100000, 0x56087cff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pinkp)
STD_ROM_FN(md_pinkp)

struct BurnDriver BurnDrvmd_pinkp = {
	"md_pinkp", "md_pink", NULL, NULL, "1993",
	"Pink Goes to Hollywood (USA, Prototype)\0", NULL, "TecMagik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pinkpRomInfo, md_pinkpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pinocchio (Euro)
static struct BurnRomInfo md_pinocRomDesc[] = {
	{ "pinocchio (euro).bin", 0x300000, 0x28014bdc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pinoc)
STD_ROM_FN(md_pinoc)

struct BurnDriver BurnDrvmd_pinoc = {
	"md_pinoc", NULL, NULL, NULL, "1995",
	"Pinocchio (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pinocRomInfo, md_pinocRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pinocchio (USA)
static struct BurnRomInfo md_pinocuRomDesc[] = {
	{ "pinocchio (usa).bin", 0x300000, 0xcd4128d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pinocu)
STD_ROM_FN(md_pinocu)

struct BurnDriver BurnDrvmd_pinocu = {
	"md_pinocu", "md_pinoc", NULL, NULL, "1996",
	"Pinocchio (USA)\0", NULL, "THQ", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pinocuRomInfo, md_pinocuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates of Dark Water, The (USA, January 1994)
static struct BurnRomInfo md_piratedwRomDesc[] = {
	{ "pirates of dark water, the (usa) (january 1994).bin", 0x200000, 0x0c45b9f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_piratedw)
STD_ROM_FN(md_piratedw)

struct BurnDriver BurnDrvmd_piratedw = {
	"md_piratedw", NULL, NULL, NULL, "1994",
	"Pirates of Dark Water, The (USA, January 1994)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_piratedwRomInfo, md_piratedwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates of Dark Water, The (Euro, USA, May 1994)
static struct BurnRomInfo md_piratedw1RomDesc[] = {
	{ "pirates of dark water, the (euro, usa) (may 1994).bin", 0x200000, 0x0a62de34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_piratedw1)
STD_ROM_FN(md_piratedw1)

struct BurnDriver BurnDrvmd_piratedw1 = {
	"md_piratedw1", "md_piratedw", NULL, NULL, "1994",
	"Pirates of Dark Water, The (Euro, USA, May 1994)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_piratedw1RomInfo, md_piratedw1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates! Gold (USA)
static struct BurnRomInfo md_piratesRomDesc[] = {
	{ "pirates! gold (usa).bin", 0x100000, 0xed50e75c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pirates)
STD_ROM_FN(md_pirates)

struct BurnDriver BurnDrvmd_pirates = {
	"md_pirates", NULL, NULL, NULL, "1993",
	"Pirates! Gold (USA)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_piratesRomInfo, md_piratesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates! Gold (USA, Prototype)
static struct BurnRomInfo md_piratespRomDesc[] = {
	{ "pirates! gold (usa) (beta).bin", 0x100000, 0x0a525641, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_piratesp)
STD_ROM_FN(md_piratesp)

struct BurnDriver BurnDrvmd_piratesp = {
	"md_piratesp", "md_pirates", NULL, NULL, "1993",
	"Pirates! Gold (USA, Prototype)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_piratespRomInfo, md_piratespRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates! Gold (Prototype, 19930401)
static struct BurnRomInfo md_piratesp1RomDesc[] = {
	{ "pirates! gold (prototype - apr 1, 1993).bin", 0x100000, 0xf61e5417, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_piratesp1)
STD_ROM_FN(md_piratesp1)

struct BurnDriver BurnDrvmd_piratesp1 = {
	"md_piratesp1", "md_pirates", NULL, NULL, "1993",
	"Pirates! Gold (Prototype, 19930401)\0", NULL, "Microprose", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_piratesp1RomInfo, md_piratesp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pit-Fighter (World, Rev. A)
static struct BurnRomInfo md_pitfightRomDesc[] = {
	{ "mpr-14320a.bin", 0x100000, 0xd48a8b02, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pitfight)
STD_ROM_FN(md_pitfight)

struct BurnDriver BurnDrvmd_pitfight = {
	"md_pitfight", NULL, NULL, NULL, "1991",
	"Pit-Fighter (World, Rev. A)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_pitfightRomInfo, md_pitfightRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pit-Fighter (World)
static struct BurnRomInfo md_pitfight1RomDesc[] = {
	{ "pit-fighter (world).bin", 0x100000, 0x1e0e0831, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pitfight1)
STD_ROM_FN(md_pitfight1)

struct BurnDriver BurnDrvmd_pitfight1 = {
	"md_pitfight1", "md_pitfight", NULL, NULL, "1991",
	"Pit-Fighter (World)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_pitfight1RomInfo, md_pitfight1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pitfall - The Mayan Adventure (Euro)
static struct BurnRomInfo md_pitfallRomDesc[] = {
	{ "pitfall - the mayan adventure (euro).bin", 0x200000, 0xc9198e19, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pitfall)
STD_ROM_FN(md_pitfall)

struct BurnDriver BurnDrvmd_pitfall = {
	"md_pitfall", NULL, NULL, NULL, "1994",
	"Pitfall - The Mayan Adventure (Euro)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pitfallRomInfo, md_pitfallRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pitfall - The Mayan Adventure (USA)
static struct BurnRomInfo md_pitfalluRomDesc[] = {
	{ "pitfall - the mayan adventure (usa).bin", 0x200000, 0xf917e34f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pitfallu)
STD_ROM_FN(md_pitfallu)

struct BurnDriver BurnDrvmd_pitfallu = {
	"md_pitfallu", "md_pitfall", NULL, NULL, "1994",
	"Pitfall - The Mayan Adventure (USA)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pitfalluRomInfo, md_pitfalluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pocahontas (Euro)
static struct BurnRomInfo md_pocahontRomDesc[] = {
	{ "mpr-18875.bin", 0x400000, 0x165e7987, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pocahont)
STD_ROM_FN(md_pocahont)

struct BurnDriver BurnDrvmd_pocahont = {
	"md_pocahont", NULL, NULL, NULL, "1996",
	"Pocahontas (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pocahontRomInfo, md_pocahontRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pocahontas (USA)
static struct BurnRomInfo md_pocahontuRomDesc[] = {
	{ "pocahontas (usa).bin", 0x400000, 0x6ddd1c6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pocahontu)
STD_ROM_FN(md_pocahontu)

struct BurnDriver BurnDrvmd_pocahontu = {
	"md_pocahontu", "md_pocahont", NULL, NULL, "1996",
	"Pocahontas (USA)\0", NULL, "Disney Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pocahontuRomInfo, md_pocahontuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pocket Monsters (Unl)
static struct BurnRomInfo md_pokemonRomDesc[] = {
	{ "pocket monsters (unl).bin", 0x200000, 0xf68f6367, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pokemon)
STD_ROM_FN(md_pokemon)

struct BurnDriver BurnDrvmd_pokemon = {
	"md_pokemon", NULL, NULL, NULL, "2000",
	"Pocket Monsters (Unl)\0", NULL, "X-boy, Chuanpu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pokemonRomInfo, md_pokemonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pocket Monsters (Alt) (Unl)
static struct BurnRomInfo md_pokemonaRomDesc[] = {
	{ "pocket monsters (unl) (alt).bin", 0x200000, 0xfb176667, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pokemona)
STD_ROM_FN(md_pokemona)

struct BurnDriver BurnDrvmd_pokemona = {
	"md_pokemona", "md_pokemon", NULL, NULL, "2000",
	"Pocket Monsters (Alt) (Unl)\0", NULL, "X-boy, Chuanpu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pokemonaRomInfo, md_pokemonaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pocket Monsters 2 (Unl)
static struct BurnRomInfo md_pokemon2RomDesc[] = {
	{ "pocket monsters 2 (unl).bin", 0x200000, 0x30f7031f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pokemon2)
STD_ROM_FN(md_pokemon2)

struct BurnDriver BurnDrvmd_pokemon2 = {
	"md_pokemon2", NULL, NULL, NULL, "2001",
	"Pocket Monsters 2 (Unl)\0", NULL, "X-boy, Chuanpu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_POKEMON2, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pokemon2RomInfo, md_pokemon2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pokemon Crazy Drummer (Unl)
static struct BurnRomInfo md_pokecdRomDesc[] = {
	{ "pokemon crazy drummer (unl).bin", 0x200000, 0x8838a25d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pokecd)
STD_ROM_FN(md_pokecd)

struct BurnDriver BurnDrvmd_pokecd = {
	"md_pokecd", NULL, NULL, NULL, "2003",
	"Pokemon Crazy Drummer (Unl)\0", NULL, "Tomsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_pokecdRomInfo, md_pokecdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Populous (Euro)
static struct BurnRomInfo md_populousRomDesc[] = {
	{ "populous (euro).bin", 0x080000, 0x83d56f64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_populous)
STD_ROM_FN(md_populous)

struct BurnDriver BurnDrvmd_populous = {
	"md_populous", NULL, NULL, NULL, "1991",
	"Populous (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_populousRomInfo, md_populousRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Populous (Japan)
static struct BurnRomInfo md_populousjRomDesc[] = {
	{ "populous (jpn).bin", 0x080000, 0x97c26818, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_populousj)
STD_ROM_FN(md_populousj)

struct BurnDriver BurnDrvmd_populousj = {
	"md_populousj", "md_populous", NULL, NULL, "1991",
	"Populous (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_populousjRomInfo, md_populousjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Populous (USA)
static struct BurnRomInfo md_populousuRomDesc[] = {
	{ "populous (usa).bin", 0x080000, 0xbd74b31e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_populousu)
STD_ROM_FN(md_populousu)

struct BurnDriver BurnDrvmd_populousu = {
	"md_populousu", "md_populous", NULL, NULL, "1991",
	"Populous (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_populousuRomInfo, md_populousuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Power Drive (Euro)
static struct BurnRomInfo md_pdriveRomDesc[] = {
	{ "power drive (euro).bin", 0x100000, 0x8c00ad61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pdrive)
STD_ROM_FN(md_pdrive)

struct BurnDriver BurnDrvmd_pdrive = {
	"md_pdrive", NULL, NULL, NULL, "1994",
	"Power Drive (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_pdriveRomInfo, md_pdriveRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Power Monger (Euro, USA)
static struct BurnRomInfo md_pmongerRomDesc[] = {
	{ "pm14.bin", 0x100000, 0xfb599b86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pmonger)
STD_ROM_FN(md_pmonger)

struct BurnDriver BurnDrvmd_pmonger = {
	"md_pmonger", NULL, NULL, NULL, "1993",
	"Power Monger (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_pmongerRomInfo, md_pmongerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Power Monger (Japan, Korea)
static struct BurnRomInfo md_pmongerjRomDesc[] = {
	{ "power monger (jpn, kor).bin", 0x100000, 0x553289b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pmongerj)
STD_ROM_FN(md_pmongerj)

struct BurnDriver BurnDrvmd_pmongerj = {
	"md_pmongerj", "md_pmonger", NULL, NULL, "1993",
	"Power Monger (Japan, Korea)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_pmongerjRomInfo, md_pmongerjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Powerball (USA)
static struct BurnRomInfo md_powerbalRomDesc[] = {
	{ "powerball (usa).bin", 0x080000, 0x7adf232f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_powerbal)
STD_ROM_FN(md_powerbal)

struct BurnDriver BurnDrvmd_powerbal = {
	"md_powerbal", NULL, NULL, NULL, "1991",
	"Powerball (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_powerbalRomInfo, md_powerbalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wrestleball (Japan)
static struct BurnRomInfo md_wrstballRomDesc[] = {
	{ "wrestleball (jpn).bin", 0x080000, 0xd563e07f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wrstball)
STD_ROM_FN(md_wrstball)

struct BurnDriver BurnDrvmd_wrstball = {
	"md_wrstball", "md_powerbal", NULL, NULL, "1991",
	"Wrestleball (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wrstballRomInfo, md_wrstballRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Predator 2 (Euro, USA)
static struct BurnRomInfo md_predatr2RomDesc[] = {
	{ "predator 2 (euro, usa).bin", 0x100000, 0xbdba113e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_predatr2)
STD_ROM_FN(md_predatr2)

struct BurnDriver BurnDrvmd_predatr2 = {
	"md_predatr2", NULL, NULL, NULL, "1992",
	"Predator 2 (Euro, USA)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_predatr2RomInfo, md_predatr2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Premier Manager (Euro)
static struct BurnRomInfo md_premiermRomDesc[] = {
	{ "mpr-18473.bin", 0x100000, 0x303b889f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_premierm)
STD_ROM_FN(md_premierm)

struct BurnDriver BurnDrvmd_premierm = {
	"md_premierm", NULL, NULL, NULL, "1995",
	"Premier Manager (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY | GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_premiermRomInfo, md_premiermRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Premier Manager 97 (Euro)
static struct BurnRomInfo md_premrm97RomDesc[] = {
	{ "premier manager 97 (euro).bin", 0x100000, 0xfccbf69b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_premrm97)
STD_ROM_FN(md_premrm97)

struct BurnDriver BurnDrvmd_premrm97 = {
	"md_premrm97", NULL, NULL, NULL, "1996",
	"Premier Manager 97 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY | GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_premrm97RomInfo, md_premrm97RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Primal Rage (Euro, USA)
static struct BurnRomInfo md_primalRomDesc[] = {
	{ "primal rage (euro, usa).bin", 0x300000, 0x2884c6d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_primal)
STD_ROM_FN(md_primal)

struct BurnDriver BurnDrvmd_primal = {
	"md_primal", NULL, NULL, NULL, "1995",
	"Primal Rage (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_primalRomInfo, md_primalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prime Time NFL Starring Deion Sanders (USA)
static struct BurnRomInfo md_primetimRomDesc[] = {
	{ "prime time nfl starring deion sanders (usa).bin", 0x200000, 0x5aa53cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_primetim)
STD_ROM_FN(md_primetim)

struct BurnDriver BurnDrvmd_primetim = {
	"md_primetim", NULL, NULL, NULL, "1995",
	"Prime Time NFL Starring Deion Sanders (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_primetimRomInfo, md_primetimRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia (Euro)
static struct BurnRomInfo md_ppersiaRomDesc[] = {
	{ "prince of persia (euro).bin", 0x100000, 0x61de6fe0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersia)
STD_ROM_FN(md_ppersia)

struct BurnDriver BurnDrvmd_ppersia = {
	"md_ppersia", NULL, NULL, NULL, "1993",
	"Prince of Persia (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersiaRomInfo, md_ppersiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia (Prototype)
static struct BurnRomInfo md_ppersiapRomDesc[] = {
	{ "prince of persia (beta).bin", 0x100000, 0x505314b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersiap)
STD_ROM_FN(md_ppersiap)

struct BurnDriver BurnDrvmd_ppersiap = {
	"md_ppersiap", "md_ppersia", NULL, NULL, "1993",
	"Prince of Persia (Prototype)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersiapRomInfo, md_ppersiapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia (Prototype, Earlier)
static struct BurnRomInfo md_ppersiap1RomDesc[] = {
	{ "prince of persia (beta) (earlier).bin", 0x040000, 0x425e6a87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersiap1)
STD_ROM_FN(md_ppersiap1)

struct BurnDriver BurnDrvmd_ppersiap1 = {
	"md_ppersiap1", "md_ppersia", NULL, NULL, "1993",
	"Prince of Persia (Prototype, Earlier)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersiap1RomInfo, md_ppersiap1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia (USA)
static struct BurnRomInfo md_ppersiauRomDesc[] = {
	{ "prince of persia (usa).bin", 0x100000, 0x13c181a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersiau)
STD_ROM_FN(md_ppersiau)

struct BurnDriver BurnDrvmd_ppersiau = {
	"md_ppersiau", "md_ppersia", NULL, NULL, "1993",
	"Prince of Persia (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersiauRomInfo, md_ppersiauRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia 2 - The Shadow and the Flame (Euro, Prototype)
static struct BurnRomInfo md_ppersia2RomDesc[] = {
	{ "prince of persia 2 - the shadow and the flame (euro) (prototype).bin", 0x200000, 0x3ab44d46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersia2)
STD_ROM_FN(md_ppersia2)

struct BurnDriver BurnDrvmd_ppersia2 = {
	"md_ppersia2", NULL, NULL, NULL, "1995",
	"Prince of Persia 2 - The Shadow and the Flame (Euro, Prototype)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersia2RomInfo, md_ppersia2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pro Quarterback (USA)
static struct BurnRomInfo md_proqbRomDesc[] = {
	{ "pro quarterback (usa).bin", 0x100000, 0xcc8b2b69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_proqb)
STD_ROM_FN(md_proqb)

struct BurnDriver BurnDrvmd_proqb = {
	"md_proqb", NULL, NULL, NULL, "1992",
	"Pro Quarterback (USA)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_proqbRomInfo, md_proqbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pro Yakyuu Super League '91 (Japan)
static struct BurnRomInfo md_proyakyuRomDesc[] = {
	{ "pro yakyuu super league '91 (jpn).bin", 0x080000, 0xa948ab7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_proyakyu)
STD_ROM_FN(md_proyakyu)

struct BurnDriver BurnDrvmd_proyakyu = {
	"md_proyakyu", NULL, NULL, NULL, "1991",
	"Pro Yakyuu Super League '91 (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_proyakyuRomInfo, md_proyakyuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Contra - Hard Corps (USA, Korea)
static struct BurnRomInfo md_contraRomDesc[] = {
	{ "contra - hard corps (usa, kor).bin", 0x200000, 0xc579f45e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_contra)
STD_ROM_FN(md_contra)

struct BurnDriver BurnDrvmd_contra = {
	"md_contra", NULL, NULL, NULL, "1994",
	"Contra - Hard Corps (USA, Korea)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_contraRomInfo, md_contraRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Contra - The Hard Corps (Japan)
static struct BurnRomInfo md_contrajRomDesc[] = {
	{ "contra - the hard corps (jpn).bin", 0x200000, 0x2ab26380, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_contraj)
STD_ROM_FN(md_contraj)

struct BurnDriver BurnDrvmd_contraj = {
	"md_contraj", "md_contra", NULL, NULL, "1994",
	"Contra - The Hard Corps (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_contrajRomInfo, md_contrajRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Contra - Hard Corps INVASION (Hack v3.3)
// https://www.romhacking.net/hacks/4381/
static struct BurnRomInfo md_contrainvRomDesc[] = {
	{ "contra - hard corps invasion (hack v3.3).bin", 0x400000, 0xe1735c02, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_contrainv)
STD_ROM_FN(md_contrainv)

struct BurnDriver BurnDrvmd_contrainv = {
	"md_contrainv", "md_contra", NULL, NULL, "2020",
	"Contra - Hard Corps Invasion (Hack v3.3)\0", NULL, "IT.GAMER", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_contrainvRomInfo, md_contrainvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Probotector (Euro)
static struct BurnRomInfo md_probotRomDesc[] = {
	{ "probotector (euro).bin", 0x200000, 0xbc597d48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_probot)
STD_ROM_FN(md_probot)

struct BurnDriver BurnDrvmd_probot = {
	"md_probot", "md_contra", NULL, NULL, "1994",
	"Probotector (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_probotRomInfo, md_probotRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Psy-O-Blade (Japan)
static struct BurnRomInfo md_psyobladRomDesc[] = {
	{ "psy-o-blade (jpn).bin", 0x0a0000, 0x8ba7e6c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psyoblad)
STD_ROM_FN(md_psyoblad)

struct BurnDriver BurnDrvmd_psyoblad = {
	"md_psyoblad", NULL, NULL, NULL, "1990",
	"Psy-O-Blade (Japan)\0", NULL, "Sigma Ent.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_psyobladRomInfo, md_psyobladRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Psy-O-Blade (Hack, English)
// Source : http://www.romhacking.net/translations/2308/
static struct BurnRomInfo md_psyobladeRomDesc[] = {
	{ "psy-o-blade (english translation).md", 0x0bfb20, 0x427f95cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psyoblade)
STD_ROM_FN(md_psyoblade)

struct BurnDriver BurnDrvmd_psyoblade = {
	"md_psyoblade", "md_psyoblad", NULL, NULL, "2015",
	"Psy-O-Blade (Hack, English)\0", NULL, "Eien Ni Hen, tryphon", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_psyobladeRomInfo, md_psyobladeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puggsy (Euro)
static struct BurnRomInfo md_puggsyRomDesc[] = {
	{ "puggsy (euro).bin", 0x100000, 0x5d5c9ade, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puggsy)
STD_ROM_FN(md_puggsy)

struct BurnDriver BurnDrvmd_puggsy = {
	"md_puggsy", NULL, NULL, NULL, "1993",
	"Puggsy (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puggsyRomInfo, md_puggsyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puggsy (Prototype)
static struct BurnRomInfo md_puggsypRomDesc[] = {
	{ "puggsy (beta).bin", 0x100000, 0x37fa4877, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puggsyp)
STD_ROM_FN(md_puggsyp)

struct BurnDriver BurnDrvmd_puggsyp = {
	"md_puggsyp", "md_puggsy", NULL, NULL, "1993",
	"Puggsy (Prototype)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puggsypRomInfo, md_puggsypRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puggsy (USA)
static struct BurnRomInfo md_puggsyuRomDesc[] = {
	{ "puggsy (usa).bin", 0x100000, 0x70132168, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puggsyu)
STD_ROM_FN(md_puggsyu)

struct BurnDriver BurnDrvmd_puggsyu = {
	"md_puggsyu", "md_puggsy", NULL, NULL, "1993",
	"Puggsy (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puggsyuRomInfo, md_puggsyuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pulseman (Japan)
static struct BurnRomInfo md_pulsemanRomDesc[] = {
	{ "pulseman (jpn).bin", 0x200000, 0x138a104e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pulseman)
STD_ROM_FN(md_pulseman)

struct BurnDriver BurnDrvmd_pulseman = {
	"md_pulseman", NULL, NULL, NULL, "1994",
	"Pulseman (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pulsemanRomInfo, md_pulsemanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pulseman (Hack, English)
// Source : http://www.romhacking.net/translations/1099/
static struct BurnRomInfo md_pulsemaneRomDesc[] = {
	{ "pulseman (english translation).bin", 0x200000, 0xa8e0de99, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pulsemane)
STD_ROM_FN(md_pulsemane)

struct BurnDriver BurnDrvmd_pulsemane = {
	"md_pulsemane", "md_pulseman", NULL, NULL, "2007",
	"Pulseman (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pulsemaneRomInfo, md_pulsemaneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Punisher, The (Euro)
static struct BurnRomInfo md_punisherRomDesc[] = {
	{ "punisher, the (euro).bin", 0x200000, 0x729edd17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_punisher)
STD_ROM_FN(md_punisher)

struct BurnDriver BurnDrvmd_punisher = {
	"md_punisher", NULL, NULL, NULL, "1994",
	"Punisher, The (Euro)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_punisherRomInfo, md_punisherRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Punisher, The (USA)
static struct BurnRomInfo md_punisheruRomDesc[] = {
	{ "punisher, the (usa).bin", 0x200000, 0x695cd8b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_punisheru)
STD_ROM_FN(md_punisheru)

struct BurnDriver BurnDrvmd_punisheru = {
	"md_punisheru", "md_punisher", NULL, NULL, "1994",
	"Punisher, The (USA)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_punisheruRomInfo, md_punisheruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Putter Golf (Japan, SegaNet)
static struct BurnRomInfo md_putterRomDesc[] = {
	{ "putter golf (jpn) (sn).bin", 0x040000, 0x20f168a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_putter)
STD_ROM_FN(md_putter)

struct BurnDriver BurnDrvmd_putter = {
	"md_putter", NULL, NULL, NULL, "1991",
	"Putter Golf (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_putterRomInfo, md_putterRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Putter Golf (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_puttergnkRomDesc[] = {
	{ "putter golf (jpn) (gnk).bin", 0x040000, 0xa6557faa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puttergnk)
STD_ROM_FN(md_puttergnk)

struct BurnDriver BurnDrvmd_puttergnk = {
	"md_puttergnk", "md_putter", NULL, NULL, "1991",
	"Putter Golf (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_puttergnkRomInfo, md_puttergnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Putty Squad (Early prototype)
static struct BurnRomInfo md_puttysquadp1RomDesc[] = {
	{ "putty squad (early prototype).bin", 0x100000, 0x4974ae73, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puttysquadp1)
STD_ROM_FN(md_puttysquadp1)

struct BurnDriver BurnDrvmd_puttysquadp1 = {
	"md_puttysquadp1", NULL, NULL, NULL, "1995",
	"Putty Squad (Early prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_puttysquadp1RomInfo, md_puttysquadp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Putty Squad (Late prototype)
static struct BurnRomInfo md_puttysquadp2RomDesc[] = {
	{ "putty squad (late prototype).bin", 0x100000, 0x2348da80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puttysquadp2)
STD_ROM_FN(md_puttysquadp2)

struct BurnDriver BurnDrvmd_puttysquadp2 = {
	"md_puttysquadp2", "md_puttysquadp1", NULL, NULL, "1995",
	"Putty Squad (Late prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_puttysquadp2RomInfo, md_puttysquadp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puyo Puyo (Japan)
static struct BurnRomInfo md_puyopuyoRomDesc[] = {
	{ "puyo puyo (jpn).bin", 0x080000, 0x7f26614e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puyopuyo)
STD_ROM_FN(md_puyopuyo)

struct BurnDriver BurnDrvmd_puyopuyo = {
	"md_puyopuyo", NULL, NULL, NULL, "1992",
	"Puyo Puyo (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puyopuyoRomInfo, md_puyopuyoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puyo Puyo 2 (Japan, v1.1)
static struct BurnRomInfo md_puyopuy2RomDesc[] = {
	{ "puyo puyo 2 (jpn) (v1.1).bin", 0x200000, 0x25b7b2aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puyopuy2)
STD_ROM_FN(md_puyopuy2)

struct BurnDriver BurnDrvmd_puyopuy2 = {
	"md_puyopuy2", NULL, NULL, NULL, "1994",
	"Puyo Puyo 2 (Japan, v1.1)\0", NULL, "Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puyopuy2RomInfo, md_puyopuy2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puyo Puyo 2 (Japan)
static struct BurnRomInfo md_puyopuy2aRomDesc[] = {
	{ "puyo puyo 2 (jpn).bin", 0x200000, 0x51ad7797, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puyopuy2a)
STD_ROM_FN(md_puyopuy2a)

struct BurnDriver BurnDrvmd_puyopuy2a = {
	"md_puyopuy2a", "md_puyopuy2", NULL, NULL, "1994",
	"Puyo Puyo 2 (Japan)\0", NULL, "Compile", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puyopuy2aRomInfo, md_puyopuy2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puzzle & Action - Ichidant-R (Japan)
static struct BurnRomInfo md_ichirRomDesc[] = {
	{ "puzzle & action - ichidanto-r (jpn).bin", 0x200000, 0x7bdec762, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ichir)
STD_ROM_FN(md_ichir)

struct BurnDriver BurnDrvmd_ichir = {
	"md_ichir", NULL, NULL, NULL, "1995",
	"Puzzle & Action - Ichidant-R (Jpn)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_ichirRomInfo, md_ichirRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puzzle & Action - Tant-R (Japan)
static struct BurnRomInfo md_tantrRomDesc[] = {
	{ "puzzle & action - tanto-r (jpn).bin", 0x200000, 0xd2d2d437, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tantr)
STD_ROM_FN(md_tantr)

struct BurnDriver BurnDrvmd_tantr = {
	"md_tantr", NULL, NULL, NULL, "1994",
	"Puzzle & Action - Tant-R (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_tantrRomInfo, md_tantrRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pyramid Magic (Japan, SegaNet)
static struct BurnRomInfo md_pyramidRomDesc[] = {
	{ "pyramid magic (jpn) (sn).bin", 0x040000, 0x306d839e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pyramid)
STD_ROM_FN(md_pyramid)

struct BurnDriver BurnDrvmd_pyramid = {
	"md_pyramid", NULL, NULL, NULL, "1991",
	"Pyramid Magic (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pyramidRomInfo, md_pyramidRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pyramid Magic (Japan, Game no Kandume MegaCD Rip)
static struct BurnRomInfo md_pyramidgnkRomDesc[] = {
	{ "pyramid magic (jpn) (gnk).bin", 0x040000, 0xb20272ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pyramidgnk)
STD_ROM_FN(md_pyramidgnk)

struct BurnDriver BurnDrvmd_pyramidgnk = {
	"md_pyramidgnk", "md_pyramid", NULL, NULL, "1991",
	"Pyramid Magic (Japan, Game no Kandume MegaCD Rip)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pyramidgnkRomInfo, md_pyramidgnkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pyramid Magic II (Japan, SegaNet)
static struct BurnRomInfo md_pyramid2RomDesc[] = {
	{ "pyramid magic ii (jpn) (sn).bin", 0x040000, 0xc9ddac72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pyramid2)
STD_ROM_FN(md_pyramid2)

struct BurnDriver BurnDrvmd_pyramid2 = {
	"md_pyramid2", NULL, NULL, NULL, "1991",
	"Pyramid Magic II (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pyramid2RomInfo, md_pyramid2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pyramid Magic III (Japan, SegaNet)
static struct BurnRomInfo md_pyramid3RomDesc[] = {
	{ "pyramid magic iii (jpn) (sn).bin", 0x040000, 0x8329820a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pyramid3)
STD_ROM_FN(md_pyramid3)

struct BurnDriver BurnDrvmd_pyramid3 = {
	"md_pyramid3", NULL, NULL, NULL, "1991",
	"Pyramid Magic III (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pyramid3RomInfo, md_pyramid3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pyramid Magic Special (Japan, SegaNet)
static struct BurnRomInfo md_pyramidsRomDesc[] = {
	{ "pyramid magic special (jpn) (sn).bin", 0x040000, 0x153a3afa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pyramids)
STD_ROM_FN(md_pyramids)

struct BurnDriver BurnDrvmd_pyramids = {
	"md_pyramids", NULL, NULL, NULL, "1991",
	"Pyramid Magic Special (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pyramidsRomInfo, md_pyramidsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// QuackShot Starring Donald Duck ~ QuackShot - Guruzia Ou no Hihou (World, Alt)
static struct BurnRomInfo md_quacksht1RomDesc[] = {
	{ "quackshot starring donald duck -- quackshot - guruzia ou no hihou (world) (alt).bin", 0x080000, 0x88c8dd94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_quacksht1)
STD_ROM_FN(md_quacksht1)

struct BurnDriver BurnDrvmd_quacksht1 = {
	"md_quacksht1", "md_quacksht", NULL, NULL, "1991",
	"QuackShot Starring Donald Duck ~ QuackShot - Guruzia Ou no Hihou (World, Alt)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_quacksht1RomInfo, md_quacksht1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Quad Challenge (USA)
static struct BurnRomInfo md_quadchalRomDesc[] = {
	{ "quad challenge (usa).bin", 0x080000, 0x74736a80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_quadchal)
STD_ROM_FN(md_quadchal)

struct BurnDriver BurnDrvmd_quadchal = {
	"md_quadchal", NULL, NULL, NULL, "1991",
	"Quad Challenge (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_quadchalRomInfo, md_quadchalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MegaTrax (Japan)
static struct BurnRomInfo md_megatraxRomDesc[] = {
	{ "megatrax (jpn).bin", 0x080000, 0xa0837741, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megatrax)
STD_ROM_FN(md_megatrax)

struct BurnDriver BurnDrvmd_megatrax = {
	"md_megatrax", "md_quadchal", NULL, NULL, "1991",
	"MegaTrax (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_megatraxRomInfo, md_megatraxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Queen of Poker Club (Taiwan)
static struct BurnRomInfo md_qpokerRomDesc[] = {
	{ "poker club (sachen).bin", 0x100000, 0xae28d9eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_qpoker)
STD_ROM_FN(md_qpoker)

struct BurnDriver BurnDrvmd_qpoker = {
	"md_qpoker", NULL, NULL, NULL, "199?",
	"Queen of Poker Club (Taiwan)\0", NULL, "Sachen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CARD, 0,
	MegadriveGetZipName, md_qpokerRomInfo, md_qpokerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// R.B.I. Baseball '93 (USA)
static struct BurnRomInfo md_rbibb93RomDesc[] = {
	{ "r.b.i. baseball '93 (usa).bin", 0x100000, 0xbeafce84, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbibb93)
STD_ROM_FN(md_rbibb93)

struct BurnDriver BurnDrvmd_rbibb93 = {
	"md_rbibb93", NULL, NULL, NULL, "1993",
	"R.B.I. Baseball '93 (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rbibb93RomInfo, md_rbibb93RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// R.B.I. Baseball '94 (Euro, USA)
static struct BurnRomInfo md_rbibb94RomDesc[] = {
	{ "r.b.i. baseball '94 (euro, usa).bin", 0x200000, 0x4eb4d5e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbibb94)
STD_ROM_FN(md_rbibb94)

struct BurnDriver BurnDrvmd_rbibb94 = {
	"md_rbibb94", NULL, NULL, NULL, "1994",
	"R.B.I. Baseball '94 (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rbibb94RomInfo, md_rbibb94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// R.B.I. Baseball 3 (USA)
static struct BurnRomInfo md_rbibb3RomDesc[] = {
	{ "r.b.i. baseball 3 (usa).bin", 0x080000, 0x4840348c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbibb3)
STD_ROM_FN(md_rbibb3)

struct BurnDriver BurnDrvmd_rbibb3 = {
	"md_rbibb3", NULL, NULL, NULL, "1991",
	"R.B.I. Baseball 3 (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rbibb3RomInfo, md_rbibb3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// R.B.I. Baseball 4 (USA)
static struct BurnRomInfo md_rbibb4RomDesc[] = {
	{ "r.b.i. baseball 4 (usa).bin", 0x100000, 0xfecf9b94, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbibb4)
STD_ROM_FN(md_rbibb4)

struct BurnDriver BurnDrvmd_rbibb4 = {
	"md_rbibb4", NULL, NULL, NULL, "1992",
	"R.B.I. Baseball 4 (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rbibb4RomInfo, md_rbibb4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// R.B.I. Baseball 4 (Prototype)
static struct BurnRomInfo md_rbibb4pRomDesc[] = {
	{ "r.b.i. baseball 4 (beta).bin", 0x100000, 0xf7420278, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbibb4p)
STD_ROM_FN(md_rbibb4p)

struct BurnDriver BurnDrvmd_rbibb4p = {
	"md_rbibb4p", "md_rbibb4", NULL, NULL, "1992",
	"R.B.I. Baseball 4 (Prototype)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rbibb4pRomInfo, md_rbibb4pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// R.B.I. Baseball 4 (Jpn)
static struct BurnRomInfo md_rbibb4jRomDesc[] = {
	{ "r.b.i. baseball 4 (jpn).bin", 0x100000, 0x8f4e1005, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbibb4j)
STD_ROM_FN(md_rbibb4j)

struct BurnDriver BurnDrvmd_rbibb4j = {
	"md_rbibb4j", "md_rbibb4", NULL, NULL, "1992",
	"R.B.I. Baseball 4 (Jpn)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rbibb4jRomInfo, md_rbibb4jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Race Drivin' (USA)
static struct BurnRomInfo md_racedrivRomDesc[] = {
	{ "race drivin' (usa).bin", 0x080000, 0xd737cf3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_racedriv)
STD_ROM_FN(md_racedriv)

struct BurnDriver BurnDrvmd_racedriv = {
	"md_racedriv", NULL, NULL, NULL, "1993",
	"Race Drivin' (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_racedrivRomInfo, md_racedrivRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Radical Rex (Euro)
static struct BurnRomInfo md_radrexRomDesc[] = {
	{ "radical rex (euro).bin", 0x100000, 0xd02d3282, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_radrex)
STD_ROM_FN(md_radrex)

struct BurnDriver BurnDrvmd_radrex = {
	"md_radrex", NULL, NULL, NULL, "1994",
	"Radical Rex (Euro)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_radrexRomInfo, md_radrexRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Radical Rex (USA)
static struct BurnRomInfo md_radrexuRomDesc[] = {
	{ "radical rex (usa).bin", 0x100000, 0x2e6eec7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_radrexu)
STD_ROM_FN(md_radrexu)

struct BurnDriver BurnDrvmd_radrexu = {
	"md_radrexu", "md_radrex", NULL, NULL, "1994",
	"Radical Rex (USA)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_radrexuRomInfo, md_radrexuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Radical Rex (Prototype)
static struct BurnRomInfo md_radrexpRomDesc[] = {
	{ "radical rex (prototype).bin", 0x100000, 0xbf2912e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_radrexp)
STD_ROM_FN(md_radrexp)

struct BurnDriver BurnDrvmd_radrexp = {
	"md_radrexp", "md_radrex", NULL, NULL, "1994",
	"Radical Rex (Prototype)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_radrexpRomInfo, md_radrexpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Raiden Trad (USA) ~ Raiden Densetsu (Japan)
static struct BurnRomInfo md_raidenRomDesc[] = {
	{ "raiden trad -- raiden densetsu (usa, jpn).bin", 0x100000, 0xf839a811, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_raiden)
STD_ROM_FN(md_raiden)

struct BurnDriver BurnDrvmd_raiden = {
	"md_raiden", NULL, NULL, NULL, "1991",
	"Raiden Trad (USA) ~ Raiden Densetsu (Japan)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_raidenRomInfo, md_raidenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rainbow Islands Extra (Japan)
static struct BurnRomInfo md_rbislandRomDesc[] = {
	{ "rainbow islands extra (jpn).bin", 0x080000, 0xc74dcb35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbisland)
STD_ROM_FN(md_rbisland)

struct BurnDriver BurnDrvmd_rbisland = {
	"md_rbisland", NULL, NULL, NULL, "1990",
	"Rainbow Islands Extra (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rbislandRomInfo, md_rbislandRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rambo III (World, v1.1)
static struct BurnRomInfo md_rambo3RomDesc[] = {
	{ "rambo iii (world) (v1.1).bin", 0x040000, 0x4d47a647, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rambo3)
STD_ROM_FN(md_rambo3)

struct BurnDriver BurnDrvmd_rambo3 = {
	"md_rambo3", NULL, NULL, NULL, "1989",
	"Rambo III (World, v1.1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_rambo3RomInfo, md_rambo3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rambo III (World)
static struct BurnRomInfo md_rambo3aRomDesc[] = {
	{ "mpr-12651.bin", 0x040000, 0x2232f03d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rambo3a)
STD_ROM_FN(md_rambo3a)

struct BurnDriver BurnDrvmd_rambo3a = {
	"md_rambo3a", "md_rambo3", NULL, NULL, "1989",
	"Rambo III (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_rambo3aRomInfo, md_rambo3aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rampart (USA)
static struct BurnRomInfo md_rampartRomDesc[] = {
	{ "rampart (usa).bin", 0x080000, 0x9c4dd057, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rampart)
STD_ROM_FN(md_rampart)

struct BurnDriver BurnDrvmd_rampart = {
	"md_rampart", NULL, NULL, NULL, "1991",
	"Rampart (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_rampartRomInfo, md_rampartRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rampart (Japan, Korea)
static struct BurnRomInfo md_rampartjRomDesc[] = {
	{ "rampart (jpn, kor).bin", 0x080000, 0x16ead64c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rampartj)
STD_ROM_FN(md_rampartj)

struct BurnDriver BurnDrvmd_rampartj = {
	"md_rampartj", "md_rampart", NULL, NULL, "1992",
	"Rampart (Japan, Korea)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_rampartjRomInfo, md_rampartjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ranger-X (Euro)
static struct BurnRomInfo md_rangerxRomDesc[] = {
	{ "ranger-x (euro).bin", 0x100000, 0xb8c04804, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rangerx)
STD_ROM_FN(md_rangerx)

struct BurnDriver BurnDrvmd_rangerx = {
	"md_rangerx", NULL, NULL, NULL, "1993",
	"Ranger-X (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rangerxRomInfo, md_rangerxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ranger-X (USA)
static struct BurnRomInfo md_rangerxuRomDesc[] = {
	{ "ranger-x (usa).bin", 0x100000, 0x55915915, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rangerxu)
STD_ROM_FN(md_rangerxu)

struct BurnDriver BurnDrvmd_rangerxu = {
	"md_rangerxu", "md_rangerx", NULL, NULL, "1993",
	"Ranger-X (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rangerxuRomInfo, md_rangerxuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ex-Ranza (Japan)
static struct BurnRomInfo md_exranzaRomDesc[] = {
	{ "mpr-15585.bin", 0x100000, 0x349bb68d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exranza)
STD_ROM_FN(md_exranza)

struct BurnDriver BurnDrvmd_exranza = {
	"md_exranza", "md_rangerx", NULL, NULL, "1993",
	"Ex-Ranza (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_exranzaRomInfo, md_exranzaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ex-Ranza (Japan, Prototype)
static struct BurnRomInfo md_exranzapRomDesc[] = {
	{ "ex-ranza (jpn) (beta).bin", 0x100000, 0xc642fdf4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_exranzap)
STD_ROM_FN(md_exranzap)

struct BurnDriver BurnDrvmd_exranzap = {
	"md_exranzap", "md_rangerx", NULL, NULL, "1993",
	"Ex-Ranza (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_exranzapRomInfo, md_exranzapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ransei no Hasha (Japan)
static struct BurnRomInfo md_ranseiRomDesc[] = {
	{ "ransei no hasha (jpn).bin", 0x100000, 0xa9a0083d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ransei)
STD_ROM_FN(md_ransei)

struct BurnDriver BurnDrvmd_ransei = {
	"md_ransei", NULL, NULL, NULL, "1991",
	"Ransei no Hasha (Japan)\0", NULL, "Asmik Ace", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_ranseiRomInfo, md_ranseiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rastan Saga II (USA)
static struct BurnRomInfo md_rastan2RomDesc[] = {
	{ "rastan saga ii (usa).bin", 0x080000, 0xc7ee8965, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rastan2)
STD_ROM_FN(md_rastan2)

struct BurnDriver BurnDrvmd_rastan2 = {
	"md_rastan2", NULL, NULL, NULL, "1990",
	"Rastan Saga II (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rastan2RomInfo, md_rastan2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rastan Saga II (Japan)
static struct BurnRomInfo md_rastan2jRomDesc[] = {
	{ "rastan saga ii (jpn).bin", 0x080000, 0xebacfb5a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rastan2j)
STD_ROM_FN(md_rastan2j)

struct BurnDriver BurnDrvmd_rastan2j = {
	"md_rastan2j", "md_rastan2", NULL, NULL, "1990",
	"Rastan Saga II (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rastan2jRomInfo, md_rastan2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Red Zone (Euro, USA)
static struct BurnRomInfo md_redzoneRomDesc[] = {
	{ "red zone (euro, usa).bin", 0x200000, 0x56512ee5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_redzone)
STD_ROM_FN(md_redzone)

struct BurnDriver BurnDrvmd_redzone = {
	"md_redzone", NULL, NULL, NULL, "1994",
	"Red Zone (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_redzoneRomInfo, md_redzoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stimpy's Invention Starring Starring Ren Hoėk & Stimpy (Euro)
static struct BurnRomInfo md_renstimRomDesc[] = {
	{ "ren & stimpy show presents stimpy's invention, the (euro).bin", 0x100000, 0xc276c220, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_renstim)
STD_ROM_FN(md_renstim)

struct BurnDriver BurnDrvmd_renstim = {
	"md_renstim", NULL, NULL, NULL, "1993",
	"Stimpy's Invention Starring Starring Ren Hoek & Stimpy (Euro)\0", NULL, "Sega", "Sega Megadrive",
	L"Stimpy's Invention Starring Starring Ren Ho\u00EBk & Stimpy (Euro)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_renstimRomInfo, md_renstimRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stimpy's Invention Starring Starring Ren Hoėk & Stimpy (USA)
static struct BurnRomInfo md_renstimuRomDesc[] = {
	{ "ren & stimpy show presents stimpy's invention, the (usa).bin", 0x100000, 0xd9503ba5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_renstimu)
STD_ROM_FN(md_renstimu)

struct BurnDriver BurnDrvmd_renstimu = {
	"md_renstimu", "md_renstim", NULL, NULL, "1993",
	"Stimpy's Invention Starring Starring Ren Hoek & Stimpy (USA)\0", NULL, "Sega", "Sega Megadrive",
	L"Stimpy's Invention Starring Starring Ren Ho\u00EBk & Stimpy (USA)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_renstimuRomInfo, md_renstimuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stimpy's Invention Starring Starring Ren Hoėk & Stimpy (USA, Prototype)
static struct BurnRomInfo md_renstimupRomDesc[] = {
	{ "ren & stimpy show presents stimpy's invention, the (usa) (beta).bin", 0x100000, 0xfcb86336, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_renstimup)
STD_ROM_FN(md_renstimup)

struct BurnDriver BurnDrvmd_renstimup = {
	"md_renstimup", "md_renstim", NULL, NULL, "1993",
	"Stimpy's Invention Starring Starring Ren Hoek & Stimpy (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	L"Stimpy's Invention Starring Starring Ren Ho\u00EBk & Stimpy (USA, Prototype)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_renstimupRomInfo, md_renstimupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rent a Hero (Japan)
static struct BurnRomInfo md_rentheroRomDesc[] = {
	{ "mpr-14187.bin", 0x100000, 0x2e515f82, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_renthero)
STD_ROM_FN(md_renthero)

struct BurnDriver BurnDrvmd_renthero = {
	"md_renthero", NULL, NULL, NULL, "1991",
	"Rent a Hero (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_rentheroRomInfo, md_rentheroRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rent a Hero (Hack, English)
// Source: http://www.romhacking.net/translations/2309/
static struct BurnRomInfo md_rentheroeRomDesc[] = {
	{ "Rent a Hero T-Eng v0.98 (2021)(USC).bin", 1272010, 0xfb8c0353, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rentheroe)
STD_ROM_FN(md_rentheroe)

struct BurnDriver BurnDrvmd_rentheroe = {
	"md_rentheroe", "md_renthero", NULL, NULL, "2021",
	"Rent a Hero (Hack, English v0.98)\0", NULL, "USC", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_rentheroeRomInfo, md_rentheroeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Resq (Euro, Prototype)
static struct BurnRomInfo md_resqRomDesc[] = {
	{ "resq (euro) (prototype).bin", 0x100000, 0x558e35e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_resq)
STD_ROM_FN(md_resq)

struct BurnDriver BurnDrvmd_resq = {
	"md_resq", NULL, NULL, NULL, "199?",
	"Resq (Euro, Prototype)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_resqRomInfo, md_resqRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revenge of Shinobi, The (Euro, USA, Rev. B)
static struct BurnRomInfo md_revshinRomDesc[] = {
	{ "mpr-12930b.bin", 0x080000, 0x4d35ebe4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revshin)
STD_ROM_FN(md_revshin)

struct BurnDriver BurnDrvmd_revshin = {
	"md_revshin", NULL, NULL, NULL, "1989",
	"Revenge of Shinobi, The (Euro, USA, Rev. B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_revshinRomInfo, md_revshinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revenge of Shinobi, The (Euro, USA, Rev. A)
static struct BurnRomInfo md_revshin1RomDesc[] = {
	{ "revenge of shinobi, the (euro, usa) (rev a).bin", 0x080000, 0xfe91ab7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revshin1)
STD_ROM_FN(md_revshin1)

struct BurnDriver BurnDrvmd_revshin1 = {
	"md_revshin1", "md_revshin", NULL, NULL, "1989",
	"Revenge of Shinobi, The (Euro, USA, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_revshin1RomInfo, md_revshin1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revenge of Shinobi, The (Euro, USA)
static struct BurnRomInfo md_revshin2RomDesc[] = {
	{ "revenge of shinobi, the (euro, usa).bin", 0x080000, 0x05f27994, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revshin2)
STD_ROM_FN(md_revshin2)

struct BurnDriver BurnDrvmd_revshin2 = {
	"md_revshin2", "md_revshin", NULL, NULL, "1989",
	"Revenge of Shinobi, The (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_revshin2RomInfo, md_revshin2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revenge of Shinobi, The (Prototype, 19890821)
static struct BurnRomInfo md_revshinp1RomDesc[] = {
	{ "revenge of shinobi, the (prototype - aug 21, 1989).bin", 0x080000, 0x370253d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revshinp1)
STD_ROM_FN(md_revshinp1)

struct BurnDriver BurnDrvmd_revshinp1 = {
	"md_revshinp1", "md_revshin", NULL, NULL, "1989",
	"Revenge of Shinobi, The (Prototype, 19890821)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_revshinp1RomInfo, md_revshinp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revenge of Shinobi, The (Prototype, 19900201)
static struct BurnRomInfo md_revshinp2RomDesc[] = {
	{ "revenge of shinobi, the (prototype - feb 1, 1990).bin", 0x080000, 0xe488eb46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revshinp2)
STD_ROM_FN(md_revshinp2)

struct BurnDriver BurnDrvmd_revshinp2 = {
	"md_revshinp2", "md_revshin", NULL, NULL, "1989",
	"Revenge of Shinobi, The (Prototype, 19900201)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_revshinp2RomInfo, md_revshinp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Shinobi, The (Japan)
static struct BurnRomInfo md_supshinRomDesc[] = {
	{ "mpr-12675.bin", 0x080000, 0x5c7e5ea6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supshin)
STD_ROM_FN(md_supshin)

struct BurnDriver BurnDrvmd_supshin = {
	"md_supshin", "md_revshin", NULL, NULL, "1989",
	"Super Shinobi, The (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_supshinRomInfo, md_supshinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revolution X (Euro, USA)
static struct BurnRomInfo md_revxRomDesc[] = {
	{ "revolution x (euro, usa).bin", 0x400000, 0x5fb0c5d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revx)
STD_ROM_FN(md_revx)

struct BurnDriver BurnDrvmd_revx = {
	"md_revx", NULL, NULL, NULL, "1995",
	"Revolution X (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_revxRomInfo, md_revxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's BusyTown (USA)
static struct BurnRomInfo md_rsbtRomDesc[] = {
	{ "richard scarry's busytown (usa).bin", 0x200000, 0x7bb60c3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbt)
STD_ROM_FN(md_rsbt)

struct BurnDriver BurnDrvmd_rsbt = {
	"md_rsbt", NULL, NULL, NULL, "1994",
	"Richard Scarry's BusyTown (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtRomInfo, md_rsbtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940809)
static struct BurnRomInfo md_rsbtp6RomDesc[] = {
	{ "richard scarry's busytown (prototype - aug 09, 1994).bin", 0x1fecec, 0xc48cbc30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp6)
STD_ROM_FN(md_rsbtp6)

struct BurnDriver BurnDrvmd_rsbtp6 = {
	"md_rsbtp6", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940809)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp6RomInfo, md_rsbtp6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940815)
static struct BurnRomInfo md_rsbtp5RomDesc[] = {
	{ "richard scarry's busytown (prototype - aug 15, 1994).bin", 0x200000, 0x650ed917, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp5)
STD_ROM_FN(md_rsbtp5)

struct BurnDriver BurnDrvmd_rsbtp5 = {
	"md_rsbtp5", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940815)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp5RomInfo, md_rsbtp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940816-B)
static struct BurnRomInfo md_rsbtp4RomDesc[] = {
	{ "richard scarry's busytown (prototype - aug 16, 1994 - b).bin", 0x200000, 0x760cff62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp4)
STD_ROM_FN(md_rsbtp4)

struct BurnDriver BurnDrvmd_rsbtp4 = {
	"md_rsbtp4", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940816-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp4RomInfo, md_rsbtp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940817)
static struct BurnRomInfo md_rsbtp3RomDesc[] = {
	{ "richard scarry's busytown (prototype - aug 17, 1994).bin", 0x1ffaa4, 0x3b9c3f4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp3)
STD_ROM_FN(md_rsbtp3)

struct BurnDriver BurnDrvmd_rsbtp3 = {
	"md_rsbtp3", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940817)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp3RomInfo, md_rsbtp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940825)
static struct BurnRomInfo md_rsbtp2RomDesc[] = {
	{ "richard scarry's busytown (prototype - aug 25, 1994).bin", 0x200000, 0xa0c013ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp2)
STD_ROM_FN(md_rsbtp2)

struct BurnDriver BurnDrvmd_rsbtp2 = {
	"md_rsbtp2", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940825)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp2RomInfo, md_rsbtp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940826)
static struct BurnRomInfo md_rsbtp1RomDesc[] = {
	{ "richard scarry's busytown (prototype - aug 26, 1994).bin", 0x200000, 0x1ad270f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp1)
STD_ROM_FN(md_rsbtp1)

struct BurnDriver BurnDrvmd_rsbtp1 = {
	"md_rsbtp1", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940826)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp1RomInfo, md_rsbtp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Richard Scarry's Busytown (Prototype, 19940721)
static struct BurnRomInfo md_rsbtp7RomDesc[] = {
	{ "richard scarry's busytown (prototype - jul 21, 1994).bin", 0x1f3008, 0x1e92d6ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rsbtp7)
STD_ROM_FN(md_rsbtp7)

struct BurnDriver BurnDrvmd_rsbtp7 = {
	"md_rsbtp7", "md_rsbt", NULL, NULL, "1994",
	"Richard Scarry's Busytown (Prototype, 19940721)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_rsbtp7RomInfo, md_rsbtp7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Riddle Wired (Japan, SegaNet)
static struct BurnRomInfo md_riddleRomDesc[] = {
	{ "riddle wired (jpn) (sn).bin", 0x040000, 0xfae3d720, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_riddle)
STD_ROM_FN(md_riddle)

struct BurnDriver BurnDrvmd_riddle = {
	"md_riddle", NULL, NULL, NULL, "1991",
	"Riddle Wired (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_riddleRomInfo, md_riddleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rings of Power (Euro, USA)
static struct BurnRomInfo md_ringspowRomDesc[] = {
	{ "rin09.bin", 0x100000, 0x41fcc497, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ringspow)
STD_ROM_FN(md_ringspow)

struct BurnDriver BurnDrvmd_ringspow = {
	"md_ringspow", NULL, NULL, NULL, "1991",
	"Rings of Power (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_EA_NHLPA, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_ringspowRomInfo, md_ringspowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rise of the Robots (Euro)
static struct BurnRomInfo md_riseroboRomDesc[] = {
	{ "es133-1_rise_of_the_robots.u1", 0x200000, 0xed583ef7, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
	{ "es133-2_rise_of_the_robots.u2", 0x100000, 0xfcf18470, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_200000  },
};

STD_ROM_PICK(md_riserobo)
STD_ROM_FN(md_riserobo)

struct BurnDriver BurnDrvmd_riserobo = {
	"md_riserobo", NULL, NULL, NULL, "1994",
	"Rise of the Robots (Euro)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_riseroboRomInfo, md_riseroboRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Risk (USA)
static struct BurnRomInfo md_riskRomDesc[] = {
	{ "risk (usa).bin", 0x080000, 0x80416d0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_risk)
STD_ROM_FN(md_risk)

struct BurnDriver BurnDrvmd_risk = {
	"md_risk", NULL, NULL, NULL, "1994",
	"Risk (USA)\0", NULL, "Parker Brothers", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_riskRomInfo, md_riskRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Risky Woods (Euro, USA)
static struct BurnRomInfo md_riskywRomDesc[] = {
	{ "risky woods (euro, usa).bin", 0x100000, 0xd975e93c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_riskyw)
STD_ROM_FN(md_riskyw)

struct BurnDriver BurnDrvmd_riskyw = {
	"md_riskyw", NULL, NULL, NULL, "1992",
	"Risky Woods (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_riskywRomInfo, md_riskywRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jashin Draxos (Japan, Korea)
static struct BurnRomInfo md_draxosRomDesc[] = {
	{ "jashin draxos (jpn, kor).bin", 0x100000, 0x1ea07af2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_draxos)
STD_ROM_FN(md_draxos)

struct BurnDriver BurnDrvmd_draxos = {
	"md_draxos", "md_riskyw", NULL, NULL, "1993",
	"Jashin Draxos (Japan, Korea)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_draxosRomInfo, md_draxosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Euro, USA, 199409)
static struct BurnRomInfo md_ristarRomDesc[] = {
	{ "ristar (euro, usa) (september 1994).bin", 0x200000, 0x6511aa61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristar)
STD_ROM_FN(md_ristar)

struct BurnDriver BurnDrvmd_ristar = {
	"md_ristar", NULL, NULL, NULL, "1994",
	"Ristar (Euro, USA, 199409)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarRomInfo, md_ristarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Euro, USA, 199408)
static struct BurnRomInfo md_ristar1RomDesc[] = {
	{ "ristar (euro, usa) (august 1994).bin", 0x200000, 0x9700139b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristar1)
STD_ROM_FN(md_ristar1)

struct BurnDriver BurnDrvmd_ristar1 = {
	"md_ristar1", "md_ristar", NULL, NULL, "1994",
	"Ristar (Euro, USA, 199408)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristar1RomInfo, md_ristar1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar - The Shooting Star (Japan, Korea)
static struct BurnRomInfo md_ristarjRomDesc[] = {
	{ "ristar - the shooting star (jpn, kor).bin", 0x200000, 0xce464f0e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristarj)
STD_ROM_FN(md_ristarj)

struct BurnDriver BurnDrvmd_ristarj = {
	"md_ristarj", "md_ristar", NULL, NULL, "1995",
	"Ristar - The Shooting Star (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarjRomInfo, md_ristarjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Prototype, 19940812)
static struct BurnRomInfo md_ristarp2RomDesc[] = {
	{ "ristar (prototype - aug 12, 1994).bin", 0x200000, 0x4371f046, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristarp2)
STD_ROM_FN(md_ristarp2)

struct BurnDriver BurnDrvmd_ristarp2 = {
	"md_ristarp2", "md_ristar", NULL, NULL, "1994",
	"Ristar (Prototype, 19940812)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarp2RomInfo, md_ristarp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Prototype, 19940826)
static struct BurnRomInfo md_ristarp1RomDesc[] = {
	{ "ristar (prototype - aug 26, 1994).bin", 0x200000, 0xd0c74fdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristarp1)
STD_ROM_FN(md_ristarp1)

struct BurnDriver BurnDrvmd_ristarp1 = {
	"md_ristarp1", "md_ristar", NULL, NULL, "1994",
	"Ristar (Prototype, 19940826)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarp1RomInfo, md_ristarp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Prototype, 19940701)
static struct BurnRomInfo md_ristarp4RomDesc[] = {
	{ "ristar (prototype - jul 01, 1994).bin", 0x200000, 0x7c5c7a0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristarp4)
STD_ROM_FN(md_ristarp4)

struct BurnDriver BurnDrvmd_ristarp4 = {
	"md_ristarp4", "md_ristar", NULL, NULL, "1994",
	"Ristar (Prototype, 19940701)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarp4RomInfo, md_ristarp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Prototype, 19940718)
static struct BurnRomInfo md_ristarp3RomDesc[] = {
	{ "ristar (prototype - jul 18, 1994).bin", 0x200000, 0x6becccc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristarp3)
STD_ROM_FN(md_ristarp3)

struct BurnDriver BurnDrvmd_ristarp3 = {
	"md_ristarp3", "md_ristar", NULL, NULL, "1994",
	"Ristar (Prototype, 19940718)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarp3RomInfo, md_ristarp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash (Euro, USA)
static struct BurnRomInfo md_roadrashRomDesc[] = {
	{ "road rash (euro, usa).bin", 0x0c0000, 0xdea53d19, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roadrash)
STD_ROM_FN(md_roadrash)

struct BurnDriver BurnDrvmd_roadrash = {
	"md_roadrash", NULL, NULL, NULL, "1991",
	"Road Rash (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_roadrashRomInfo, md_roadrashRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash II (Euro, USA, v1.2)
static struct BurnRomInfo md_rrash2RomDesc[] = {
	{ "road rash ii (euro, usa) (v1.2).bin", 0x100000, 0x0876e992, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash2)
STD_ROM_FN(md_rrash2)

struct BurnDriver BurnDrvmd_rrash2 = {
	"md_rrash2", NULL, NULL, NULL, "1992",
	"Road Rash II (Euro, USA, v1.2)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash2RomInfo, md_rrash2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash II (Euro, USA)
static struct BurnRomInfo md_rrash2aRomDesc[] = {
	{ "rr205.bin", 0x100000, 0x7b29c209, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash2a)
STD_ROM_FN(md_rrash2a)

struct BurnDriver BurnDrvmd_rrash2a = {
	"md_rrash2a", "md_rrash2", NULL, NULL, "1992",
	"Road Rash II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash2aRomInfo, md_rrash2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash II (Japan)
static struct BurnRomInfo md_rrash2jRomDesc[] = {
	{ "road rash ii (jpn).bin", 0x100000, 0x9a5723b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash2j)
STD_ROM_FN(md_rrash2j)

struct BurnDriver BurnDrvmd_rrash2j = {
	"md_rrash2j", "md_rrash2", NULL, NULL, "1993",
	"Road Rash II (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash2jRomInfo, md_rrash2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road 3 Rash - Tour de Force (Euro, USA)
static struct BurnRomInfo md_rrash3RomDesc[] = {
	{ "rr3b3.bin", 0x200000, 0x15785956, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash3)
STD_ROM_FN(md_rrash3)

struct BurnDriver BurnDrvmd_rrash3 = {
	"md_rrash3", NULL, NULL, NULL, "1995",
	"Road 3 Rash - Tour de Force (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash3RomInfo, md_rrash3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road 3 Rash - World Warriors (USA, Prototype)
static struct BurnRomInfo md_rrash3pRomDesc[] = {
	{ "road rash 3 (usa) (alpha).bin", 0x200000, 0xb6626083, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash3p)
STD_ROM_FN(md_rrash3p)

struct BurnDriver BurnDrvmd_rrash3p = {
	"md_rrash3p", "md_rrash3", NULL, NULL, "1995",
	"Road 3 Rash - World Warriors (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash3pRomInfo, md_rrash3pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoadBlasters (USA)
static struct BurnRomInfo md_roadblstRomDesc[] = {
	{ "roadblasters (usa).bin", 0x080000, 0xec6cd5f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roadblst)
STD_ROM_FN(md_roadblst)

struct BurnDriver BurnDrvmd_roadblst = {
	"md_roadblst", NULL, NULL, NULL, "1991",
	"RoadBlasters (USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_SHOOT, 0,
	MegadriveGetZipName, md_roadblstRomInfo, md_roadblstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoadBlasters (Prototype, 19910627)
static struct BurnRomInfo md_roadblstpRomDesc[] = {
	{ "roadblasters (prototype - jun 27, 1991).bin", 0x080000, 0xe4ef86b9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roadblstp)
STD_ROM_FN(md_roadblstp)

struct BurnDriver BurnDrvmd_roadblstp = {
	"md_roadblstp", "md_roadblst", NULL, NULL, "1991",
	"RoadBlasters (Prototype, 19910627)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_SHOOT, 0,
	MegadriveGetZipName, md_roadblstpRomInfo, md_roadblstpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoadBlasters (Japan)
static struct BurnRomInfo md_roadblstjRomDesc[] = {
	{ "roadblasters (jpn).bin", 0x080000, 0xa0015440, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roadblstj)
STD_ROM_FN(md_roadblstj)

struct BurnDriver BurnDrvmd_roadblstj = {
	"md_roadblstj", "md_roadblst", NULL, NULL, "1992",
	"RoadBlasters (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_SHOOT, 0,
	MegadriveGetZipName, md_roadblstjRomInfo, md_roadblstjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoboCop 3 (Euro, USA)
static struct BurnRomInfo md_robocop3RomDesc[] = {
	{ "robocop 3 (euro, usa).bin", 0x080000, 0x34fb7b27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robocop3)
STD_ROM_FN(md_robocop3)

struct BurnDriver BurnDrvmd_robocop3 = {
	"md_robocop3", NULL, NULL, NULL, "1993",
	"RoboCop 3 (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robocop3RomInfo, md_robocop3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoboCop versus The Terminator (Euro)
static struct BurnRomInfo md_robotermRomDesc[] = {
	{ "robocop versus the terminator (euro).bin", 0x200000, 0x85a93f8d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roboterm)
STD_ROM_FN(md_roboterm)

struct BurnDriver BurnDrvmd_roboterm = {
	"md_roboterm", NULL, NULL, NULL, "1994",
	"RoboCop versus The Terminator (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robotermRomInfo, md_robotermRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoboCop versus The Terminator (Japan, Korea)
static struct BurnRomInfo md_robotermjRomDesc[] = {
	{ "robocop versus the terminator (jpn, kor).bin", 0x200000, 0xd444e1f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robotermj)
STD_ROM_FN(md_robotermj)

struct BurnDriver BurnDrvmd_robotermj = {
	"md_robotermj", "md_roboterm", NULL, NULL, "1994",
	"RoboCop versus The Terminator (Japan, Korea)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robotermjRomInfo, md_robotermjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoboCop versus The Terminator (Prototype)
static struct BurnRomInfo md_robotermpRomDesc[] = {
	{ "robocop versus the terminator (beta).bin", 0x200000, 0x2487049f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robotermp)
STD_ROM_FN(md_robotermp)

struct BurnDriver BurnDrvmd_robotermp = {
	"md_robotermp", "md_roboterm", NULL, NULL, "1994",
	"RoboCop versus The Terminator (Prototype)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robotermpRomInfo, md_robotermpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Robocop Versus The Terminator (Prototype, Alt)
static struct BurnRomInfo md_robotermp1RomDesc[] = {
	{ "robocop versus the terminator (beta) (alt).bin", 0x200000, 0xecebff29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robotermp1)
STD_ROM_FN(md_robotermp1)

struct BurnDriver BurnDrvmd_robotermp1 = {
	"md_robotermp1", "md_roboterm", NULL, NULL, "1994",
	"Robocop Versus The Terminator (Prototype, Alt)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robotermp1RomInfo, md_robotermp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RoboCop versus The Terminator (USA)
static struct BurnRomInfo md_robotermuRomDesc[] = {
	{ "robocop versus the terminator (usa).bin", 0x200000, 0xbbad77a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robotermu)
STD_ROM_FN(md_robotermu)

struct BurnDriver BurnDrvmd_robotermu = {
	"md_robotermu", "md_roboterm", NULL, NULL, "1994",
	"RoboCop versus The Terminator (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robotermuRomInfo, md_robotermuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Robot Battler (Japan, SegaNet)
static struct BurnRomInfo md_robotbatRomDesc[] = {
	{ "robot battler (jpn) (sn).bin", 0x040000, 0xfdf23eff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robotbat)
STD_ROM_FN(md_robotbat)

struct BurnDriver BurnDrvmd_robotbat = {
	"md_robotbat", NULL, NULL, NULL, "1991",
	"Robot Battler (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_robotbatRomInfo, md_robotbatRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Robot Wreckage (USA, Prototype)
static struct BurnRomInfo md_robowrekRomDesc[] = {
	{ "robot wreckage (usa) (prototype).bin", 0x100000, 0xc67ddb14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robowrek)
STD_ROM_FN(md_robowrek)

struct BurnDriver BurnDrvmd_robowrek = {
	"md_robowrek", NULL, NULL, NULL, "199?",
	"Robot Wreckage (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_robowrekRomInfo, md_robowrekRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rock n' Roll Racing (Euro)
static struct BurnRomInfo md_rnrracinRomDesc[] = {
	{ "rock n' roll racing (euro).bin", 0x100000, 0xbc5a0562, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rnrracin)
STD_ROM_FN(md_rnrracin)

struct BurnDriver BurnDrvmd_rnrracin = {
	"md_rnrracin", NULL, NULL, NULL, "1994",
	"Rock n' Roll Racing (Euro)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rnrracinRomInfo, md_rnrracinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rock n' Roll Racing (USA)
static struct BurnRomInfo md_rnrracinuRomDesc[] = {
	{ "rock n' roll racing (usa).bin", 0x100000, 0x6abab577, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rnrracinu)
STD_ROM_FN(md_rnrracinu)

struct BurnDriver BurnDrvmd_rnrracinu = {
	"md_rnrracinu", "md_rnrracin", NULL, NULL, "1994",
	"Rock n' Roll Racing (USA)\0", NULL, "Interplay", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rnrracinuRomInfo, md_rnrracinuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rocket Knight Adventures (Euro)
static struct BurnRomInfo md_rocketRomDesc[] = {
	{ "fx004.bin", 0x100000, 0x8eedfd51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rocket)
STD_ROM_FN(md_rocket)

struct BurnDriver BurnDrvmd_rocket = {
	"md_rocket", NULL, NULL, NULL, "1993",
	"Rocket Knight Adventures (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_rocketRomInfo, md_rocketRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rocket Knight Adventures (Japan)
static struct BurnRomInfo md_rocketjRomDesc[] = {
	{ "rocket knight adventures (jpn).bin", 0x100000, 0xd1c8c1c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rocketj)
STD_ROM_FN(md_rocketj)

struct BurnDriver BurnDrvmd_rocketj = {
	"md_rocketj", "md_rocket", NULL, NULL, "1993",
	"Rocket Knight Adventures (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_rocketjRomInfo, md_rocketjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rocket Knight Adventures (USA)
static struct BurnRomInfo md_rocketuRomDesc[] = {
	{ "rocket knight adventures (usa).bin", 0x100000, 0xa6efec47, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rocketu)
STD_ROM_FN(md_rocketu)

struct BurnDriver BurnDrvmd_rocketu = {
	"md_rocketu", "md_rocket", NULL, NULL, "1993",
	"Rocket Knight Adventures (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_rocketuRomInfo, md_rocketuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Roger Clements MVP Baseball (USA)
static struct BurnRomInfo md_mvpbbRomDesc[] = {
	{ "roger clements mvp baseball (usa).bin", 0x100000, 0x83699e34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mvpbb)
STD_ROM_FN(md_mvpbb)

struct BurnDriver BurnDrvmd_mvpbb = {
	"md_mvpbb", NULL, NULL, NULL, "1992",
	"Roger Clements MVP Baseball (USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_mvpbbRomInfo, md_mvpbbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rolling Thunder 2 (Euro)
static struct BurnRomInfo md_rthun2RomDesc[] = {
	{ "rolling thunder 2 (euro).bin", 0x100000, 0xc440f292, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rthun2)
STD_ROM_FN(md_rthun2)

struct BurnDriver BurnDrvmd_rthun2 = {
	"md_rthun2", NULL, NULL, NULL, "1991",
	"Rolling Thunder 2 (Euro)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rthun2RomInfo, md_rthun2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rolling Thunder 2 (Japan)
static struct BurnRomInfo md_rthun2jRomDesc[] = {
	{ "rolling thunder 2 (jpn).bin", 0x100000, 0x965b2628, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rthun2j)
STD_ROM_FN(md_rthun2j)

struct BurnDriver BurnDrvmd_rthun2j = {
	"md_rthun2j", "md_rthun2", NULL, NULL, "1991",
	"Rolling Thunder 2 (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rthun2jRomInfo, md_rthun2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rolling Thunder 2 (USA)
static struct BurnRomInfo md_rthun2uRomDesc[] = {
	{ "rolling thunder 2 (usa).bin", 0x100000, 0x3ace429b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rthun2u)
STD_ROM_FN(md_rthun2u)

struct BurnDriver BurnDrvmd_rthun2u = {
	"md_rthun2u", "md_rthun2", NULL, NULL, "1991",
	"Rolling Thunder 2 (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rthun2uRomInfo, md_rthun2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rolling Thunder 3 (USA)
static struct BurnRomInfo md_rthun3RomDesc[] = {
	{ "rolling thunder 3 (usa).bin", 0x180000, 0x64fb13aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rthun3)
STD_ROM_FN(md_rthun3)

struct BurnDriver BurnDrvmd_rthun3 = {
	"md_rthun3", NULL, NULL, NULL, "1993",
	"Rolling Thunder 3 (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rthun3RomInfo, md_rthun3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rolo to the Rescue (Euro, USA)
static struct BurnRomInfo md_roloRomDesc[] = {
	{ "rolo to the rescue (euro, usa).bin", 0x080000, 0x306861a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rolo)
STD_ROM_FN(md_rolo)

struct BurnDriver BurnDrvmd_rolo = {
	"md_rolo", NULL, NULL, NULL, "1992",
	"Rolo to the Rescue (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_roloRomInfo, md_roloRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zou! Zou! Zou! Rescue Daisakusen (Japan)
static struct BurnRomInfo md_zouzouRomDesc[] = {
	{ "zou! zou! zou! rescue daisakusen (jpn).bin", 0x080000, 0x1a761e67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zouzou)
STD_ROM_FN(md_zouzou)

struct BurnDriver BurnDrvmd_zouzou = {
	"md_zouzou", "md_rolo", NULL, NULL, "1993",
	"Zou! Zou! Zou! Rescue Daisakusen (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zouzouRomInfo, md_zouzouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Romance of the Three Kingdoms II (USA)
static struct BurnRomInfo md_roman3k2RomDesc[] = {
	{ "romance of the three kingdoms ii (usa).bin", 0x100000, 0x3d842478, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roman3k2)
STD_ROM_FN(md_roman3k2)

struct BurnDriver BurnDrvmd_roman3k2 = {
	"md_roman3k2", NULL, NULL, NULL, "1991",
	"Romance of the Three Kingdoms II (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_roman3k2RomInfo, md_roman3k2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sangokushi II (Japan)
static struct BurnRomInfo md_sangoku2RomDesc[] = {
	{ "mpr-14455.bin", 0x100000, 0x437ba326, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sangoku2)
STD_ROM_FN(md_sangoku2)

struct BurnDriver BurnDrvmd_sangoku2 = {
	"md_sangoku2", "md_roman3k2", NULL, NULL, "1991",
	"Sangokushi II (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_sangoku2RomInfo, md_sangoku2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Romance of the Three Kingdoms III - Dragon of Destiny (USA)
static struct BurnRomInfo md_roman3k3RomDesc[] = {
	{ "romance of the three kingdoms iii - dragon of destiny (usa).bin", 0x140000, 0x7e41c8fe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roman3k3)
STD_ROM_FN(md_roman3k3)

struct BurnDriver BurnDrvmd_roman3k3 = {
	"md_roman3k3", NULL, NULL, NULL, "1993",
	"Romance of the Three Kingdoms III - Dragon of Destiny (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_roman3k3RomInfo, md_roman3k3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sangokushi III (Japan)
static struct BurnRomInfo md_sangoku3RomDesc[] = {
	{ "sangokushi iii (jpn).bin", 0x180000, 0xa8de6aea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sangoku3)
STD_ROM_FN(md_sangoku3)

struct BurnDriver BurnDrvmd_sangoku3 = {
	"md_sangoku3", "md_roman3k3", NULL, NULL, "1992",
	"Sangokushi III (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_sangoku3RomInfo, md_sangoku3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rugby World Cup 1995 (Euro, USA)
static struct BurnRomInfo md_rugbywcRomDesc[] = {
	{ "rugby world cup 1995 (euro, usa).bin", 0x200000, 0x61f90a8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rugbywc)
STD_ROM_FN(md_rugbywc)

struct BurnDriver BurnDrvmd_rugbywc = {
	"md_rugbywc", NULL, NULL, NULL, "1994",
	"Rugby World Cup 1995 (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rugbywcRomInfo, md_rugbywcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sagaia (USA)
static struct BurnRomInfo md_sagaiaRomDesc[] = {
	{ "sagaia (usa).bin", 0x100000, 0xf1e22f43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sagaia)
STD_ROM_FN(md_sagaia)

struct BurnDriver BurnDrvmd_sagaia = {
	"md_sagaia", NULL, NULL, NULL, "1991",
	"Sagaia (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_sagaiaRomInfo, md_sagaiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Darius II (Japan)
static struct BurnRomInfo md_darius2RomDesc[] = {
	{ "darius ii (jpn).bin", 0x100000, 0x25dfe62a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_darius2)
STD_ROM_FN(md_darius2)

struct BurnDriver BurnDrvmd_darius2 = {
	"md_darius2", "md_sagaia", NULL, NULL, "1990",
	"Darius II (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_darius2RomInfo, md_darius2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bishoujo Senshi Sailor Moon (Japan)
static struct BurnRomInfo md_sailormnRomDesc[] = {
	{ "bishoujo senshi sailor moon (jpn).bin", 0x200000, 0x5e246938, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sailormn)
STD_ROM_FN(md_sailormn)

struct BurnDriver BurnDrvmd_sailormn = {
	"md_sailormn", NULL, NULL, NULL, "1994",
	"Bishoujo Senshi Sailor Moon (Japan)\0", NULL, "Ma-Ba", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sailormnRomInfo, md_sailormnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bishoujo Senshi Sailor Moon (Hack, English)
// Source: https://www.romhacking.net/translations/3544/
static struct BurnRomInfo md_sailormneRomDesc[] = {
	{ "bishoujo senshi sailor moon (english translation).md", 0x400000, 0x48778add, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sailormne)
STD_ROM_FN(md_sailormne)

struct BurnDriver BurnDrvmd_sailormne = {
	"md_sailormne", "md_sailormn", NULL, NULL, "2018",
	"Bishoujo Senshi Sailor Moon (Hack, English)\0", NULL, "Supper", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sailormneRomInfo, md_sailormneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Saint Sword (USA)
static struct BurnRomInfo md_sswordRomDesc[] = {
	{ "saint sword (usa).bin", 0x080000, 0x44f66bff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssword)
STD_ROM_FN(md_ssword)

struct BurnDriver BurnDrvmd_ssword = {
	"md_ssword", NULL, NULL, NULL, "1991",
	"Saint Sword (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sswordRomInfo, md_sswordRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Saint Sword (Japan)
static struct BurnRomInfo md_sswordjRomDesc[] = {
	{ "saint sword (jpn).bin", 0x080000, 0x3960a00f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sswordj)
STD_ROM_FN(md_sswordj)

struct BurnDriver BurnDrvmd_sswordj = {
	"md_sswordj", "md_ssword", NULL, NULL, "1991",
	"Saint Sword (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sswordjRomInfo, md_sswordjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pete Sampras Tennis '96 (Euro, J-Cart)
static struct BurnRomInfo md_sampra96RomDesc[] = {
	{ "sampras tennis 96 (euro) (j-cart).bin", 0x200000, 0x14e3fb7b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sampra96)
STD_ROM_FN(md_sampra96)

struct BurnDriver BurnDrvmd_sampra96 = {
	"md_sampra96", NULL, NULL, NULL, "1995",
	"Pete Sampras Tennis '96 (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sampra96RomInfo, md_sampra96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Samurai Shodown (Euro)
static struct BurnRomInfo md_samshoRomDesc[] = {
	{ "samurai shodown (euro).bin", 0x300000, 0xc972014f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_samsho)
STD_ROM_FN(md_samsho)

struct BurnDriver BurnDrvmd_samsho = {
	"md_samsho", NULL, NULL, NULL, "1994",
	"Samurai Shodown (Euro)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_samshoRomInfo, md_samshoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Samurai Shodown (USA)
static struct BurnRomInfo md_samshouRomDesc[] = {
	{ "samurai shodown (usa).bin", 0x300000, 0x5bb8b2d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_samshou)
STD_ROM_FN(md_samshou)

struct BurnDriver BurnDrvmd_samshou = {
	"md_samshou", "md_samsho", NULL, NULL, "1994",
	"Samurai Shodown (USA)\0", NULL, "Takara", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_samshouRomInfo, md_samshouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Samurai Spirits II (China) (Unl)
static struct BurnRomInfo md_Samsho2RomDesc[] = {
	{ "Samurai Spirits II.md", 2097152, 0x2942f180, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Samsho2)
STD_ROM_FN(md_Samsho2)

struct BurnDriver Burnmd_Samsho2 = {
	"md_samsho2", NULL, NULL, NULL, "1998",
	"Samurai Spirits II (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_Samsho2RomInfo, md_Samsho2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Samurai Spirits (Japan)
static struct BurnRomInfo md_samspirRomDesc[] = {
	{ "samurai spirits (jpn).bin", 0x300000, 0x0ea2ae36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_samspir)
STD_ROM_FN(md_samspir)

struct BurnDriver BurnDrvmd_samspir = {
	"md_samspir", "md_samsho", NULL, NULL, "1994",
	"Samurai Spirits (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_samspirRomInfo, md_samspirRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// San Guo Yan Yi - Huo Shao Chi Bi (China) (Unl)
static struct BurnRomInfo md_SanguoyanRomDesc[] = {
	{ "San Guo Yan Yi - Huo Shao Chi Bi.md", 2097152, 0x3a71e961, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Sanguoyan)
STD_ROM_FN(md_Sanguoyan)

struct BurnDriver Burnmd_Sanguoyan = {
	"md_sanguoyan", NULL, NULL, NULL, "199?",
	"San Guo Yan Yi - Huo Shao Chi Bi (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REDCL_EN, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_SanguoyanRomInfo, md_SanguoyanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// San Guo Zhi Lie Zhuan - Luan Shi Qun Ying (China)
static struct BurnRomInfo md_sanguoRomDesc[] = {
	{ "san guo zhi lie zhuan - luan shi qun ying (chi).bin", 0x100000, 0x3b5cc398, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sanguo)
STD_ROM_FN(md_sanguo)

struct BurnDriver BurnDrvmd_sanguo = {
	"md_sanguo", "md_sangoret", NULL, NULL, "199?",
	"San Guo Zhi Lie Zhuan - Luan Shi Qun Ying (China)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_sanguoRomInfo, md_sanguoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// San Guo Zhi V (China) (Unl)
static struct BurnRomInfo md_sanguo5RomDesc[] = {
	{ "san guo zhi v (chi) (unl).bin", 0x200000, 0xcd7e53d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sanguo5)
STD_ROM_FN(md_sanguo5)

struct BurnDriver BurnDrvmd_sanguo5 = {
	"md_sanguo5", NULL, NULL, NULL, "199?",
	"San Guo Zhi V (China) (Unl)\0", NULL, "SKOB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_sanguo5RomInfo, md_sanguo5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// San San (Japan)
static struct BurnRomInfo md_sansanRomDesc[] = {
	{ "san san (japan).bin", 0x100000, 0x5b85deed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sansan)
STD_ROM_FN(md_sansan)

struct BurnDriver BurnDrvmd_sansan = {
	"md_sansan", NULL, NULL, NULL, "1994",
	"San San (Japan)\0", NULL, "San San Co.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_sansanRomInfo, md_sansanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sangokushi Retsuden - Ransei no Eiyuutachi (Japan)
static struct BurnRomInfo md_sangoretRomDesc[] = {
	{ "sangokushi retsuden - ransei no eiyuutachi (jpn).bin", 0x100000, 0x0f56785a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sangoret)
STD_ROM_FN(md_sangoret)

struct BurnDriver BurnDrvmd_sangoret = {
	"md_sangoret", NULL, NULL, NULL, "1991",
	"Sangokushi Retsuden - Ransei no Eiyuutachi (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_sangoretRomInfo, md_sangoretRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Saturday Night Slammasters (Euro)
static struct BurnRomInfo md_slammastRomDesc[] = {
	{ "saturday night slammasters (euro).bin", 0x400000, 0x08fa5a3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slammast)
STD_ROM_FN(md_slammast)

struct BurnDriver BurnDrvmd_slammast = {
	"md_slammast", NULL, NULL, NULL, "1994",
	"Saturday Night Slammasters (Euro)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_slammastRomInfo, md_slammastRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Saturday Night Slammasters (USA)
static struct BurnRomInfo md_slammastuRomDesc[] = {
	{ "saturday night slammasters (usa).bin", 0x400000, 0x2fb4eaba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slammastu)
STD_ROM_FN(md_slammastu)

struct BurnDriver BurnDrvmd_slammastu = {
	"md_slammastu", "md_slammast", NULL, NULL, "1994",
	"Saturday Night Slammasters (USA)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_slammastuRomInfo, md_slammastuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scooby-Doo Mystery (USA)
static struct BurnRomInfo md_scoobyRomDesc[] = {
	{ "scooby doo mystery (usa).bin", 0x200000, 0x7bb9dd9b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_scooby)
STD_ROM_FN(md_scooby)

struct BurnDriver BurnDrvmd_scooby = {
	"md_scooby", NULL, NULL, NULL, "1995",
	"Scooby-Doo Mystery (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_scoobyRomInfo, md_scoobyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Scrabble (Euro, Prototype)
static struct BurnRomInfo md_scrabbleRomDesc[] = {
	{ "scrabble (euro) (prototype).bin", 0x100000, 0x360b2610, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_scrabble)
STD_ROM_FN(md_scrabble)

struct BurnDriver BurnDrvmd_scrabble = {
	"md_scrabble", NULL, NULL, NULL, "199?",
	"Scrabble (Euro, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_scrabbleRomInfo, md_scrabbleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SeaQuest DSV (Euro)
static struct BurnRomInfo md_seaquestRomDesc[] = {
	{ "seaquest dsv (euro).bin", 0x200000, 0x0bb511bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_seaquest)
STD_ROM_FN(md_seaquest)

struct BurnDriver BurnDrvmd_seaquest = {
	"md_seaquest", NULL, NULL, NULL, "1994",
	"SeaQuest DSV (Euro)\0", NULL, "THQ", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_seaquestRomInfo, md_seaquestRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SeaQuest DSV (USA)
static struct BurnRomInfo md_seaquestuRomDesc[] = {
	{ "seaquest dsv (usa).bin", 0x200000, 0x25b05480, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_seaquestu)
STD_ROM_FN(md_seaquestu)

struct BurnDriver BurnDrvmd_seaquestu = {
	"md_seaquestu", "md_seaquest", NULL, NULL, "1994",
	"SeaQuest DSV (USA)\0", NULL, "Black Pearl", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_seaquestuRomInfo, md_seaquestuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Second Samurai, The (Euro)
static struct BurnRomInfo md_secondsRomDesc[] = {
	{ "second samurai (euro).bin", 0x100000, 0x78e92143, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_seconds)
STD_ROM_FN(md_seconds)

struct BurnDriver BurnDrvmd_seconds = {
	"md_seconds", NULL, NULL, NULL, "1994",
	"Second Samurai, The (Euro)\0", NULL, "Vivid Games - Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_secondsRomInfo, md_secondsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Sports 1 (Euro)
static struct BurnRomInfo md_segasprtRomDesc[] = {
	{ "sega sports 1 (euro).bin", 0x280000, 0x07fedaf1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_segasprt)
STD_ROM_FN(md_segasprt)

struct BurnDriver BurnDrvmd_segasprt = {
	"md_segasprt", NULL, NULL, NULL, "1995",
	"Sega Sports 1 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC | GBF_RACING, 0,
	MegadriveGetZipName, md_segasprtRomInfo, md_segasprtRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Top Five (Brazil)
static struct BurnRomInfo md_segatopRomDesc[] = {
	{ "sega top five (bra).bin", 0x200000, 0x61069069, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_segatop)
STD_ROM_FN(md_segatop)

struct BurnDriver BurnDrvmd_segatop = {
	"md_segatop", NULL, NULL, NULL, "199?",
	"Sega Top Five (Brazil)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC | GBF_PLATFORM | GBF_SHOOT, 0,
	MegadriveGetZipName, md_segatopRomInfo, md_segatopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sensible Soccer (Euro)
static struct BurnRomInfo md_sensibleRomDesc[] = {
	{ "mpr-16014.bin", 0x080000, 0xf9b396b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sensible)
STD_ROM_FN(md_sensible)

struct BurnDriver BurnDrvmd_sensible = {
	"md_sensible", NULL, NULL, NULL, "1993",
	"Sensible Soccer (Euro)\0", NULL, "Renegade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_sensibleRomInfo, md_sensibleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sensible Soccer (Prototype)
static struct BurnRomInfo md_sensiblepRomDesc[] = {
	{ "sensible soccer (beta).bin", 0x080000, 0xef52664d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sensiblep)
STD_ROM_FN(md_sensiblep)

struct BurnDriver BurnDrvmd_sensiblep = {
	"md_sensiblep", "md_sensible", NULL, NULL, "1993",
	"Sensible Soccer (Prototype)\0", NULL, "Renegade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_sensiblepRomInfo, md_sensiblepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sensible Soccer - International Edition (Euro)
static struct BurnRomInfo md_sensibieRomDesc[] = {
	{ "sensible soccer - international edition (euro).bin", 0x080000, 0x04e3bcca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sensibie)
STD_ROM_FN(md_sensibie)

struct BurnDriver BurnDrvmd_sensibie = {
	"md_sensibie", NULL, NULL, NULL, "1993",
	"Sensible Soccer - International Edition (Euro)\0", NULL, "Sony Imagesoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_sensibieRomInfo, md_sensibieRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sesame Street Counting Cafe (USA)
static struct BurnRomInfo md_sesameRomDesc[] = {
	{ "sesame street counting cafe (usa).bin", 0x100000, 0x0a4f48c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sesame)
STD_ROM_FN(md_sesame)

struct BurnDriver BurnDrvmd_sesame = {
	"md_sesame", NULL, NULL, NULL, "1994",
	"Sesame Street Counting Cafe (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_sesameRomInfo, md_sesameRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow Blasters (USA)
static struct BurnRomInfo md_shadowRomDesc[] = {
	{ "shadow blasters (usa).bin", 0x080000, 0x713d377b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadow)
STD_ROM_FN(md_shadow)

struct BurnDriver BurnDrvmd_shadow = {
	"md_shadow", NULL, NULL, NULL, "1990",
	"Shadow Blasters (USA)\0", NULL, "Sage's Creation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shadowRomInfo, md_shadowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shiten Myouou (Japan)
static struct BurnRomInfo md_shitenRomDesc[] = {
	{ "shiten myouou (jpn).bin", 0x080000, 0x7e729693, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shiten)
STD_ROM_FN(md_shiten)

struct BurnDriver BurnDrvmd_shiten = {
	"md_shiten", "md_shadow", NULL, NULL, "1990",
	"Shiten Myouou (Japan)\0", NULL, "Sigma", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shitenRomInfo, md_shitenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow Dancer - The Secret of Shinobi (World)
static struct BurnRomInfo md_shdancerRomDesc[] = {
	{ "mpr-13571.bin", 0x080000, 0xebe9ad10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shdancer)
STD_ROM_FN(md_shdancer)

struct BurnDriver BurnDrvmd_shdancer = {
	"md_shdancer", NULL, NULL, NULL, "1990",
	"Shadow Dancer - The Secret of Shinobi (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shdancerRomInfo, md_shdancerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow Dancer - The Secret of Shinobi (Prototype, 19901002)
static struct BurnRomInfo md_shdancerpRomDesc[] = {
	{ "shadow dancer - the secret of shinobi (prototype - oct 2, 1990).bin", 0x080000, 0x8497cd8d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shdancerp)
STD_ROM_FN(md_shdancerp)

struct BurnDriver BurnDrvmd_shdancerp = {
	"md_shdancerp", "md_shdancer", NULL, NULL, "1990",
	"Shadow Dancer - The Secret of Shinobi (Prototype, 19901002)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shdancerpRomInfo, md_shdancerpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow of the Beast (Euro, USA)
static struct BurnRomInfo md_beastRomDesc[] = {
	{ "sha01.bin", 0x100000, 0xbd385c27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beast)
STD_ROM_FN(md_beast)

struct BurnDriver BurnDrvmd_beast = {
	"md_beast", NULL, NULL, NULL, "1991",
	"Shadow of the Beast (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beastRomInfo, md_beastRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow of the Beast - Mashou no Okite (Japan)
static struct BurnRomInfo md_beastjRomDesc[] = {
	{ "shadow of the beast - mashou no okite (jpn).bin", 0x100000, 0x0cd09d31, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beastj)
STD_ROM_FN(md_beastj)

struct BurnDriver BurnDrvmd_beastj = {
	"md_beastj", "md_beast", NULL, NULL, "1992",
	"Shadow of the Beast - Mashou no Okite (Japan)\0", NULL, "Victor Interactive Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beastjRomInfo, md_beastjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow of the Beast II (Euro, USA)
static struct BurnRomInfo md_beast2RomDesc[] = {
	{ "shadow of the beast ii (euro, usa).bin", 0x100000, 0x2dede3db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beast2)
STD_ROM_FN(md_beast2)

struct BurnDriver BurnDrvmd_beast2 = {
	"md_beast2", NULL, NULL, NULL, "1992",
	"Shadow of the Beast II (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beast2RomInfo, md_beast2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadowrun (USA)
static struct BurnRomInfo md_shadowrnRomDesc[] = {
	{ "shadowrun (usa).bin", 0x200000, 0xfbb92909, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadowrn)
STD_ROM_FN(md_shadowrn)

struct BurnDriver BurnDrvmd_shadowrn = {
	"md_shadowrn", NULL, NULL, NULL, "1994",
	"Shadowrun (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_shadowrnRomInfo, md_shadowrnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadowrun (Japan)
static struct BurnRomInfo md_shadowrnjRomDesc[] = {
	{ "shadowrun (jpn).bin", 0x200000, 0xd32199f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadowrnj)
STD_ROM_FN(md_shadowrnj)

struct BurnDriver BurnDrvmd_shadowrnj = {
	"md_shadowrnj", "md_shadowrn", NULL, NULL, "1993",
	"Shadowrun (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_shadowrnjRomInfo, md_shadowrnjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadowrun (USA, Prototype, 19931228)
static struct BurnRomInfo md_shadowrnp4RomDesc[] = {
	{ "shadowrun (prototype - dec 28, 1993).bin", 0x200000, 0x2455add2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadowrnp4)
STD_ROM_FN(md_shadowrnp4)

struct BurnDriver BurnDrvmd_shadowrnp4 = {
	"md_shadowrnp4", "md_shadowrn", NULL, NULL, "1993",
	"Shadowrun (USA, Prototype, 19931228)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_shadowrnp4RomInfo, md_shadowrnp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadowrun (USA, Prototype, 19931231)
static struct BurnRomInfo md_shadowrnp3RomDesc[] = {
	{ "shadowrun (prototype - dec 31, 1993).bin", 0x200000, 0xbbb5e2fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadowrnp3)
STD_ROM_FN(md_shadowrnp3)

struct BurnDriver BurnDrvmd_shadowrnp3 = {
	"md_shadowrnp3", "md_shadowrn", NULL, NULL, "1993",
	"Shadowrun (USA, Prototype, 19931231)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_shadowrnp3RomInfo, md_shadowrnp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadowrun (USA, Prototype, 19940125-C)
static struct BurnRomInfo md_shadowrnp2RomDesc[] = {
	{ "shadowrun (prototype - jan 25, 1994 - c).bin", 0x200000, 0x6e2bbca8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadowrnp2)
STD_ROM_FN(md_shadowrnp2)

struct BurnDriver BurnDrvmd_shadowrnp2 = {
	"md_shadowrnp2", "md_shadowrn", NULL, NULL, "1994",
	"Shadowrun (USA, Prototype, 19940125-C)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_shadowrnp2RomInfo, md_shadowrnp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadowrun (USA, Prototype, 19940125)
static struct BurnRomInfo md_shadowrnp1RomDesc[] = {
	{ "shadowrun (prototype - jan 25, 1994).bin", 0x200000, 0x2a964bcd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadowrnp1)
STD_ROM_FN(md_shadowrnp1)

struct BurnDriver BurnDrvmd_shadowrnp1 = {
	"md_shadowrnp1", "md_shadowrn", NULL, NULL, "1994",
	"Shadowrun (USA, Prototype, 19940125)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_shadowrnp1RomInfo, md_shadowrnp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shane Warne Cricket (Australia)
static struct BurnRomInfo md_shanewarRomDesc[] = {
	{ "shane warne cricket (aus).bin", 0x100000, 0x68865f6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shanewar)
STD_ROM_FN(md_shanewar)

struct BurnDriver BurnDrvmd_shanewar = {
	"md_shanewar", NULL, NULL, NULL, "1997",
	"Shane Warne Cricket (Australia)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_shanewarRomInfo, md_shanewarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shanghai II - Dragon's Eye (USA)
static struct BurnRomInfo md_shangh2RomDesc[] = {
	{ "shanghai ii - dragon's eye (usa).bin", 0x100000, 0xebe9e840, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangh2)
STD_ROM_FN(md_shangh2)

struct BurnDriver BurnDrvmd_shangh2 = {
	"md_shangh2", NULL, NULL, NULL, "1994",
	"Shanghai II - Dragon's Eye (USA)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_shangh2RomInfo, md_shangh2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shanghai II - Dragon's Eye (USA, Prototype)
static struct BurnRomInfo md_shangh2pRomDesc[] = {
	{ "shanghai ii - dragon's eye (beta).bin", 0x100000, 0x154aca2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangh2p)
STD_ROM_FN(md_shangh2p)

struct BurnDriver BurnDrvmd_shangh2p = {
	"md_shangh2p", "md_shangh2", NULL, NULL, "1994",
	"Shanghai II - Dragon's Eye (USA, Prototype)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_shangh2pRomInfo, md_shangh2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shanghai II - Dragon's Eye (USA, Prototype, Alt)
static struct BurnRomInfo md_shangh2p1RomDesc[] = {
	{ "shanghai ii - dragon's eye (beta) (alt).bin", 0x100000, 0x5e33867b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangh2p1)
STD_ROM_FN(md_shangh2p1)

struct BurnDriver BurnDrvmd_shangh2p1 = {
	"md_shangh2p1", "md_shangh2", NULL, NULL, "1994",
	"Shanghai II - Dragon's Eye (USA, Prototype, Alt)\0", NULL, "Activision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_shangh2p1RomInfo, md_shangh2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shaq Fu (Euro, USA)
static struct BurnRomInfo md_shaqfuRomDesc[] = {
	{ "sfb2_u1+sfb2_u2.bin", 0x300000, 0x499955f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shaqfu)
STD_ROM_FN(md_shaqfu)

struct BurnDriver BurnDrvmd_shaqfu = {
	"md_shaqfu", NULL, NULL, NULL, "1994",
	"Shaq Fu (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_shaqfuRomInfo, md_shaqfuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shi Jie Zhi Bang Zheng Ba Zhan - World Pro Baseball 94 (Taiwan) (Unl)
static struct BurnRomInfo md_shijieRomDesc[] = {
	{ "shi jie zhi bang zheng ba zhan - world pro baseball 94 (chi) (unl).bin", 0x200000, 0x72dd884f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shijie)
STD_ROM_FN(md_shijie)

struct BurnDriver BurnDrvmd_shijie = {
	"md_shijie", NULL, NULL, NULL, "1994",
	"Shi Jie Zhi Bang Zheng Ba Zhan - World Pro Baseball 94 (Taiwan) (Unl)\0", NULL, "C&E", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_shijieRomInfo, md_shijieRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shikinjoh (Japan)
static struct BurnRomInfo md_shikinjoRomDesc[] = {
	{ "shikinjoh (jpn).bin", 0x080000, 0x5ea0c97d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shikinjo)
STD_ROM_FN(md_shikinjo)

struct BurnDriver BurnDrvmd_shikinjo = {
	"md_shikinjo", NULL, NULL, NULL, "1991",
	"Shikinjoh (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_shikinjoRomInfo, md_shikinjoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force (USA)
static struct BurnRomInfo md_shinfrceRomDesc[] = {
	{ "shining force (usa).bin", 0x180000, 0xe0594abe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrce)
STD_ROM_FN(md_shinfrce)

struct BurnDriver BurnDrvmd_shinfrce = {
	"md_shinfrce", NULL, NULL, NULL, "1992",
	"Shining Force (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrceRomInfo, md_shinfrceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force (USA, Prototype)
static struct BurnRomInfo md_shinfrcepRomDesc[] = {
	{ "shining force (usa) (beta).bin", 0x180000, 0xce67143a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrcep)
STD_ROM_FN(md_shinfrcep)

struct BurnDriver BurnDrvmd_shinfrcep = {
	"md_shinfrcep", "md_shinfrce", NULL, NULL, "1992",
	"Shining Force (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrcepRomInfo, md_shinfrcepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force - Kamigami no Isan (Japan)
static struct BurnRomInfo md_shinfrcejRomDesc[] = {
	{ "shining force - kamigami no isan (jpn).bin", 0x180000, 0x9378fbcd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrcej)
STD_ROM_FN(md_shinfrcej)

struct BurnDriver BurnDrvmd_shinfrcej = {
	"md_shinfrcej", "md_shinfrce", NULL, NULL, "1992",
	"Shining Force - Kamigami no Isan (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrcejRomInfo, md_shinfrcejRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force II (Euro)
static struct BurnRomInfo md_shinfrc2RomDesc[] = {
	{ "Shining Force II (Euro)(1994)(Sega).bin", 0x200000, 0x83cb46d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2)
STD_ROM_FN(md_shinfrc2)

struct BurnDriver BurnDrvmd_shinfrc2 = {
	"md_shinfrc2", NULL, NULL, NULL, "1994",
	"Shining Force II (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2RomInfo, md_shinfrc2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force II - Koe no Fuuin (Japan)
static struct BurnRomInfo md_shinfrc2jRomDesc[] = {
	{ "Shining Force II - Koe no Fuuin (Japan)(1993)(Sega).bin", 0x200000, 0x0288f3e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2j)
STD_ROM_FN(md_shinfrc2j)

struct BurnDriver BurnDrvmd_shinfrc2j = {
	"md_shinfrc2j", "md_shinfrc2", NULL, NULL, "1993",
	"Shining Force II - Koe no Fuuin (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2jRomInfo, md_shinfrc2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force II (USA, Prototype, 19940404)
static struct BurnRomInfo md_shinfrc2p2RomDesc[] = {
	{ "Shining Force II (USA, Prototype, 19940404)(Sega).bin", 0x200000, 0x5843670c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2p2)
STD_ROM_FN(md_shinfrc2p2)

struct BurnDriver BurnDrvmd_shinfrc2p2 = {
	"md_shinfrc2p2", "md_shinfrc2", NULL, NULL, "1994",
	"Shining Force II (USA, Prototype, 19940404)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2p2RomInfo, md_shinfrc2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force II (USA, Prototype, 19940607)
static struct BurnRomInfo md_shinfrc2p1RomDesc[] = {
	{ "Shining Force II (USA, Prototype, 19940607)(Sega).bin", 0x200000, 0x03b68bba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2p1)
STD_ROM_FN(md_shinfrc2p1)

struct BurnDriver BurnDrvmd_shinfrc2p1 = {
	"md_shinfrc2p1", "md_shinfrc2", NULL, NULL, "1994",
	"Shining Force II (USA, Prototype, 19940607)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2p1RomInfo, md_shinfrc2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force II (USA)
static struct BurnRomInfo md_shinfrc2uRomDesc[] = {
	{ "Shining Force II (USA)(1994)(Sega).bin", 0x200000, 0x4815e075, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2u)
STD_ROM_FN(md_shinfrc2u)

struct BurnDriver BurnDrvmd_shinfrc2u = {
	"md_shinfrc2u", "md_shinfrc2", NULL, NULL, "1994",
	"Shining Force II (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2uRomInfo, md_shinfrc2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Tactics Absolute Final Edition (Hack)
// Source : http://www.romhacking.net/hacks/1736/
static struct BurnRomInfo md_shinfrc2tRomDesc[] = {
	{ "shining tactics absolute final edition (hack).bin", 0x400000, 0x49d556e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2t)
STD_ROM_FN(md_shinfrc2t)

struct BurnDriver BurnDrvmd_shinfrc2t = {
	"md_shinfrc2t", "md_shinfrc2", NULL, NULL, "2014",
	"Shining Tactics Absolute Final Edition (Hack)\0", NULL, "Dark Claw", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2tRomInfo, md_shinfrc2tRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining in the Darkness (Euro, USA)
static struct BurnRomInfo md_shindarkRomDesc[] = {
	{ "shining in the darkness (euro, usa).bin", 0x100000, 0x4d2785bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shindark)
STD_ROM_FN(md_shindark)

struct BurnDriver BurnDrvmd_shindark = {
	"md_shindark", NULL, NULL, NULL, "1991",
	"Shining in the Darkness (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shindarkRomInfo, md_shindarkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining in the Darkness (Brazil)
static struct BurnRomInfo md_shindarkbrRomDesc[] = {
	{ "shining in the darkness (bra).bin", 0x100000, 0x3ee2bbc4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shindarkbr)
STD_ROM_FN(md_shindarkbr)

struct BurnDriver BurnDrvmd_shindarkbr = {
	"md_shindarkbr", "md_shindark", NULL, NULL, "1994",
	"Shining in the Darkness (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shindarkbrRomInfo, md_shindarkbrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining in the Darkness (Japan)
static struct BurnRomInfo md_shindarkjRomDesc[] = {
	{ "mpr-13807.bin", 0x100000, 0x496af51c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shindarkj)
STD_ROM_FN(md_shindarkj)

struct BurnDriver BurnDrvmd_shindarkj = {
	"md_shindarkj", "md_shindark", NULL, NULL, "1991",
	"Shining in the Darkness (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shindarkjRomInfo, md_shindarkjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shinobi III - Return of the Ninja Master (USA)
static struct BurnRomInfo md_shinobi3uRomDesc[] = {
	{ "shinobi iii - return of the ninja master (usa).bin", 0x100000, 0x5381506f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinobi3u)
STD_ROM_FN(md_shinobi3u)

struct BurnDriver BurnDrvmd_shinobi3u = {
	"md_shinobi3u", "md_shinobi3", NULL, NULL, "1993",
	"Shinobi III - Return of the Ninja Master (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_shinobi3uRomInfo, md_shinobi3uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shinobi III - Return of the Ninja Master (Prototype, 19930629)
static struct BurnRomInfo md_shinobi3pRomDesc[] = {
	{ "shinobi iii - return of the ninja master (prototype - jun 29, 1993).bin", 0x100000, 0xed32899a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinobi3p)
STD_ROM_FN(md_shinobi3p)

struct BurnDriver BurnDrvmd_shinobi3p = {
	"md_shinobi3p", "md_shinobi3", NULL, NULL, "1993",
	"Shinobi III - Return of the Ninja Master (Prototype, 19930629)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_shinobi3pRomInfo, md_shinobi3pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shinobi III - Return of the Ninja Master (USA, MIJET Hack)
static struct BurnRomInfo md_shinobi3umjRomDesc[] = {
	{ "shinobi iii - return of the ninja master (usa,MIJETHack).bin", 0x100000, 0xaaea518f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinobi3umj)
STD_ROM_FN(md_shinobi3umj)

struct BurnDriver BurnDrvmd_shinobi3umj = {
	"md_shinobi3umj", "md_shinobi3", NULL, NULL, "2016",
	"Shinobi III - Return of the Ninja Master (USA, Hack)\0", NULL, "MIJET", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_shinobi3umjRomInfo, md_shinobi3umjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Shinobi II, The (Japan, Korea)
static struct BurnRomInfo md_supshin2RomDesc[] = {
	{ "super shinobi ii, the (jpn, kor).bin", 0x100000, 0x5b412816, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supshin2)
STD_ROM_FN(md_supshin2)

struct BurnDriver BurnDrvmd_supshin2 = {
	"md_supshin2", "md_shinobi3", NULL, NULL, "1993",
	"Super Shinobi II, The (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_supshin2RomInfo, md_supshin2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Shinobi II, The (Japan, Prototype)
static struct BurnRomInfo md_supshin2p1RomDesc[] = {
	{ "super shinobi ii, the (jpn) (beta).bin", 0x100000, 0xc47e8aea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supshin2p1)
STD_ROM_FN(md_supshin2p1)

struct BurnDriver BurnDrvmd_supshin2p1 = {
	"md_supshin2p1", "md_shinobi3", NULL, NULL, "1993",
	"Super Shinobi II, The (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_supshin2p1RomInfo, md_supshin2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Shinobi II, The (Japan, Prototype, Earlier)
static struct BurnRomInfo md_supshin2p2RomDesc[] = {
	{ "super shinobi ii, the (jpn) (beta) (earlier).bin", 0x100000, 0x1ee5bce3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supshin2p2)
STD_ROM_FN(md_supshin2p2)

struct BurnDriver BurnDrvmd_supshin2p2 = {
	"md_supshin2p2", "md_shinobi3", NULL, NULL, "1993",
	"Super Shinobi II, The (Japan, Prototype, Earlier)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_supshin2p2RomInfo, md_supshin2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ship (Visitor Prototype)
static struct BurnRomInfo md_shipRomDesc[] = {
	{ "ship (visitor prototype).bin", 0x040000, 0x852b5511, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ship)
STD_ROM_FN(md_ship)

struct BurnDriver BurnDrvmd_ship = {
	"md_ship", NULL, NULL, NULL, "199?",
	"Ship (Visitor Prototype)\0", NULL, "Technopop", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_shipRomInfo, md_shipRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ship (Prototype)
static struct BurnRomInfo md_ship1RomDesc[] = {
	{ "ship (prototype).bin", 0x020000, 0x4cdc9f16, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ship1)
STD_ROM_FN(md_ship1)

struct BurnDriver BurnDrvmd_ship1 = {
	"md_ship1", "md_ship", NULL, NULL, "199?",
	"Ship (Prototype)\0", NULL, "Technopop", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_ship1RomInfo, md_ship1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shougi no Hoshi (Japan)
static struct BurnRomInfo md_shougiRomDesc[] = {
	{ "shougi no hoshi (jpn).bin", 0x040000, 0x4148f816, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shougi)
STD_ROM_FN(md_shougi)

struct BurnDriver BurnDrvmd_shougi = {
	"md_shougi", NULL, NULL, NULL, "1991",
	"Shougi no Hoshi (Japan)\0", NULL, "Home Data", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_shougiRomInfo, md_shougiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shove It! ...The Warehouse Game (USA)
static struct BurnRomInfo md_shoveitRomDesc[] = {
	{ "shove it! ...the warehouse game (usa).bin", 0x020000, 0xc51f40cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shoveit)
STD_ROM_FN(md_shoveit)

struct BurnDriver BurnDrvmd_shoveit = {
	"md_shoveit", NULL, NULL, NULL, "1990",
	"Shove It! ...The Warehouse Game (USA)\0", NULL, "Dreamworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_shoveitRomInfo, md_shoveitRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shijou Saidai no Soukoban (Japan)
static struct BurnRomInfo md_sokobanRomDesc[] = {
	{ "shijou saidai no soukoban (jpn).bin", 0x040000, 0x40f4aacc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sokoban)
STD_ROM_FN(md_sokoban)

struct BurnDriver BurnDrvmd_sokoban = {
	"md_sokoban", "md_shoveit", NULL, NULL, "1990",
	"Shijou Saidai no Soukoban (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_sokobanRomInfo, md_sokobanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Show do Milhćo (Brazil)
static struct BurnRomInfo md_sdmilhaoRomDesc[] = {
	{ "show do milhao (bra).bin", 0x200000, 0x0a22df04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sdmilhao)
STD_ROM_FN(md_sdmilhao)

struct BurnDriver BurnDrvmd_sdmilhao = {
	"md_sdmilhao", NULL, NULL, NULL, "2001",
	"Show do Milhao (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	L"Show do Milh\u00e3o (Brazil)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_sdmilhaoRomInfo, md_sdmilhaoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Show do Milhćo Volume 2 (Brazil)
static struct BurnRomInfo md_sdmilha2RomDesc[] = {
	{ "show do milhao volume 2 (bra).bin", 0x200000, 0x48ee66cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sdmilha2)
STD_ROM_FN(md_sdmilha2)

struct BurnDriver BurnDrvmd_sdmilha2 = {
	"md_sdmilha2", NULL, NULL, NULL, "2002",
	"Show do Milhao Volume 2 (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	L"Show do Milh\u00e3o Volume 2 (Brazil)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_sdmilha2RomInfo, md_sdmilha2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Show do Milhćo Volume 2 (Brazil, Alt)
static struct BurnRomInfo md_sdmilha2aRomDesc[] = {
	{ "show do milhao volume 2 (bra) (alt).bin", 0x200000, 0xd8c9ac6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sdmilha2a)
STD_ROM_FN(md_sdmilha2a)

struct BurnDriver BurnDrvmd_sdmilha2a = {
	"md_sdmilha2a", "md_sdmilha2", NULL, NULL, "2002",
	"Show do Milhao Volume 2 (Brazil, Alt)\0", NULL, "Tec Toy", "Sega Megadrive",
	L"Show do Milh\u00e3o Volume 2 (Brazil, Alt)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_sdmilha2aRomInfo, md_sdmilha2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shui Hu - Feng Yun Zhuan (China) (Unl)
static struct BurnRomInfo md_shuihuRomDesc[] = {
	{ "shui hu - feng yun zhuan (chi) (unl).bin", 0x200000, 0x3e9e010c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shuihu)
STD_ROM_FN(md_shuihu)

struct BurnDriver BurnDrvmd_shuihu = {
	"md_shuihu", NULL, NULL, NULL, "1999",
	"Shui Hu - Feng Yun Zhuan (China) (Unl)\0", NULL, "Never Ending Soft Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_shuihuRomInfo, md_shuihuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shui Hu Zhuan (China) (Unl)
static struct BurnRomInfo md_shuihuzhRomDesc[] = {
	{ "shui hu zhuan (chi) (unl).bin", 0x200000, 0x61e458c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shuihuzh)
STD_ROM_FN(md_shuihuzh)

struct BurnDriver BurnDrvmd_shuihuzh = {
	"md_shuihuzh", NULL, NULL, NULL, "1996",
	"Shui Hu Zhuan (China) (Unl)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_shuihuzhRomInfo, md_shuihuzhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shura no Mon (Japan)
static struct BurnRomInfo md_shuramonRomDesc[] = {
	{ "shura no mon (jpn).bin", 0x100000, 0xe19da6e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shuramon)
STD_ROM_FN(md_shuramon)

struct BurnDriver BurnDrvmd_shuramon = {
	"md_shuramon", NULL, NULL, NULL, "1992",
	"Shura no Mon (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_shuramonRomInfo, md_shuramonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Side Pocket (Euro)
static struct BurnRomInfo md_sidepockRomDesc[] = {
	{ "side pocket (euro).bin", 0x100000, 0x36e08145, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sidepock)
STD_ROM_FN(md_sidepock)

struct BurnDriver BurnDrvmd_sidepock = {
	"md_sidepock", NULL, NULL, NULL, "1992",
	"Side Pocket (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sidepockRomInfo, md_sidepockRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Side Pocket (Japan)
static struct BurnRomInfo md_sidepockjRomDesc[] = {
	{ "side pocket (jpn).bin", 0x100000, 0x336bbf3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sidepockj)
STD_ROM_FN(md_sidepockj)

struct BurnDriver BurnDrvmd_sidepockj = {
	"md_sidepockj", "md_sidepock", NULL, NULL, "1992",
	"Side Pocket (Japan)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sidepockjRomInfo, md_sidepockjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Simpsons, The - Bart Vs The Space Mutants (Euro, USA, Rev. A)
static struct BurnRomInfo md_bartvssmRomDesc[] = {
	{ "mpr-14759a.bin", 0x080000, 0xdb70e8ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bartvssm)
STD_ROM_FN(md_bartvssm)

struct BurnDriver BurnDrvmd_bartvssm = {
	"md_bartvssm", NULL, NULL, NULL, "1992",
	"Simpsons, The - Bart Vs The Space Mutants (Euro, USA, Rev. A)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bartvssmRomInfo, md_bartvssmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Simpsons, The - Bart Vs The Space Mutants (Euro, USA)
static struct BurnRomInfo md_bartvssm1RomDesc[] = {
	{ "simpsons, the - bart vs the space mutants (euro, usa).bin", 0x080000, 0xc8620574, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bartvssm1)
STD_ROM_FN(md_bartvssm1)

struct BurnDriver BurnDrvmd_bartvssm1 = {
	"md_bartvssm1", "md_bartvssm", NULL, NULL, "1992",
	"Simpsons, The - Bart Vs The Space Mutants (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bartvssm1RomInfo, md_bartvssm1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Simpsons, The - Bart's Nightmare (Euro, USA)
static struct BurnRomInfo md_bartnighRomDesc[] = {
	{ "simpsons, the - bart's nightmare (euro, usa).bin", 0x100000, 0x24d7507c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bartnigh)
STD_ROM_FN(md_bartnigh)

struct BurnDriver BurnDrvmd_bartnigh = {
	"md_bartnigh", NULL, NULL, NULL, "1993",
	"Simpsons, The - Bart's Nightmare (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bartnighRomInfo, md_bartnighRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Skeleton Krew (Euro)
static struct BurnRomInfo md_skelkrewRomDesc[] = {
	{ "skeleton krew (euro).bin", 0x200000, 0x5f872737, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skelkrew)
STD_ROM_FN(md_skelkrew)

struct BurnDriver BurnDrvmd_skelkrew = {
	"md_skelkrew", NULL, NULL, NULL, "1995",
	"Skeleton Krew (Euro)\0", NULL, "Core Design", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_skelkrewRomInfo, md_skelkrewRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Skeleton Krew (USA)
static struct BurnRomInfo md_skelkrewuRomDesc[] = {
	{ "skeleton krew (usa).bin", 0x200000, 0xc2e05acb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skelkrewu)
STD_ROM_FN(md_skelkrewu)

struct BurnDriver BurnDrvmd_skelkrewu = {
	"md_skelkrewu", "md_skelkrew", NULL, NULL, "1995",
	"Skeleton Krew (USA)\0", NULL, "Core Design", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_skelkrewuRomInfo, md_skelkrewuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// From TV Animation Slam Dunk - Kyougou Makkou Taiketsu! (Japan)
static struct BurnRomInfo md_slamdunkRomDesc[] = {
	{ "from tv animation slam dunk - kyougou makkou taiketsu! (jpn).bin", 0x200000, 0xcdf5678f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slamdunk)
STD_ROM_FN(md_slamdunk)

struct BurnDriver BurnDrvmd_slamdunk = {
	"md_slamdunk", NULL, NULL, NULL, "1995",
	"From TV Animation Slam Dunk - Kyougou Makkou Taiketsu! (Japan)\0", NULL, "Bandai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_slamdunkRomInfo, md_slamdunkRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Slam - Shaq vs. the Legends (Prototype)
static struct BurnRomInfo md_slamshaqRomDesc[] = {
	{ "slam - shaq vs. the legends (prototype).bin", 0x1f485a, 0xc19c200e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slamshaq)
STD_ROM_FN(md_slamshaq)

struct BurnDriver BurnDrvmd_slamshaq = {
	"md_slamshaq", NULL, NULL, NULL, "199?",
	"Slam - Shaq vs. the Legends (Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_slamshaqRomInfo, md_slamshaqRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Slap Fight MD (Japan)
static struct BurnRomInfo md_slapfighRomDesc[] = {
	{ "slap fight md (jpn).bin", 0x100000, 0xd6695695, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slapfigh)
STD_ROM_FN(md_slapfigh)

struct BurnDriver BurnDrvmd_slapfigh = {
	"md_slapfigh", NULL, NULL, NULL, "1993",
	"Slap Fight MD (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_slapfighRomInfo, md_slapfighRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Slaughter Sport (USA)
static struct BurnRomInfo md_slaughtrRomDesc[] = {
	{ "slaughter sport (usa).bin", 0x0a0000, 0xaf9f9d9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slaughtr)
STD_ROM_FN(md_slaughtr)

struct BurnDriver BurnDrvmd_slaughtr = {
	"md_slaughtr", NULL, NULL, NULL, "1991",
	"Slaughter Sport (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_slaughtrRomInfo, md_slaughtrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatman (Japan)
static struct BurnRomInfo md_fatmanRomDesc[] = {
	{ "fatman (jpn).bin", 0x0a0000, 0x7867da3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatman)
STD_ROM_FN(md_fatman)

struct BurnDriver BurnDrvmd_fatman = {
	"md_fatman", "md_slaughtr", NULL, NULL, "1990",
	"Fatman (Japan)\0", NULL, "Sanritsu Denki", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fatmanRomInfo, md_fatmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Smurfs Travel the World, The (Euro)
static struct BurnRomInfo md_smurfstwRomDesc[] = {
	{ "smurfs travel the world, the (euro).bin", 0x100000, 0xb28bdd69, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smurfstw)
STD_ROM_FN(md_smurfstw)

struct BurnDriver BurnDrvmd_smurfstw = {
	"md_smurfstw", NULL, NULL, NULL, "1996",
	"Smurfs Travel the World, The (Euro)\0", NULL, "Infogrames", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smurfstwRomInfo, md_smurfstwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Snake Rattle n' Roll (Euro)
static struct BurnRomInfo md_snakernrRomDesc[] = {
	{ "snake rattle n' roll (euro).bin", 0x080000, 0x543bed30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_snakernr)
STD_ROM_FN(md_snakernr)

struct BurnDriver BurnDrvmd_snakernr = {
	"md_snakernr", NULL, NULL, NULL, "1993",
	"Snake Rattle n' Roll (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_snakernrRomInfo, md_snakernrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Snow Bros. - Nick & Tom (Japan)
static struct BurnRomInfo md_snowbrosRomDesc[] = {
	{ "snow bros. - nick & tom (jpn).bin", 0x100000, 0x11b56228, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_snowbros)
STD_ROM_FN(md_snowbros)

struct BurnDriver BurnDrvmd_snowbros = {
	"md_snowbros", NULL, NULL, NULL, "1993",
	"Snow Bros. - Nick & Tom (Japan)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_snowbrosRomInfo, md_snowbrosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Socket (USA)
static struct BurnRomInfo md_socketRomDesc[] = {
	{ "socket (usa).bin", 0x100000, 0x3c14e15a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_socket)
STD_ROM_FN(md_socket)

struct BurnDriver BurnDrvmd_socket = {
	"md_socket", NULL, NULL, NULL, "1994",
	"Socket (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_socketRomInfo, md_socketRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Time Dominator 1st (Japan, Korea)
static struct BurnRomInfo md_timedomRomDesc[] = {
	{ "time dominator 1st (jpn, kor).bin", 0x100000, 0x7eba7a5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_timedom)
STD_ROM_FN(md_timedom)

struct BurnDriver BurnDrvmd_timedom = {
	"md_timedom", "md_socket", NULL, NULL, "1994",
	"Time Dominator 1st (Japan, Korea)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_timedomRomInfo, md_timedomRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sol-Deace (USA)
static struct BurnRomInfo md_soldeaceRomDesc[] = {
	{ "sol-deace (usa).bin", 0x100000, 0xa77e4e9f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soldeace)
STD_ROM_FN(md_soldeace)

struct BurnDriver BurnDrvmd_soldeace = {
	"md_soldeace", NULL, NULL, NULL, "1992",
	"Sol-Deace (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_soldeaceRomInfo, md_soldeaceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sol-Deace (Prototype, 19920203)
static struct BurnRomInfo md_soldeacepRomDesc[] = {
	{ "sol-deace (prototype - feb 3, 1992).bin", 0x100000, 0xa7994615, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soldeacep)
STD_ROM_FN(md_soldeacep)

struct BurnDriver BurnDrvmd_soldeacep = {
	"md_soldeacep", "md_soldeace", NULL, NULL, "1992",
	"Sol-Deace (Prototype, 19920203)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_soldeacepRomInfo, md_soldeacepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soleil (Euro)
static struct BurnRomInfo md_soleilRomDesc[] = {
	{ "mpr-17499.bin", 0x200000, 0xa30ebdb1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soleil)
STD_ROM_FN(md_soleil)

struct BurnDriver BurnDrvmd_soleil = {
	"md_soleil", NULL, NULL, NULL, "1994",
	"Soleil (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_soleilRomInfo, md_soleilRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crusader of Centy (USA)
static struct BurnRomInfo md_crusaderRomDesc[] = {
	{ "crusader of centy (usa).bin", 0x200000, 0x41858f6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crusader)
STD_ROM_FN(md_crusader)

struct BurnDriver BurnDrvmd_crusader = {
	"md_crusader", "md_soleil", NULL, NULL, "1994",
	"Crusader of Centy (USA)\0", NULL, "Atlus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_crusaderRomInfo, md_crusaderRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shin Souseiki Ragnacenty (Japan)
static struct BurnRomInfo md_ragnacenRomDesc[] = {
	{ "shin souseiki ragnacenty (jpn).bin", 0x200000, 0x6a3f5ae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ragnacen)
STD_ROM_FN(md_ragnacen)

struct BurnDriver BurnDrvmd_ragnacen = {
	"md_ragnacen", "md_soleil", NULL, NULL, "1994",
	"Shin Souseiki Ragnacenty (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_ragnacenRomInfo, md_ragnacenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shin Souseiki Ragnacenty (Japan, Prototype)
static struct BurnRomInfo md_ragnacenpRomDesc[] = {
	{ "shin souseiki ragnacenty (jpn) (beta).bin", 0x100000, 0x43797455, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ragnacenp)
STD_ROM_FN(md_ragnacenp)

struct BurnDriver BurnDrvmd_ragnacenp = {
	"md_ragnacenp", "md_soleil", NULL, NULL, "1994",
	"Shin Souseiki Ragnacenty (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_ragnacenpRomInfo, md_ragnacenpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ragnacenty (Korea)
static struct BurnRomInfo md_ragnacenkRomDesc[] = {
	{ "ragnacenty (kor).bin", 0x200000, 0x77b5b10b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ragnacenk)
STD_ROM_FN(md_ragnacenk)

struct BurnDriver BurnDrvmd_ragnacenk = {
	"md_ragnacenk", "md_soleil", NULL, NULL, "1995",
	"Ragnacenty (Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_ragnacenkRomInfo, md_ragnacenkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (World)
static struct BurnRomInfo md_skRomDesc[] = {
	{ "mpr-16910-u.ic1", 0x200000, 0x0658f691, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
	{ "mpr-16911-s.ic2", 0x040000, 0x4dcfd55c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_300000  },
};

STD_ROM_PICK(md_sk)
STD_ROM_FN(md_sk)

struct BurnDriver BurnDrvmd_sk = {
	"md_sk", NULL, NULL, NULL, "1994",
	"Sonic & Knuckles (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skRomInfo, md_skRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0606, 19940606, 10.02)
static struct BurnRomInfo md_skp10RomDesc[] = {
	{ "sonic & knuckles (prototype 0606 - jun 06, 1994, 10.02).bin", 0x200000, 0x03a52f63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp10)
STD_ROM_FN(md_skp10)

struct BurnDriver BurnDrvmd_skp10 = {
	"md_skp10", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0606, 19940606, 10.02)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp10RomInfo, md_skp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0608, 19940608, 05.03)
static struct BurnRomInfo md_skp08RomDesc[] = {
	{ "sonic & knuckles (prototype 0608 - jun 08, 1994, 05.03).bin", 0x200000, 0x7a6c1317, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp08)
STD_ROM_FN(md_skp08)

struct BurnDriver BurnDrvmd_skp08 = {
	"md_skp08", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0608, 19940608, 05.03)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp08RomInfo, md_skp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0610, 19940610, 07.49)
static struct BurnRomInfo md_skp06RomDesc[] = {
	{ "sonic & knuckles (prototype 0610 - jun 10, 1994, 07.49).bin", 0x200000, 0x7092f368, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp06)
STD_ROM_FN(md_skp06)

struct BurnDriver BurnDrvmd_skp06 = {
	"md_skp06", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0610, 19940610, 07.49)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp06RomInfo, md_skp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0612, 19940612, 18.27)
static struct BurnRomInfo md_skp04RomDesc[] = {
	{ "sonic & knuckles (prototype 0612 - jun 12, 1994, 18.27).bin", 0x200000, 0xb0a253e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp04)
STD_ROM_FN(md_skp04)

struct BurnDriver BurnDrvmd_skp04 = {
	"md_skp04", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0612, 19940612, 18.27)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp04RomInfo, md_skp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0618, 19940618, 09.15)
static struct BurnRomInfo md_skp02RomDesc[] = {
	{ "sonic & knuckles (prototype 0618 - jun 18, 1994, 09.15).bin", 0x200000, 0x2615f5dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp02)
STD_ROM_FN(md_skp02)

struct BurnDriver BurnDrvmd_skp02 = {
	"md_skp02", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0618, 19940618, 09.15)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp02RomInfo, md_skp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0619, 19940619, 08.18)
static struct BurnRomInfo md_skp01RomDesc[] = {
	{ "sonic & knuckles (prototype 0619 - jun 19, 1994, 08.18).bin", 0x200000, 0x1ea5b9d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp01)
STD_ROM_FN(md_skp01)

struct BurnDriver BurnDrvmd_skp01 = {
	"md_skp01", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0619, 19940619, 08.18)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp01RomInfo, md_skp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Knuckles in Sonic 2 (Prototype 0524, 19940527, 10.46)
static struct BurnRomInfo md_knucklpRomDesc[] = {
	{ "knuckles in sonic 2 (prototype 0524 - may 27, 1994, 10.46).bin", 0x400000, 0x8878c1a8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_knucklp)
STD_ROM_FN(md_knucklp)

struct BurnDriver BurnDrvmd_knucklp = {
	"md_knucklp", "md_sks2", NULL, NULL, "199?",
	"Knuckles in Sonic 2 (Prototype 0524, 19940527, 10.46)\0", "Lock-On Technology", "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_knucklpRomInfo, md_knucklpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles (Prototype 0525, 19940525, 15.28)
static struct BurnRomInfo md_skp12RomDesc[] = {
	{ "sonic & knuckles (prototype 0525 - may 25, 1994, 15.28).bin", 0x400000, 0x8e8dadd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skp12)
STD_ROM_FN(md_skp12)

struct BurnDriver BurnDrvmd_skp12 = {
	"md_skp12", "md_sk", NULL, NULL, "1994",
	"Sonic & Knuckles (Prototype 0525, 19940525, 15.28)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_skp12RomInfo, md_skp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3C (Prototype 0408, 19940408, 17.29)
static struct BurnRomInfo md_sonic3cRomDesc[] = {
	{ "sonic 3c (prototype 0408 - apr 08, 1994, 17.29).bin", 0x400000, 0x59d23df5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3c)
STD_ROM_FN(md_sonic3c)

struct BurnDriver BurnDrvmd_sonic3c = {
	"md_sonic3c", "md_sks3", NULL, NULL, "199?",
	"Sonic 3C (Prototype 0408, 19940408, 17.29)\0", "Sonic the Hedgehog 3 Limited Edition (Prototype)", "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3cRomInfo, md_sonic3cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3C (Prototype 0517, 19940517, 17.08)
static struct BurnRomInfo md_sonic3caRomDesc[] = {
	{ "sonic 3c (prototype 0517 - may 17, 1994, 17.08).bin", 0x400000, 0x766c4b81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3ca)
STD_ROM_FN(md_sonic3ca)

struct BurnDriver BurnDrvmd_sonic3ca = {
	"md_sonic3ca", "md_sks3", NULL, NULL, "199?",
	"Sonic 3C (Prototype 0517, 19940517, 17.08)\0", "Sonic the Hedgehog 3 Limited Edition (Prototype)", "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3caRomInfo, md_sonic3caRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D - Flickies' Island (Euro) ~ Sonic 3D Blast (USA, Korea)
static struct BurnRomInfo md_sonic3dRomDesc[] = {
	{ "sonic 3d blast -- sonic 3d - flickies' island (euro, usa, kor).bin", 0x400000, 0x44a2ca44, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3d)
STD_ROM_FN(md_sonic3d)

struct BurnDriver BurnDrvmd_sonic3d = {
	"md_sonic3d", NULL, NULL, NULL, "1996",
	"Sonic 3D - Flickies' Island (Euro) ~ Sonic 3D Blast (USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dRomInfo, md_sonic3dRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 73, 19960703, 13.58)
static struct BurnRomInfo md_sonic3dp8RomDesc[] = {
	{ "sonic 3d blast (prototype 73 - jul 03, 1996, 13.58).bin", 0x200000, 0x93b75e99, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp8)
STD_ROM_FN(md_sonic3dp8)

struct BurnDriver BurnDrvmd_sonic3dp8 = {
	"md_sonic3dp8", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 73, 19960703, 13.58)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp8RomInfo, md_sonic3dp8RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast Director's Cut (Hack)
static struct BurnRomInfo md_sonic3ddxRomDesc[] = {
	{ "Sonic 3D Blast  - Directors Cut.bin", 0x3ff5c2, 0x9767e840, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3ddx)
STD_ROM_FN(md_sonic3ddx)

struct BurnDriver BurnDrvmd_sonic3ddx = {
	"md_sonic3ddx", "md_sonic3d", NULL, NULL, "2017",
	"Sonic 3D Blast Director's Cut (Hack)\0", NULL, "GameHut", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3ddxRomInfo, md_sonic3ddxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast DX Plus (Hack)
// https://www.romhacking.net/hacks/8526/
static struct BurnRomInfo md_sonic3ddxpRomDesc[] = {
	{ "Sonic 3D Blast DX Plus (2024)(OlivusPrime).bin", 4191682, 0xf720f152, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3ddxp)
STD_ROM_FN(md_sonic3ddxp)

struct BurnDriver BurnDrvmd_sonic3ddxp = {
	"md_sonic3ddxp", "md_sonic3d", NULL, NULL, "2024",
	"Sonic 3D Blast DX Plus (Hack)\0", NULL, "OlivusPrime", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3ddxpRomInfo, md_sonic3ddxpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 814, 19960815, 07.55)
static struct BurnRomInfo md_sonic3dp7RomDesc[] = {
	{ "sonic 3d blast (prototype 814 - aug 15, 1996, 07.55).bin", 0x400000, 0xd64e7675, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp7)
STD_ROM_FN(md_sonic3dp7)

struct BurnDriver BurnDrvmd_sonic3dp7 = {
	"md_sonic3dp7", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 814, 19960815, 07.55)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp7RomInfo, md_sonic3dp7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 819, 19960819, 19.49)
static struct BurnRomInfo md_sonic3dp6RomDesc[] = {
	{ "sonic 3d blast (prototype 819 - aug 19, 1996, 19.49).bin", 0x400000, 0x2c43f43a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp6)
STD_ROM_FN(md_sonic3dp6)

struct BurnDriver BurnDrvmd_sonic3dp6 = {
	"md_sonic3dp6", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 819, 19960819, 19.49)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp6RomInfo, md_sonic3dp6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 825, 19960826, 15.46)
static struct BurnRomInfo md_sonic3dp5RomDesc[] = {
	{ "sonic 3d blast (prototype 825 - aug 26, 1996, 15.46).bin", 0x400000, 0x465bcfbd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp5)
STD_ROM_FN(md_sonic3dp5)

struct BurnDriver BurnDrvmd_sonic3dp5 = {
	"md_sonic3dp5", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 825, 19960826, 15.46)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp5RomInfo, md_sonic3dp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 830, 19960831, 08.19)
static struct BurnRomInfo md_sonic3dp4RomDesc[] = {
	{ "sonic 3d blast (prototype 830 - aug 31, 1996, 08.19).bin", 0x3fff06, 0x57640422, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp4)
STD_ROM_FN(md_sonic3dp4)

struct BurnDriver BurnDrvmd_sonic3dp4 = {
	"md_sonic3dp4", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 830, 19960831, 08.19)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp4RomInfo, md_sonic3dp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 831, 19960903, 10.07)
static struct BurnRomInfo md_sonic3dp3RomDesc[] = {
	{ "sonic 3d blast (prototype 831 - sep 03, 1996, 10.07).bin", 0x400000, 0x5933e453, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp3)
STD_ROM_FN(md_sonic3dp3)

struct BurnDriver BurnDrvmd_sonic3dp3 = {
	"md_sonic3dp3", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 831, 19960903, 10.07)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp3RomInfo, md_sonic3dp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (Prototype 94, 19960904, 12.01)
static struct BurnRomInfo md_sonic3dp2RomDesc[] = {
	{ "sonic 3d blast (prototype 94 - sep 04, 1996, 12.01).bin", 0x400000, 0x2f2a4271, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp2)
STD_ROM_FN(md_sonic3dp2)

struct BurnDriver BurnDrvmd_sonic3dp2 = {
	"md_sonic3dp2", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (Prototype 94, 19960904, 12.01)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp2RomInfo, md_sonic3dp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3D Blast (USA, Prototype)
static struct BurnRomInfo md_sonic3dp1RomDesc[] = {
	{ "sonic 3d blast (usa) (beta).bin", 0x400000, 0xd20f385b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3dp1)
STD_ROM_FN(md_sonic3dp1)

struct BurnDriver BurnDrvmd_sonic3dp1 = {
	"md_sonic3dp1", "md_sonic3d", NULL, NULL, "1996",
	"Sonic 3D Blast (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic3dp1RomInfo, md_sonic3dp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Compilation (Euro) ~ Sonic Classics (USA, Korea)
static struct BurnRomInfo md_soniccmpRomDesc[] = {
	{ "Sonic Compilation (Euro) - Sonic Classics (USA, Korea)(1995)(Sega).bin", 0x400000, 0xc696aee3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soniccmp)
STD_ROM_FN(md_soniccmp)

struct BurnDriver BurnDrvmd_soniccmp = {
	"md_soniccmp", NULL, NULL, NULL, "1995",
	"Sonic Compilation (Euro) ~ Sonic Classics (USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_soniccmpRomInfo, md_soniccmpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Compilation (Euro, Earlier)
static struct BurnRomInfo md_soniccmp1RomDesc[] = {
	{ "Sonic Compilation (Euro, Earlier)(1995)(Sega).bin", 0x300000, 0x8c70b84e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soniccmp1)
STD_ROM_FN(md_soniccmp1)

struct BurnDriver BurnDrvmd_soniccmp1 = {
	"md_soniccmp1", "md_soniccmp", NULL, NULL, "1995",
	"Sonic Compilation (Euro, Earlier)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_soniccmp1RomInfo, md_soniccmp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Crackers (Japan, Prototype)
static struct BurnRomInfo md_scrackRomDesc[] = {
	{ "sonic crackers (jpn) (prototype).bin", 0x100000, 0x7fada88d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_scrack)
STD_ROM_FN(md_scrack)

struct BurnDriver BurnDrvmd_scrack = {
	"md_scrack", NULL, NULL, NULL, "199?",
	"Sonic Crackers (Japan, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_scrackRomInfo, md_scrackRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Eraser (Japan, SegaNet)
static struct BurnRomInfo md_sonicerRomDesc[] = {
	{ "sonic eraser (jpn) (sn).bin", 0x040000, 0x62d8a0e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicer)
STD_ROM_FN(md_sonicer)

struct BurnDriver BurnDrvmd_sonicer = {
	"md_sonicer", NULL, NULL, NULL, "1991",
	"Sonic Eraser (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, FBF_SONIC,
	MegadriveGetZipName, md_sonicerRomInfo, md_sonicerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Eraser (Hack, English)
// Source : http://www.romhacking.net/translations/799/
static struct BurnRomInfo md_sonicereRomDesc[] = {
	{ "sonic eraser (english translation).md", 0x040000, 0x26d9bc32, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicere)
STD_ROM_FN(md_sonicere)

struct BurnDriver BurnDrvmd_sonicere = {
	"md_sonicere", "md_sonicer", NULL, NULL, "2004",
	"Sonic Eraser (Hack, English)\0", NULL, "D", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, FBF_SONIC,
	MegadriveGetZipName, md_sonicereRomInfo, md_sonicereRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Jam 6 (China) (Unl)
static struct BurnRomInfo md_sonicjamRomDesc[] = {
	{ "sonic jam 6 (unl).bin", 0x200000, 0xbf39d897, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicjam)
STD_ROM_FN(md_sonicjam)

struct BurnDriver BurnDrvmd_sonicjam = {
	"md_sonicjam", NULL, NULL, NULL, "1998",
	"Sonic Jam 6 (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sonicjamRomInfo, md_sonicjamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Jam 6 (China, Alt) (Unl)
static struct BurnRomInfo md_sonicjam1RomDesc[] = {
	{ "sonic jam 6 (unl) (pirate).bin", 0x200000, 0x04f0c93e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicjam1)
STD_ROM_FN(md_sonicjam1)

struct BurnDriver BurnDrvmd_sonicjam1 = {
	"md_sonicjam1", "md_sonicjam", NULL, NULL, "1998",
	"Sonic Jam 6 (China, Alt) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sonicjam1RomInfo, md_sonicjam1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Spinball (Prototype)
static struct BurnRomInfo md_sspinpRomDesc[] = {
	{ "sonic spinball (beta).bin", 0x140000, 0xb1524979, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sspinp)
STD_ROM_FN(md_sspinp)

struct BurnDriver BurnDrvmd_sspinp = {
	"md_sspinp", "md_sspin", NULL, NULL, "1993",
	"Sonic Spinball (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL | GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sspinpRomInfo, md_sspinpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Spinball (Prototype, 19930907)
static struct BurnRomInfo md_sspinp1RomDesc[] = {
	{ "sonic spinball (prototype - 17 sep, 1993).bin", 0x100000, 0xc203c557, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sspinp1)
STD_ROM_FN(md_sspinp1)

struct BurnDriver BurnDrvmd_sspinp1 = {
	"md_sspinp1", "md_sspin", NULL, NULL, "1993",
	"Sonic Spinball (Prototype, 19930907)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL | GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sspinp1RomInfo, md_sspinp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Spinball (Japan)
static struct BurnRomInfo md_sspinjRomDesc[] = {
	{ "sonic spinball (jpn).bin", 0x100000, 0xacd08ce8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sspinj)
STD_ROM_FN(md_sspinj)

struct BurnDriver BurnDrvmd_sspinj = {
	"md_sspinj", "md_sspin", NULL, NULL, "1993",
	"Sonic Spinball (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL | GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sspinjRomInfo, md_sspinjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Spinball (USA)
static struct BurnRomInfo md_sspinuRomDesc[] = {
	{ "sonic spinball (usa).bin", 0x100000, 0x677206cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sspinu)
STD_ROM_FN(md_sspinu)

struct BurnDriver BurnDrvmd_sspinu = {
	"md_sspinu", "md_sspin", NULL, NULL, "1993",
	"Sonic Spinball (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL | GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sspinuRomInfo, md_sspinuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Spinball (USA, Alt)
static struct BurnRomInfo md_sspinuaRomDesc[] = {
	{ "sonic spinball (usa) (alt).bin", 0x100000, 0xe9960371, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sspinua)
STD_ROM_FN(md_sspinua)

struct BurnDriver BurnDrvmd_sspinua = {
	"md_sspinua", "md_sspin", NULL, NULL, "1993",
	"Sonic Spinball (USA, Alt)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL | GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sspinuaRomInfo, md_sspinuaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog (Japan, Korea)
static struct BurnRomInfo md_sonicjRomDesc[] = {
	{ "mpr-13933.bin", 0x080000, 0xafe05eee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicj)
STD_ROM_FN(md_sonicj)

struct BurnDriver BurnDrvmd_sonicj = {
	"md_sonicj", "md_sonic", NULL, NULL, "1991",
	"Sonic the Hedgehog (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicjRomInfo, md_sonicjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog (Pirate, Ripped from Golden 10 in 1)
static struct BurnRomInfo md_sonicpirRomDesc[] = {
	{ "sonic the hedgehog (euro, usa) (pirate).bin", 0x080000, 0x7a093f0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicpir)
STD_ROM_FN(md_sonicpir)

struct BurnDriver BurnDrvmd_sonicpir = {
	"md_sonicpir", "md_sonic", NULL, NULL, "199?",
	"Sonic the Hedgehog (Pirate, Ripped from Golden 10 in 1)\0", NULL, "<unlicensed>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicpirRomInfo, md_sonicpirRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (World, Rev. A)
static struct BurnRomInfo md_sonic2RomDesc[] = {
	{ "mpr-15000a.bin", 0x100000, 0x7b905383, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2)
STD_ROM_FN(md_sonic2)

struct BurnDriver BurnDrvmd_sonic2 = {
	"md_sonic2", NULL, NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2RomInfo, md_sonic2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (World)
static struct BurnRomInfo md_sonic2aRomDesc[] = {
	{ "sonic the hedgehog 2 (world).bin", 0x100000, 0x24ab4c3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2a)
STD_ROM_FN(md_sonic2a)

struct BurnDriver BurnDrvmd_sonic2a = {
	"md_sonic2a", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2aRomInfo, md_sonic2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (CENSOR Prototype)
static struct BurnRomInfo md_sonic2p11RomDesc[] = {
	{ "sonic the hedgehog 2 (censor prototype).bin", 0x100000, 0x5667eced, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p11)
STD_ROM_FN(md_sonic2p11)

struct BurnDriver BurnDrvmd_sonic2p11 = {
	"md_sonic2p11", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (CENSOR Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p11RomInfo, md_sonic2p11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Prototype, 19920821)
static struct BurnRomInfo md_sonic2p10RomDesc[] = {
	{ "sonic the hedgehog 2 (prototype - aug 21, 1992).bin", 0x100000, 0x370b3ce5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p10)
STD_ROM_FN(md_sonic2p10)

struct BurnDriver BurnDrvmd_sonic2p10 = {
	"md_sonic2p10", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Prototype, 19920821)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p10RomInfo, md_sonic2p10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Prototype, 19920914)
static struct BurnRomInfo md_sonic2p9RomDesc[] = {
	{ "sonic the hedgehog 2 (prototype - sep 14, 1992).bin", 0x100000, 0x0be8afa7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p9)
STD_ROM_FN(md_sonic2p9)

struct BurnDriver BurnDrvmd_sonic2p9 = {
	"md_sonic2p9", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Prototype, 19920918)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p9RomInfo, md_sonic2p9RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Beta 4, 19920918, 16.26)
static struct BurnRomInfo md_sonic2p8RomDesc[] = {
	{ "sonic the hedgehog 2 (beta 4 - sep 18, 1992, 16.26).bin", 0x100000, 0x8fda5cc5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p8)
STD_ROM_FN(md_sonic2p8)

struct BurnDriver BurnDrvmd_sonic2p8 = {
	"md_sonic2p8", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Beta 4, 19920918, 16.26)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p8RomInfo, md_sonic2p8RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Beta 5, 19920921, 12.06)
static struct BurnRomInfo md_sonic2p7RomDesc[] = {
	{ "sonic the hedgehog 2 (beta 5 - sep 21, 1992, 12.06).bin", 0x100000, 0x066b9a89, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p7)
STD_ROM_FN(md_sonic2p7)

struct BurnDriver BurnDrvmd_sonic2p7 = {
	"md_sonic2p7", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Beta 5, 19920921, 12.06)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p7RomInfo, md_sonic2p7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Beta 6, 19920922, 18.47)
static struct BurnRomInfo md_sonic2p6RomDesc[] = {
	{ "sonic the hedgehog 2 (beta 6 - sep 22, 1992, 18.47).bin", 0x100000, 0xcebc64e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p6)
STD_ROM_FN(md_sonic2p6)

struct BurnDriver BurnDrvmd_sonic2p6 = {
	"md_sonic2p6", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Beta 6, 19920922, 18.47)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p6RomInfo, md_sonic2p6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Beta 6, 19920922, 19.42)
static struct BurnRomInfo md_sonic2p5RomDesc[] = {
	{ "sonic the hedgehog 2 (beta 6 - sep 22, 1992, 19.42).bin", 0x100000, 0xcb036e6c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p5)
STD_ROM_FN(md_sonic2p5)

struct BurnDriver BurnDrvmd_sonic2p5 = {
	"md_sonic2p5", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Beta 6, 19920922, 19.42)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p5RomInfo, md_sonic2p5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Beta 7, 19920924, 09.26)
static struct BurnRomInfo md_sonic2p4RomDesc[] = {
	{ "sonic the hedgehog 2 (beta 7 - sep 24, 1992, 09.26).bin", 0x100000, 0xdc7be12c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p4)
STD_ROM_FN(md_sonic2p4)

struct BurnDriver BurnDrvmd_sonic2p4 = {
	"md_sonic2p4", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Beta 7, 19920924, 09.26)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p4RomInfo, md_sonic2p4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Beta 8, 19920924, 19.27)
static struct BurnRomInfo md_sonic2p3RomDesc[] = {
	{ "sonic the hedgehog 2 (beta 8 - sep 24, 1992, 19.27).bin", 0x100000, 0x6089fadd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p3)
STD_ROM_FN(md_sonic2p3)

struct BurnDriver BurnDrvmd_sonic2p3 = {
	"md_sonic2p3", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Beta 8, 19920924, 19.27)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p3RomInfo, md_sonic2p3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (Prototype)
static struct BurnRomInfo md_sonic2p2RomDesc[] = {
	{ "sonic the hedgehog 2 (prototype).bin", 0x100000, 0xeea21b5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p2)
STD_ROM_FN(md_sonic2p2)

struct BurnDriver BurnDrvmd_sonic2p2 = {
	"md_sonic2p2", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p2RomInfo, md_sonic2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (World, Rev. 01a)
static struct BurnRomInfo md_sonic2bRomDesc[] = {
	{ "sonic the hedgehog 2 (world) (rev 01a).bin", 0x100000, 0x92d8817d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2b)
STD_ROM_FN(md_sonic2b)

struct BurnDriver BurnDrvmd_sonic2b = {
	"md_sonic2b", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (World, Rev. 01a)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2bRomInfo, md_sonic2bRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (World, Rev. SC02)
static struct BurnRomInfo md_sonic2cRomDesc[] = {
	{ "sonic the hedgehog 2 (world) (rev sc02).bin", 0x100000, 0xf23ad4b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2c)
STD_ROM_FN(md_sonic2c)

struct BurnDriver BurnDrvmd_sonic2c = {
	"md_sonic2c", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (World, Rev. SC02)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2cRomInfo, md_sonic2cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 (World, Prototype)
static struct BurnRomInfo md_sonic2p1RomDesc[] = {
	{ "sonic the hedgehog 2 (world) (beta).bin", 0x100000, 0x39faaa70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2p1)
STD_ROM_FN(md_sonic2p1)

struct BurnDriver BurnDrvmd_sonic2p1 = {
	"md_sonic2p1", "md_sonic2", NULL, NULL, "1992",
	"Sonic the Hedgehog 2 (World, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2p1RomInfo, md_sonic2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sorcerer's Kingdom (USA, v1.1)
static struct BurnRomInfo md_sorcerkRomDesc[] = {
	{ "sorcerer's kingdom (usa) (v1.1).bin", 0x100000, 0xbb1fc9ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sorcerk)
STD_ROM_FN(md_sorcerk)

struct BurnDriver BurnDrvmd_sorcerk = {
	"md_sorcerk", NULL, NULL, NULL, "1992",
	"Sorcerer's Kingdom (USA, v1.1)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_sorcerkRomInfo, md_sorcerkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sorcerer's Kingdom (USA)
static struct BurnRomInfo md_sorcerk1RomDesc[] = {
	{ "sorcerer's kingdom (usa).bin", 0x100000, 0xcbe6c1ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sorcerk1)
STD_ROM_FN(md_sorcerk1)

struct BurnDriver BurnDrvmd_sorcerk1 = {
	"md_sorcerk1", "md_sorcerk", NULL, NULL, "1992",
	"Sorcerer's Kingdom (USA)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_sorcerk1RomInfo, md_sorcerk1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sorcer Kingdom (Japan)
static struct BurnRomInfo md_sorcerkjRomDesc[] = {
	{ "sorcer kingdom (jpn).bin", 0x100000, 0x944135ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sorcerkj)
STD_ROM_FN(md_sorcerkj)

struct BurnDriver BurnDrvmd_sorcerkj = {
	"md_sorcerkj", "md_sorcerk", NULL, NULL, "1992",
	"Sorcer Kingdom (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_sorcerkjRomInfo, md_sorcerkjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sorcerian (Japan)
static struct BurnRomInfo md_sorcerRomDesc[] = {
	{ "mpr-12906.bin", 0x080000, 0xa143a8c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sorcer)
STD_ROM_FN(md_sorcer)

struct BurnDriver BurnDrvmd_sorcer = {
	"md_sorcer", NULL, NULL, NULL, "1990",
	"Sorcerian (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_sorcerRomInfo, md_sorcerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Harrier II (Japan, Launch Cart)
static struct BurnRomInfo md_sharrierjRomDesc[] = {
	{ "mpr-11934.bin", 0x080000, 0xedc0fb28, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sharrierj)
STD_ROM_FN(md_sharrierj)

struct BurnDriver BurnDrvmd_sharrierj = {
	"md_sharrierj", "md_sharrier", NULL, NULL, "1988",
	"Space Harrier II (Japan, Launch Cart)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_sharrierjRomInfo, md_sharrierjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Invaders 91 (USA)
static struct BurnRomInfo md_sinv91RomDesc[] = {
	{ "space invaders 91 (usa).bin", 0x040000, 0xbb83b528, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sinv91)
STD_ROM_FN(md_sinv91)

struct BurnDriver BurnDrvmd_sinv91 = {
	"md_sinv91", NULL, NULL, NULL, "1991",
	"Space Invaders 91 (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_sinv91RomInfo, md_sinv91RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Invaders 90 (Japan)
static struct BurnRomInfo md_sinv90RomDesc[] = {
	{ "space invaders 90 (jpn).bin", 0x040000, 0x22adbd66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sinv90)
STD_ROM_FN(md_sinv90)

struct BurnDriver BurnDrvmd_sinv90 = {
	"md_sinv90", "md_sinv91", NULL, NULL, "1990",
	"Space Invaders 90 (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_sinv90RomInfo, md_sinv90RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sparkster (Euro)
static struct BurnRomInfo md_sparkstrRomDesc[] = {
	{ "sparkster (euro).bin", 0x100000, 0xd63e9f2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sparkstr)
STD_ROM_FN(md_sparkstr)

struct BurnDriver BurnDrvmd_sparkstr = {
	"md_sparkstr", NULL, NULL, NULL, "1994",
	"Sparkster (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sparkstrRomInfo, md_sparkstrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sparkster (USA)
static struct BurnRomInfo md_sparkstruRomDesc[] = {
	{ "sparkster (usa).bin", 0x100000, 0x6bdb14ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sparkstru)
STD_ROM_FN(md_sparkstru)

struct BurnDriver BurnDrvmd_sparkstru = {
	"md_sparkstru", "md_sparkstr", NULL, NULL, "1994",
	"Sparkster (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sparkstruRomInfo, md_sparkstruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sparkster (Japan)
static struct BurnRomInfo md_sparkstrjRomDesc[] = {
	{ "sparkster - rocket knight adventures 2 (jpn).bin", 0x100000, 0x914ec662, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sparkstrj)
STD_ROM_FN(md_sparkstrj)

struct BurnDriver BurnDrvmd_sparkstrj = {
	"md_sparkstrj", "md_sparkstr", NULL, NULL, "1994",
	"Sparkster (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sparkstrjRomInfo, md_sparkstrjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Speedball 2 (Euro)
static struct BurnRomInfo md_speedbl2RomDesc[] = {
	{ "mpr-14990.bin", 0x080000, 0x056a6e03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_speedbl2)
STD_ROM_FN(md_speedbl2)

struct BurnDriver BurnDrvmd_speedbl2 = {
	"md_speedbl2", NULL, NULL, NULL, "1992",
	"Speedball 2 (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_speedbl2RomInfo, md_speedbl2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Speedball 2 (Japan)
static struct BurnRomInfo md_speedbl2jRomDesc[] = {
	{ "speedball 2 (jpn).bin", 0x080000, 0xf5442334, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_speedbl2j)
STD_ROM_FN(md_speedbl2j)

struct BurnDriver BurnDrvmd_speedbl2j = {
	"md_speedbl2j", "md_speedbl2", NULL, NULL, "1992",
	"Speedball 2 (Japan)\0", NULL, "CRI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_speedbl2jRomInfo, md_speedbl2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Speedball 2 - Brutal Deluxe (USA)
static struct BurnRomInfo md_speedbl2uRomDesc[] = {
	{ "speedball 2 - brutal deluxe (usa).bin", 0x080000, 0x9fc340a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_speedbl2u)
STD_ROM_FN(md_speedbl2u)

struct BurnDriver BurnDrvmd_speedbl2u = {
	"md_speedbl2u", "md_speedbl2", NULL, NULL, "1991",
	"Speedball 2 - Brutal Deluxe (USA)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_speedbl2uRomInfo, md_speedbl2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Speedball 2 - Brutal Deluxe (Prototype, 19910607)
static struct BurnRomInfo md_speedbl2pRomDesc[] = {
	{ "speedball 2 - brutal deluxe (prototype - jun 7, 1991).bin", 0x080000, 0x13c803b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_speedbl2p)
STD_ROM_FN(md_speedbl2p)

struct BurnDriver BurnDrvmd_speedbl2p = {
	"md_speedbl2p", "md_speedbl2", NULL, NULL, "1991",
	"Speedball 2 - Brutal Deluxe (Prototype, 19910607)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_speedbl2pRomInfo, md_speedbl2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man (Euro, USA)
static struct BurnRomInfo md_spidermnRomDesc[] = {
	{ "Spider-Man (Euro, USA)(1995)(Acclaim).bin", 0x200000, 0x11b5b590, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidermn)
STD_ROM_FN(md_spidermn)

struct BurnDriver BurnDrvmd_spidermn = {
	"md_spidermn", NULL, NULL, NULL, "1995",
	"Spider-Man (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidermnRomInfo, md_spidermnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man (USA, Prototype)
static struct BurnRomInfo md_spidermnp1RomDesc[] = {
	{ "Spider-Man (USA, Prototype)(1995)(Acclaim).bin", 0x200000, 0xb88a710d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidermnp1)
STD_ROM_FN(md_spidermnp1)

struct BurnDriver BurnDrvmd_spidermnp1 = {
	"md_spidermnp1", "md_spidermn", NULL, NULL, "1995",
	"Spider-Man (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidermnp1RomInfo, md_spidermnp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man (USA, Prototype, Earlier)
static struct BurnRomInfo md_spidermnp2RomDesc[] = {
	{ "Spider-Man (USA, Prototype, Earlier)(1995)(Acclaim).bin", 0x200000, 0x83e1fe76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidermnp2)
STD_ROM_FN(md_spidermnp2)

struct BurnDriver BurnDrvmd_spidermnp2 = {
	"md_spidermnp2", "md_spidermn", NULL, NULL, "1995",
	"Spider-Man (USA, Prototype, Earlier)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidermnp2RomInfo, md_spidermnp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man vs. the Kingpin (World)
static struct BurnRomInfo md_spidkingRomDesc[] = {
	{ "Spider-Man vs. the Kingpin (World)(1991)(Sega).bin", 0x080000, 0x70ab775f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidking)
STD_ROM_FN(md_spidking)

struct BurnDriver BurnDrvmd_spidking = {
	"md_spidking", NULL, NULL, NULL, "1991",
	"Spider-Man vs. the Kingpin (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidkingRomInfo, md_spidkingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man & Venom - Maximum Carnage (World)
static struct BurnRomInfo md_spidmaxcRomDesc[] = {
	{ "Spider-Man & Venom - Maximum Carnage (World)(1994)(Acclaim).bin", 0x200000, 0x8fa0b6e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidmaxc)
STD_ROM_FN(md_spidmaxc)

struct BurnDriver BurnDrvmd_spidmaxc = {
	"md_spidmaxc", NULL, NULL, NULL, "1994",
	"Spider-Man & Venom - Maximum Carnage (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidmaxcRomInfo, md_spidmaxcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Venom & Spider-Man - Separation Anxiety (Euro, USA)
static struct BurnRomInfo md_venomRomDesc[] = {
	{ "Venom & Spider-Man - Separation Anxiety (Euro, USA)(1995)(Acclaim).bin", 0x300000, 0x512ade32, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_venom)
STD_ROM_FN(md_venom)

struct BurnDriver BurnDrvmd_venom = {
	"md_venom", NULL, NULL, NULL, "1995",
	"Venom & Spider-Man - Separation Anxiety (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_venomRomInfo, md_venomRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spiritual Warfare (USA) (Unl)
static struct BurnRomInfo md_spiritwfRomDesc[] = {
	{ "Spiritual Warfare (USA)(Unl)(1994)(Wisdom Tree).bin", 0x080000, 0xd9a364ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spiritwf)
STD_ROM_FN(md_spiritwf)

struct BurnDriver BurnDrvmd_spiritwf = {
	"md_spiritwf", NULL, NULL, NULL, "1994",
	"Spiritual Warfare (USA) (Unl)\0", NULL, "Wisdom Tree", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_spiritwfRomInfo, md_spiritwfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spirou (Euro)
static struct BurnRomInfo md_spirouRomDesc[] = {
	{ "spirou (euro).bin", 0x100000, 0x6634b130, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spirou)
STD_ROM_FN(md_spirou)

struct BurnDriver BurnDrvmd_spirou = {
	"md_spirou", NULL, NULL, NULL, "1996",
	"Spirou (Euro)\0", NULL, "Infogrames", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spirouRomInfo, md_spirouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse 2 (Euro)
static struct BurnRomInfo md_splatth2RomDesc[] = {
	{ "splatterhouse 2 (euro).bin", 0x100000, 0x2559e03c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth2)
STD_ROM_FN(md_splatth2)

struct BurnDriver BurnDrvmd_splatth2 = {
	"md_splatth2", NULL, NULL, NULL, "1992",
	"Splatterhouse 2 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth2RomInfo, md_splatth2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse Part 2 (Japan)
static struct BurnRomInfo md_splatth2jRomDesc[] = {
	{ "sh2j", 0x100000, 0xadbd991b, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth2j)
STD_ROM_FN(md_splatth2j)

struct BurnDriver BurnDrvmd_splatth2j = {
	"md_splatth2j", "md_splatth2", NULL, NULL, "1992",
	"Splatterhouse Part 2 (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth2jRomInfo, md_splatth2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse 2 (USA)
static struct BurnRomInfo md_splatth2uRomDesc[] = {
	{ "splatterhouse 2 (usa).bin", 0x100000, 0x2d1766e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth2u)
STD_ROM_FN(md_splatth2u)

struct BurnDriver BurnDrvmd_splatth2u = {
	"md_splatth2u", "md_splatth2", NULL, NULL, "1992",
	"Splatterhouse 2 (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth2uRomInfo, md_splatth2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse 3 (USA)
static struct BurnRomInfo md_splatth3RomDesc[] = {
	{ "splatterhouse 3 (usa).bin", 0x200000, 0x00f05d07, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth3)
STD_ROM_FN(md_splatth3)

struct BurnDriver BurnDrvmd_splatth3 = {
	"md_splatth3", NULL, NULL, NULL, "1993",
	"Splatterhouse 3 (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth3RomInfo, md_splatth3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse Part 3 (Japan, Korea)
static struct BurnRomInfo md_splatth3jRomDesc[] = {
	{ "splatterhouse part 3 (jpn, kor).bin", 0x200000, 0x31b83d22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth3j)
STD_ROM_FN(md_splatth3j)

struct BurnDriver BurnDrvmd_splatth3j = {
	"md_splatth3j", "md_splatth3", NULL, NULL, "1993",
	"Splatterhouse Part 3 (Japan, Korea)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth3jRomInfo, md_splatth3jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sport Games (Brazil)
static struct BurnRomInfo md_sportgRomDesc[] = {
	{ "mpr-19945-mx.ic1", 0x400000, 0x25da0747, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sportg)
STD_ROM_FN(md_sportg)

struct BurnDriver BurnDrvmd_sportg = {
	"md_sportg", NULL, NULL, NULL, "199?",
	"Sport Games (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sportgRomInfo, md_sportgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sports Talk Baseball (USA)
static struct BurnRomInfo md_sporttbbRomDesc[] = {
	{ "sports talk baseball (usa).bin", 0x100000, 0x0deb79c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sporttbb)
STD_ROM_FN(md_sporttbb)

struct BurnDriver BurnDrvmd_sporttbb = {
	"md_sporttbb", NULL, NULL, NULL, "1992",
	"Sports Talk Baseball (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sporttbbRomInfo, md_sporttbbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spot Goes to Hollywood (Euro)
static struct BurnRomInfo md_spotgoRomDesc[] = {
	{ "mpr-18680+mpr-18681.bin", 0x300000, 0xfbe254ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spotgo)
STD_ROM_FN(md_spotgo)

struct BurnDriver BurnDrvmd_spotgo = {
	"md_spotgo", NULL, NULL, NULL, "1996",
	"Spot Goes to Hollywood (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spotgoRomInfo, md_spotgoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spot Goes to Hollywood (USA)
static struct BurnRomInfo md_spotgouRomDesc[] = {
	{ "spot goes to hollywood (usa).bin", 0x300000, 0xbdad1cbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spotgou)
STD_ROM_FN(md_spotgou)

struct BurnDriver BurnDrvmd_spotgou = {
	"md_spotgou", "md_spotgo", NULL, NULL, "1995",
	"Spot Goes to Hollywood (USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spotgouRomInfo, md_spotgouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Control (USA)
static struct BurnRomInfo md_starctrlRomDesc[] = {
	{ "star control (usa).bin", 0x180000, 0x8e2bceaf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starctrl)
STD_ROM_FN(md_starctrl)

struct BurnDriver BurnDrvmd_starctrl = {
	"md_starctrl", NULL, NULL, NULL, "1991",
	"Star Control (USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_starctrlRomInfo, md_starctrlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Cruiser (Japan)
static struct BurnRomInfo md_starcrusRomDesc[] = {
	{ "star cruiser (jpn).bin", 0x080000, 0x2b75b52f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starcrus)
STD_ROM_FN(md_starcrus)

struct BurnDriver BurnDrvmd_starcrus = {
	"md_starcrus", NULL, NULL, NULL, "1990",
	"Star Cruiser (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SHOOT, 0,
	MegadriveGetZipName, md_starcrusRomInfo, md_starcrusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Cruiser (Hack, English)
// Source : https://www.romhacking.net/translations/2776/
static struct BurnRomInfo md_starcruseRomDesc[] = {
	{ "star cruiser (english translation).md", 0x0C0000, 0x53d8b33e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starcruse)
STD_ROM_FN(md_starcruse)

struct BurnDriver BurnDrvmd_starcruse = {
	"md_starcruse", "md_starcrus", NULL, NULL, "2016",
	"Star Cruiser (Hack, English)\0", NULL, "Nebulous Translations", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SHOOT, 0,
	MegadriveGetZipName, md_starcruseRomInfo, md_starcruseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - Deep Space Nine - Crossroads of Time (Euro)
static struct BurnRomInfo md_stds9RomDesc[] = {
	{ "star trek - deep space nine - crossroads of time (euro).bin", 0x100000, 0xd4b122f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stds9)
STD_ROM_FN(md_stds9)

struct BurnDriver BurnDrvmd_stds9 = {
	"md_stds9", NULL, NULL, NULL, "1995",
	"Star Trek - Deep Space Nine - Crossroads of Time (Euro)\0", NULL, "Virgin Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_stds9RomInfo, md_stds9RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - Deep Space Nine - Crossroads of Time (USA)
static struct BurnRomInfo md_stds9uRomDesc[] = {
	{ "star trek - deep space nine - crossroads of time (usa).bin", 0x100000, 0xa771e1a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stds9u)
STD_ROM_FN(md_stds9u)

struct BurnDriver BurnDrvmd_stds9u = {
	"md_stds9u", "md_stds9", NULL, NULL, "1995",
	"Star Trek - Deep Space Nine - Crossroads of Time (USA)\0", NULL, "Playmates Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_stds9uRomInfo, md_stds9uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (USA, v1.1)
static struct BurnRomInfo md_sttngRomDesc[] = {
	{ "star trek - the next generation - echoes from the past (usa) (v1.1).bin", 0x200000, 0xef840ef2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttng)
STD_ROM_FN(md_sttng)

struct BurnDriver BurnDrvmd_sttng = {
	"md_sttng", NULL, NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (USA, v1.1)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngRomInfo, md_sttngRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (USA)
static struct BurnRomInfo md_sttngaRomDesc[] = {
	{ "star trek - the next generation - echoes from the past (usa).bin", 0x200000, 0x272153fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttnga)
STD_ROM_FN(md_sttnga)

struct BurnDriver BurnDrvmd_sttnga = {
	"md_sttnga", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngaRomInfo, md_sttngaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941228)
static struct BurnRomInfo md_sttngp06RomDesc[] = {
	{ "star trek - the next generation - echoes from the past (prototype - dec 28, 1994).bin", 0x200000, 0x3ba670f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttngp06)
STD_ROM_FN(md_sttngp06)

struct BurnDriver BurnDrvmd_sttngp06 = {
	"md_sttngp06", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941228)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngp06RomInfo, md_sttngp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941229)
static struct BurnRomInfo md_sttngp05RomDesc[] = {
	{ "star trek - the next generation - echoes from the past (prototype - dec 29, 1994).bin", 0x200000, 0x316bbc43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttngp05)
STD_ROM_FN(md_sttngp05)

struct BurnDriver BurnDrvmd_sttngp05 = {
	"md_sttngp05", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (Prototype, 19941229)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngp05RomInfo, md_sttngp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940103)
static struct BurnRomInfo md_sttngp04RomDesc[] = {
	{ "star trek - the next generation - echoes from the past (prototype - jan 03, 1994).bin", 0x200000, 0xcac86b68, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttngp04)
STD_ROM_FN(md_sttngp04)

struct BurnDriver BurnDrvmd_sttngp04 = {
	"md_sttngp04", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940103)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngp04RomInfo, md_sttngp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940110)
static struct BurnRomInfo md_sttngp03RomDesc[] = {
	{ "star trek - the next generation - echoes from the past (prototype - jan 10, 1994).bin", 0x200000, 0xd138ca3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttngp03)
STD_ROM_FN(md_sttngp03)

struct BurnDriver BurnDrvmd_sttngp03 = {
	"md_sttngp03", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940110)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngp03RomInfo, md_sttngp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940118)
static struct BurnRomInfo md_sttngp02RomDesc[] = {
	{ "star trek - the next generation - echoes from the past (prototype - jan 18, 1994).bin", 0x200000, 0xd8dab97a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttngp02)
STD_ROM_FN(md_sttngp02)

struct BurnDriver BurnDrvmd_sttngp02 = {
	"md_sttngp02", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940118)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngp02RomInfo, md_sttngp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940125)
static struct BurnRomInfo md_sttngp01RomDesc[] = {
	{ "star trek - the next generation - echoes from the past (prototype - jan 25, 1994).bin", 0x200000, 0x63f29e6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sttngp01)
STD_ROM_FN(md_sttngp01)

struct BurnDriver BurnDrvmd_sttngp01 = {
	"md_sttngp01", "md_sttng", NULL, NULL, "1994",
	"Star Trek - The Next Generation - Echoes from the Past (Prototype, 19940125)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV, 0,
	MegadriveGetZipName, md_sttngp01RomInfo, md_sttngp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Wars (Prototype, 19930125)
static struct BurnRomInfo md_starwarspRomDesc[] = {
	{ "star wars (prototype - jan 25, 1994).bin", 0x100000, 0xe1c32fec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starwarsp)
STD_ROM_FN(md_starwarsp)

struct BurnDriver BurnDrvmd_starwarsp = {
	"md_starwarsp", NULL, NULL, NULL, "1994",
	"Star Wars (Prototype, 19930125)\0", NULL, "Sega Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_starwarspRomInfo, md_starwarspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Starflight (Euro, USA, v1.1)
static struct BurnRomInfo md_starflRomDesc[] = {
	{ "starflight (euro, usa) (v1.1).bin", 0x100000, 0x1217dbea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starfl)
STD_ROM_FN(md_starfl)

struct BurnDriver BurnDrvmd_starfl = {
	"md_starfl", NULL, NULL, NULL, "1991",
	"Starflight (Euro, USA, v1.1)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_starflRomInfo, md_starflRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Starflight (Euro, USA)
static struct BurnRomInfo md_starfl1RomDesc[] = {
	{ "starflight (euro, usa).bin", 0x100000, 0xd550c928, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starfl1)
STD_ROM_FN(md_starfl1)

struct BurnDriver BurnDrvmd_starfl1 = {
	"md_starfl1", "md_starfl", NULL, NULL, "1991",
	"Starflight (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_starfl1RomInfo, md_starfl1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stargate (Euro, USA)
static struct BurnRomInfo md_stargateRomDesc[] = {
	{ "stargate (euro, usa).bin", 0x200000, 0xe587069e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stargate)
STD_ROM_FN(md_stargate)

struct BurnDriver BurnDrvmd_stargate = {
	"md_stargate", NULL, NULL, NULL, "1994",
	"Stargate (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_stargateRomInfo, md_stargateRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stargate (Euro, Prototype)
static struct BurnRomInfo md_stargatepRomDesc[] = {
	{ "stargate (euro) (beta).bin", 0x200000, 0x8dc8ab23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stargatep)
STD_ROM_FN(md_stargatep)

struct BurnDriver BurnDrvmd_stargatep = {
	"md_stargatep", "md_stargate", NULL, NULL, "1994",
	"Stargate (Euro, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_stargatepRomInfo, md_stargatepRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stargate (Next Generation Magazine Prototype)
static struct BurnRomInfo md_stargatep1RomDesc[] = {
	{ "stargate (next generation magazine prototype).bin", 0x200000, 0x51946ea9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stargatep1)
STD_ROM_FN(md_stargatep1)

struct BurnDriver BurnDrvmd_stargatep1 = {
	"md_stargatep1", "md_stargate", NULL, NULL, "1994",
	"Stargate (Next Generation Magazine Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_stargatep1RomInfo, md_stargatep1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Steel Talons (Euro, USA)
static struct BurnRomInfo md_steeltalRomDesc[] = {
	{ "steel talons (euro, usa).bin", 0x080000, 0x10e4ec63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_steeltal)
STD_ROM_FN(md_steeltal)

struct BurnDriver BurnDrvmd_steeltal = {
	"md_steeltal", NULL, NULL, NULL, "1992",
	"Steel Talons (Euro, USA)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM | GBF_SHOOT, 0,
	MegadriveGetZipName, md_steeltalRomInfo, md_steeltalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Steel Talons (Japan, Korea)
static struct BurnRomInfo md_steeltaljRomDesc[] = {
	{ "steel talons (jpn, kor).bin", 0x080000, 0x04f388e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_steeltalj)
STD_ROM_FN(md_steeltalj)

struct BurnDriver BurnDrvmd_steeltalj = {
	"md_steeltalj", "md_steeltal", NULL, NULL, "1993",
	"Steel Talons (Japan, Korea)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM | GBF_SHOOT, 0,
	MegadriveGetZipName, md_steeltaljRomInfo, md_steeltaljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Steel Talons (USA, Prototype)
static struct BurnRomInfo md_steeltalpRomDesc[] = {
	{ "steel talons (usa) (beta).bin", 0x080000, 0xc4052f18, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_steeltalp)
STD_ROM_FN(md_steeltalp)

struct BurnDriver BurnDrvmd_steeltalp = {
	"md_steeltalp", "md_steeltal", NULL, NULL, "1992",
	"Steel Talons (USA, Prototype)\0", NULL, "Tengen", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM | GBF_SHOOT, 0,
	MegadriveGetZipName, md_steeltalpRomInfo, md_steeltalpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stone Protectors (USA, Prototype)
static struct BurnRomInfo md_stonprotRomDesc[] = {
	{ "stone protectors.bin", 0x200000, 0xfbf0d54f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stonprot)
STD_ROM_FN(md_stonprot)

struct BurnDriver BurnDrvmd_stonprot = {
	"md_stonprot", "md_stonprotpiko", NULL, NULL, "1994",
	"Stone Protectors (USA, Prototype)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_stonprotRomInfo, md_stonprotRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stormlord (USA)
static struct BurnRomInfo md_strmlordRomDesc[] = {
	{ "stormlord (usa).bin", 0x080000, 0x39ab50a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strmlord)
STD_ROM_FN(md_strmlord)

struct BurnDriver BurnDrvmd_strmlord = {
	"md_strmlord", NULL, NULL, NULL, "1990",
	"Stormlord (USA)\0", NULL, "RazorSoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_strmlordRomInfo, md_strmlordRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stormlord (Japan)
static struct BurnRomInfo md_strmlordjRomDesc[] = {
	{ "stormlord (jpn).bin", 0x080000, 0x0b440fed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strmlordj)
STD_ROM_FN(md_strmlordj)

struct BurnDriver BurnDrvmd_strmlordj = {
	"md_strmlordj", "md_strmlord", NULL, NULL, "1990",
	"Stormlord (Japan)\0", NULL, "Micro World", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_strmlordjRomInfo, md_strmlordjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (Euro)
static struct BurnRomInfo md_thorRomDesc[] = {
	{ "mpr-17588+mpr-17606.bin", 0x300000, 0x1110b0db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thor)
STD_ROM_FN(md_thor)

struct BurnDriver BurnDrvmd_thor = {
	"md_thor", NULL, NULL, NULL, "1995",
	"Story of Thor, The (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorRomInfo, md_thorRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (Euro, French)
static struct BurnRomInfo md_thorfRomDesc[] = {
	{ "mpr-17720.ic1", 0x200000, 0x5385f970, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
	{ "mpr-17721.ic2", 0x100000, 0x158fa2aa, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_200000  },
};

STD_ROM_PICK(md_thorf)
STD_ROM_FN(md_thorf)

struct BurnDriver BurnDrvmd_thorf = {
	"md_thorf", "md_thor", NULL, NULL, "1995",
	"Story of Thor, The (Euro, French)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorfRomInfo, md_thorfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (Euro, German)
static struct BurnRomInfo md_thorgRomDesc[] = {
	{ "story of thor, the (germany).bin", 0x300000, 0xfa20d011, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thorg)
STD_ROM_FN(md_thorg)

struct BurnDriver BurnDrvmd_thorg = {
	"md_thorg", "md_thor", NULL, NULL, "1995",
	"Story of Thor, The (Euro, German)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorgRomInfo, md_thorgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The - Hikari o Tsugumono (Japan)
static struct BurnRomInfo md_thorjRomDesc[] = {
	{ "story of thor, the - hikari o tsugumono (jpn).bin", 0x300000, 0x4f39783c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thorj)
STD_ROM_FN(md_thorj)

struct BurnDriver BurnDrvmd_thorj = {
	"md_thorj", "md_thor", NULL, NULL, "1995",
	"Story of Thor, The - Hikari o Tsugumono (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorjRomInfo, md_thorjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (Japan, Prototype)
static struct BurnRomInfo md_thorjpRomDesc[] = {
	{ "story of thor, the (jpn) (beta) (bad dump).bin", 0x1b0000, 0xbfc11649, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thorjp)
STD_ROM_FN(md_thorjp)

struct BurnDriver BurnDrvmd_thorjp = {
	"md_thorjp", "md_thor", NULL, NULL, "1994",
	"Story of Thor, The (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorjpRomInfo, md_thorjpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (Korea)
static struct BurnRomInfo md_thorkRomDesc[] = {
	{ "story of thor, the (kor).bin", 0x300000, 0xee1603c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thork)
STD_ROM_FN(md_thork)

struct BurnDriver BurnDrvmd_thork = {
	"md_thork", "md_thor", NULL, NULL, "1995",
	"Story of Thor, The (Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorkRomInfo, md_thorkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (USA, Prototype, 19941004)
static struct BurnRomInfo md_thorp2RomDesc[] = {
	{ "story of thor, the (prototype - oct 04, 1994).bin", 0x300000, 0x9e486f91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thorp2)
STD_ROM_FN(md_thorp2)

struct BurnDriver BurnDrvmd_thorp2 = {
	"md_thorp2", "md_thor", NULL, NULL, "1994",
	"Story of Thor, The (USA, Prototype, 19941004)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorp2RomInfo, md_thorp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (USA, Prototype, 19941017)
static struct BurnRomInfo md_thorp1RomDesc[] = {
	{ "story of thor, the (prototype - oct 17, 1994).bin", 0x300000, 0xaa43d34a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thorp1)
STD_ROM_FN(md_thorp1)

struct BurnDriver BurnDrvmd_thorp1 = {
	"md_thorp1", "md_thor", NULL, NULL, "1994",
	"Story of Thor, The (USA, Prototype, 19941017)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorp1RomInfo, md_thorp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beyond Oasis (USA, Prototype, 19941101)
static struct BurnRomInfo md_beyoasispRomDesc[] = {
	{ "beyond oasis (prototype - nov 01, 1994).bin", 0x300000, 0xfa59f847, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beyoasisp)
STD_ROM_FN(md_beyoasisp)

struct BurnDriver BurnDrvmd_beyoasisp = {
	"md_beyoasisp", "md_thor", NULL, NULL, "1994",
	"Beyond Oasis (USA, Prototype, 19941101)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_beyoasispRomInfo, md_beyoasispRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The (Euro, Spanish)
static struct BurnRomInfo md_thorsRomDesc[] = {
	{ "story of thor, the (spain).bin", 0x300000, 0x4631f941, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thors)
STD_ROM_FN(md_thors)

struct BurnDriver BurnDrvmd_thors = {
	"md_thors", "md_thor", NULL, NULL, "1995",
	"Story of Thor, The (Euro, Spanish)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorsRomInfo, md_thorsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beyond Oasis (USA)
static struct BurnRomInfo md_beyoasisRomDesc[] = {
	{ "beyond oasis (usa).bin", 0x300000, 0xc4728225, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beyoasis)
STD_ROM_FN(md_beyoasis)

struct BurnDriver BurnDrvmd_beyoasis = {
	"md_beyoasis", "md_thor", NULL, NULL, "1995",
	"Beyond Oasis (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_beyoasisRomInfo, md_beyoasisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Special Champion Edition (Euro)
static struct BurnRomInfo md_sf2RomDesc[] = {
	{ "mpr-15910+mpr-15911.bin", 0x300000, 0x56d41136, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2)
STD_ROM_FN(md_sf2)

struct BurnDriver BurnDrvmd_sf2 = {
	"md_sf2", NULL, NULL, NULL, "1993",
	"Street Fighter II' - Special Champion Edition (Euro)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2RomInfo, md_sf2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' Plus (Japan, Asia, Korea)
static struct BurnRomInfo md_sf2jRomDesc[] = {
	{ "street fighter ii' plus (jpn, asia, kor).bin", 0x300000, 0x2e487ee3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2j)
STD_ROM_FN(md_sf2j)

struct BurnDriver BurnDrvmd_sf2j = {
	"md_sf2j", "md_sf2", NULL, NULL, "1993",
	"Street Fighter II' Plus (Japan, Asia, Korea)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2jRomInfo, md_sf2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' Turbo (Pirate)
static struct BurnRomInfo md_sf2pirRomDesc[] = {
	{ "street fighter ii' turbo (pirate).bin", 0x200000, 0xa85491ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2pir)
STD_ROM_FN(md_sf2pir)

struct BurnDriver BurnDrvmd_sf2pir = {
	"md_sf2pir", "md_sf2", NULL, NULL, "1993?",
	"Street Fighter II' Turbo (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2pirRomInfo, md_sf2pirRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Special Champion Edition (USA)
static struct BurnRomInfo md_sf2uRomDesc[] = {
	{ "street fighter ii' - special champion edition (usa).bin", 0x300000, 0x13fe08a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2u)
STD_ROM_FN(md_sf2u)

struct BurnDriver BurnDrvmd_sf2u = {
	"md_sf2u", "md_sf2", NULL, NULL, "1993",
	"Street Fighter II' - Special Champion Edition (USA)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2uRomInfo, md_sf2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Champion Edition (Prototype, 19930730)
static struct BurnRomInfo md_sf2p1RomDesc[] = {
	{ "street fighter ii' - champion edition (prototype - Jul 30, 1993).bin", 0x200000, 0x7ffa8b23, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2p1)
STD_ROM_FN(md_sf2p1)

struct BurnDriver BurnDrvmd_sf2p1 = {
	"md_sf2p1", "md_sf2", NULL, NULL, "1993",
	"Street Fighter II' - Champion Edition (Prototype, 19930730)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2p1RomInfo, md_sf2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Champion Edition (Prototype, 19930325)
static struct BurnRomInfo md_sf2p2RomDesc[] = {
	{ "street fighter ii' - champion edition (prototype - Mar 25, 1993).bin", 0x200000, 0x7bb62db2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2p2)
STD_ROM_FN(md_sf2p2)

struct BurnDriver BurnDrvmd_sf2p2 = {
	"md_sf2p2", "md_sf2", NULL, NULL, "1993",
	"Street Fighter II' - Champion Edition (Prototype, 19930325)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2p2RomInfo, md_sf2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Remastered Edition (Hack)
static struct BurnRomInfo md_sf2reRomDesc[] = {
	{ "street fighter ii' - remastered edition (hack).bin", 0x308fe0, 0xfae82b59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2re)
STD_ROM_FN(md_sf2re)

struct BurnDriver BurnDrvmd_sf2re = {
	"md_sf2re", "md_sf2", NULL, NULL, "2020",
	"Street Fighter II' - Remastered Edition (Hack)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2reRomInfo, md_sf2reRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Racer (Euro)
static struct BurnRomInfo md_sracerRomDesc[] = {
	{ "mpr-17987.bin", 0x100000, 0x1a58d5fe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sracer)
STD_ROM_FN(md_sracer)

struct BurnDriver BurnDrvmd_sracer = {
	"md_sracer", NULL, NULL, NULL, "1995",
	"Street Racer (Euro)\0", NULL, "Ubi Soft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_RACING, 0,
	MegadriveGetZipName, md_sracerRomInfo, md_sracerRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Racer (Prototype, 19950321)
static struct BurnRomInfo md_sracerpRomDesc[] = {
	{ "street racer (prototype - mar 21, 1995).bin", 0x100000, 0xa439a96e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sracerp)
STD_ROM_FN(md_sracerp)

struct BurnDriver BurnDrvmd_sracerp = {
	"md_sracerp", "md_sracer", NULL, NULL, "1995",
	"Street Racer (Prototype, 19950321)\0", NULL, "Ubi Soft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_RACING, 0,
	MegadriveGetZipName, md_sracerpRomInfo, md_sracerpRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Smart (Japan, USA)
static struct BurnRomInfo md_ssmartRomDesc[] = {
	{ "street smart (usa, jpn).bin", 0x080000, 0xb1dedfad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssmart)
STD_ROM_FN(md_ssmart)

struct BurnDriver BurnDrvmd_ssmart = {
	"md_ssmart", NULL, NULL, NULL, "1991",
	"Street Smart (Japan, USA)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssmartRomInfo, md_ssmartRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage (Euro, USA, Rev. A) ~ Bare Knuckle - Ikari no Tetsuken (Japan, Rev. A)
static struct BurnRomInfo md_sorRomDesc[] = {
	{ "mpr-14125a.ic1", 0x080000, 0x4052e845, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor)
STD_ROM_FN(md_sor)

struct BurnDriver BurnDrvmd_sor = {
	"md_sor", NULL, NULL, NULL, "1991",
	"Streets of Rage (Euro, USA, Rev. A) ~ Bare Knuckle - Ikari no Tetsuken (Japan, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sorRomInfo, md_sorRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage (Euro, USA) ~ Bare Knuckle - Ikari no Tetsuken (Japan)
static struct BurnRomInfo md_soraRomDesc[] = {
	{ "mpr-14125.ic1", 0x080000, 0xbff227c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sora)
STD_ROM_FN(md_sora)

struct BurnDriver BurnDrvmd_sora = {
	"md_sora", "md_sor", NULL, NULL, "1991",
	"Streets of Rage (Euro, USA) ~ Bare Knuckle - Ikari no Tetsuken (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_soraRomInfo, md_soraRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage II (Euro) ~ Bare Knuckle II - Shitou e no Chingonka (Japan)
static struct BurnRomInfo md_sor2RomDesc[] = {
	{ "mpr-15309.bin", 0x200000, 0x42e3efdc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2)
STD_ROM_FN(md_sor2)

struct BurnDriver BurnDrvmd_sor2 = {
	"md_sor2", NULL, NULL, NULL, "1993",
	"Streets of Rage II (Euro) ~ Bare Knuckle II - Shitou e no Chingonka (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2RomInfo, md_sor2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 (USA)
static struct BurnRomInfo md_sor2uRomDesc[] = {
	{ "streets of rage 2 (usa).bin", 0x200000, 0xe01fa526, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2u)
STD_ROM_FN(md_sor2u)

struct BurnDriver BurnDrvmd_sor2u = {
	"md_sor2u", "md_sor2", NULL, NULL, "1992",
	"Streets of Rage 2 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2uRomInfo, md_sor2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 (USA) Syndicate Wars 2016 Hack by Gsaurus
static struct BurnRomInfo md_sor2uswRomDesc[] = {
	{ "sor2 sw.bin", 0x31b5ce, 0xb49b4a9b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2usw)
STD_ROM_FN(md_sor2usw)

struct BurnDriver BurnDrvmd_sor2usw = {
	"md_sor2usw", "md_sor2", NULL, NULL, "2016",
	"Streets of Rage 2 (USA) Syndicate Wars 2016 (Hack)\0", NULL, "Gsaurus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2uswRomInfo, md_sor2uswRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 Puyo Wars (Hack)
// Source : https://www.romhacking.net/hacks/3063/
static struct BurnRomInfo md_sor2upwRomDesc[] = {
	{ "sor2u_pw.md", 0x3ce448, 0xf618ec40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2upw)
STD_ROM_FN(md_sor2upw)

struct BurnDriver BurnDrvmd_sor2upw = {
	"md_sor2upw", "md_sor2", NULL, NULL, "2014",
	"Streets of Rage 2 Puyo Wars (Hack)\0", NULL, "Candra Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2upwRomInfo, md_sor2upwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 (Hack, Italian)
//Translation project: https://romhacking.it/project/view/id/53
static struct BurnRomInfo md_sor2iRomDesc[] = {
	{ "streets of rage 2 (italian translation).bin", 0x200000, 0x7c034b79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2i)
STD_ROM_FN(md_sor2i)

struct BurnDriver BurnDrvmd_sor2i = {
	"md_sor2i", "md_sor2", NULL, NULL, "2003",
	"Streets of Rage 2 (Hack, Italian)\0", NULL, "Zydio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2iRomInfo, md_sor2iRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle II (Japan, Prototype)
static struct BurnRomInfo md_bk2pRomDesc[] = {
	{ "bare knuckle ii (jpn) (beta).bin", 0x130000, 0x0cf2acbe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bk2p)
STD_ROM_FN(md_bk2p)

struct BurnDriver BurnDrvmd_bk2p = {
	"md_bk2p", "md_sor2", NULL, NULL, "1992",
	"Bare Knuckle II (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_bk2pRomInfo, md_bk2pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Euro)
static struct BurnRomInfo md_sor3RomDesc[] = {
	{ "mpr-16834+mpr-16835.bin", 0x300000, 0x3b78135f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3)
STD_ROM_FN(md_sor3)

struct BurnDriver BurnDrvmd_sor3 = {
	"md_sor3", NULL, NULL, NULL, "1994",
	"Streets of Rage 3 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3RomInfo, md_sor3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Korea)
static struct BurnRomInfo md_sor3kRomDesc[] = {
	{ "streets of rage 3 (kor).bin", 0x300000, 0x90ef991e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3k)
STD_ROM_FN(md_sor3k)

struct BurnDriver BurnDrvmd_sor3k = {
	"md_sor3k", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3kRomInfo, md_sor3kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle 3 Project (World) (Hack by Gsaurus, April 25, 2019)
// Source: https://steamcommunity.com/sharedfiles/filedetails/?id=675893652
static struct BurnRomInfo md_sor3bk3pRomDesc[] = {
	{ "The Bare Knuckle 3 Project.bin", 0x3b3eca, 0xaa7e7937, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3bk3p)
STD_ROM_FN(md_sor3bk3p)

struct BurnDriver BurnDrvmd_sor3bk3p = {
	"md_sor3bk3p", "md_sor3", NULL, NULL, "2019",
	"Bare Knuckle 3 Project (World) (Hack)\0", NULL, "Gsaurus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3bk3pRomInfo, md_sor3bk3pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 Project (USA) (Hack by Gsaurus, version 0.3)
// Source: https://www.romhacking.net/hacks/1346/
static struct BurnRomInfo md_sor3proRomDesc[] = {
	{ "The Streets of Rage 3 Project.bin", 0x3011C4, 0x06b93815, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3pro)
STD_ROM_FN(md_sor3pro)

struct BurnDriver BurnDrvmd_sor3pro = {
	"md_sor3pro", "md_sor3", NULL, NULL, "2018",
	"Streets of Rage 3 Project (USA) (Hack, v0.3)\0", NULL, "Gsaurus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3proRomInfo, md_sor3proRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle III Project (Japan) (Hack by Gsaurus, version 0.3)
// Source: https://www.romhacking.net/hacks/1346/
static struct BurnRomInfo md_bk3proRomDesc[] = {
	{ "The Bare Knuckle III Project.bin", 0x3014C4, 0x5aa71c8b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bk3pro)
STD_ROM_FN(md_bk3pro)

struct BurnDriver BurnDrvmd_bk3pro = {
	"md_bk3pro", "md_sor3", NULL, NULL, "2018",
	"Bare Knuckle III Project (Japan) (Hack, v0.3)\0", NULL, "Gsaurus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_bk3proRomInfo, md_bk3proRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Euro, Prototype, 19940412)
static struct BurnRomInfo md_sor3p5RomDesc[] = {
	{ "streets of rage 3 (euro) (prototype - apr 12, 1994).bin", 0x300000, 0xa17ce5ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3p5)
STD_ROM_FN(md_sor3p5)

struct BurnDriver BurnDrvmd_sor3p5 = {
	"md_sor3p5", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Euro, Prototype, 19940412)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3p5RomInfo, md_sor3p5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Euro, Prototype, 19940413)
static struct BurnRomInfo md_sor3p4RomDesc[] = {
	{ "streets of rage 3 (euro) (prototype - apr 13, 1994).bin", 0x300000, 0x164e42ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3p4)
STD_ROM_FN(md_sor3p4)

struct BurnDriver BurnDrvmd_sor3p4 = {
	"md_sor3p4", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Euro, Prototype, 19940413)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3p4RomInfo, md_sor3p4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Euro, Prototype, 19940415)
static struct BurnRomInfo md_sor3p3RomDesc[] = {
	{ "streets of rage 3 (euro) (prototype - apr 15, 1994).bin", 0x300000, 0xc64f1e6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3p3)
STD_ROM_FN(md_sor3p3)

struct BurnDriver BurnDrvmd_sor3p3 = {
	"md_sor3p3", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Euro, Prototype, 19940415)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3p3RomInfo, md_sor3p3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Euro, Prototype, 19940420)
static struct BurnRomInfo md_sor3p2RomDesc[] = {
	{ "streets of rage 3 (euro) (prototype - apr 20, 1994).bin", 0x300000, 0x6ae4bd8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3p2)
STD_ROM_FN(md_sor3p2)

struct BurnDriver BurnDrvmd_sor3p2 = {
	"md_sor3p2", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Euro, Prototype, 19940420)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3p2RomInfo, md_sor3p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Euro, Prototype, 19940425)
static struct BurnRomInfo md_sor3p1RomDesc[] = {
	{ "streets of rage 3 (euro) (prototype - apr 25, 1994).bin", 0x300000, 0x7033878a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3p1)
STD_ROM_FN(md_sor3p1)

struct BurnDriver BurnDrvmd_sor3p1 = {
	"md_sor3p1", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Euro, Prototype, 19940425)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3p1RomInfo, md_sor3p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940401)
static struct BurnRomInfo md_sor3up06RomDesc[] = {
	{ "streets of rage 3 (prototype - apr 01, 1994).bin", 0x300000, 0x797e75b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up06)
STD_ROM_FN(md_sor3up06)

struct BurnDriver BurnDrvmd_sor3up06 = {
	"md_sor3up06", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940401)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up06RomInfo, md_sor3up06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940404)
static struct BurnRomInfo md_sor3up05RomDesc[] = {
	{ "streets of rage 3 (prototype - apr 04, 1994).bin", 0x300000, 0x6b968f13, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up05)
STD_ROM_FN(md_sor3up05)

struct BurnDriver BurnDrvmd_sor3up05 = {
	"md_sor3up05", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940404)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up05RomInfo, md_sor3up05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940408)
static struct BurnRomInfo md_sor3up04RomDesc[] = {
	{ "streets of rage 3 (prototype - apr 08, 1994).bin", 0x300000, 0xd4ba76c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up04)
STD_ROM_FN(md_sor3up04)

struct BurnDriver BurnDrvmd_sor3up04 = {
	"md_sor3up04", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940408)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up04RomInfo, md_sor3up04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940411)
static struct BurnRomInfo md_sor3up03RomDesc[] = {
	{ "streets of rage 3 (prototype - apr 11, 1994).bin", 0x300000, 0xfa5e5a82, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up03)
STD_ROM_FN(md_sor3up03)

struct BurnDriver BurnDrvmd_sor3up03 = {
	"md_sor3up03", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940411)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up03RomInfo, md_sor3up03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940412)
static struct BurnRomInfo md_sor3up02RomDesc[] = {
	{ "streets of rage 3 (prototype - apr 12, 1994).bin", 0x300000, 0x3f52cb72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up02)
STD_ROM_FN(md_sor3up02)

struct BurnDriver BurnDrvmd_sor3up02 = {
	"md_sor3up02", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940412)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up02RomInfo, md_sor3up02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940413)
static struct BurnRomInfo md_sor3up01RomDesc[] = {
	{ "streets of rage 3 (prototype - apr 13, 1994).bin", 0x300000, 0x6b675807, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up01)
STD_ROM_FN(md_sor3up01)

struct BurnDriver BurnDrvmd_sor3up01 = {
	"md_sor3up01", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940413)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up01RomInfo, md_sor3up01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940308)
static struct BurnRomInfo md_sor3up10RomDesc[] = {
	{ "streets of rage 3 (prototype - mar 08, 1994).bin", 0x300000, 0xea50b551, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up10)
STD_ROM_FN(md_sor3up10)

struct BurnDriver BurnDrvmd_sor3up10 = {
	"md_sor3up10", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940308)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up10RomInfo, md_sor3up10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940317)
static struct BurnRomInfo md_sor3up09RomDesc[] = {
	{ "streets of rage 3 (prototype - mar 17, 1994).bin", 0x300000, 0x39ad962b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up09)
STD_ROM_FN(md_sor3up09)

struct BurnDriver BurnDrvmd_sor3up09 = {
	"md_sor3up09", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940317)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up09RomInfo, md_sor3up09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940318)
static struct BurnRomInfo md_sor3up08RomDesc[] = {
	{ "streets of rage 3 (prototype - mar 18, 1994).bin", 0x300000, 0x60142484, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up08)
STD_ROM_FN(md_sor3up08)

struct BurnDriver BurnDrvmd_sor3up08 = {
	"md_sor3up08", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940318)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up08RomInfo, md_sor3up08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (Prototype, 19940328)
static struct BurnRomInfo md_sor3up07RomDesc[] = {
	{ "streets of rage 3 (prototype - mar 28, 1994).bin", 0x300000, 0x8757f797, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3up07)
STD_ROM_FN(md_sor3up07)

struct BurnDriver BurnDrvmd_sor3up07 = {
	"md_sor3up07", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (Prototype, 19940328)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3up07RomInfo, md_sor3up07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 (USA)
static struct BurnRomInfo md_sor3uRomDesc[] = {
	{ "streets of rage 3 (usa).bin", 0x300000, 0xd5bb15d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3u)
STD_ROM_FN(md_sor3u)

struct BurnDriver BurnDrvmd_sor3u = {
	"md_sor3u", "md_sor3", NULL, NULL, "1994",
	"Streets of Rage 3 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3uRomInfo, md_sor3uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle III (Japan)
static struct BurnRomInfo md_bk3RomDesc[] = {
	{ "bare knuckle iii (jpn).bin", 0x300000, 0x5d09236f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bk3)
STD_ROM_FN(md_bk3)

struct BurnDriver BurnDrvmd_bk3 = {
	"md_bk3", "md_sor3", NULL, NULL, "1994",
	"Bare Knuckle III (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_bk3RomInfo, md_bk3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle III (Japan, Prototype)
static struct BurnRomInfo md_bk3pRomDesc[] = {
	{ "bare knuckle iii (jpn) (beta).bin", 0x300000, 0xe7ff99db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bk3p)
STD_ROM_FN(md_bk3p)

struct BurnDriver BurnDrvmd_bk3p = {
	"md_bk3p", "md_sor3", NULL, NULL, "1994",
	"Bare Knuckle III (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_bk3pRomInfo, md_bk3pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Strider (Euro, USA)
static struct BurnRomInfo md_striderRomDesc[] = {
	{ "mpr-13487.bin", 0x100000, 0xb9d099a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strider)
STD_ROM_FN(md_strider)

struct BurnDriver BurnDrvmd_strider = {
	"md_strider", NULL, NULL, NULL, "1990",
	"Strider (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_striderRomInfo, md_striderRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Strider Hiryuu (Japan, Korea)
static struct BurnRomInfo md_striderjRomDesc[] = {
	{ "strider hiryuu (jpn, kor).bin", 0x100000, 0x859173f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_striderj)
STD_ROM_FN(md_striderj)

struct BurnDriver BurnDrvmd_striderj = {
	"md_striderj", "md_strider", NULL, NULL, "1990",
	"Strider Hiryuu (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_striderjRomInfo, md_striderjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Strider II (Euro)
static struct BurnRomInfo md_strider2RomDesc[] = {
	{ "strider ii (euro).bin", 0x100000, 0xe85e5270, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strider2)
STD_ROM_FN(md_strider2)

struct BurnDriver BurnDrvmd_strider2 = {
	"md_strider2", NULL, NULL, NULL, "1990",
	"Strider II (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_strider2RomInfo, md_strider2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Strider Returns - Journey from Darkness (USA)
static struct BurnRomInfo md_strider2uRomDesc[] = {
	{ "strider returns - journey from darkness (usa).bin", 0x100000, 0x42589b79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strider2u)
STD_ROM_FN(md_strider2u)

struct BurnDriver BurnDrvmd_strider2u = {
	"md_strider2u", "md_strider2", NULL, NULL, "1990",
	"Strider Returns - Journey from Darkness (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_strider2uRomInfo, md_strider2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Striker (Euro)
static struct BurnRomInfo md_strikerRomDesc[] = {
	{ "striker (euro).bin", 0x200000, 0xcc5d7ab2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_striker)
STD_ROM_FN(md_striker)

struct BurnDriver BurnDrvmd_striker = {
	"md_striker", NULL, NULL, NULL, "1994",
	"Striker (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_strikerRomInfo, md_strikerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Striker (Euro, Prototype)
static struct BurnRomInfo md_strikerpRomDesc[] = {
	{ "striker (euro) (beta).bin", 0x200000, 0xc10b270e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strikerp)
STD_ROM_FN(md_strikerp)

struct BurnDriver BurnDrvmd_strikerp = {
	"md_strikerp", "md_striker", NULL, NULL, "1994",
	"Striker (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_strikerpRomInfo, md_strikerpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SubTerrania (Euro)
static struct BurnRomInfo md_subterrRomDesc[] = {
	{ "mpr-16627.bin", 0x200000, 0xe8ced28d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterr)
STD_ROM_FN(md_subterr)

struct BurnDriver BurnDrvmd_subterr = {
	"md_subterr", NULL, NULL, NULL, "1994",
	"SubTerrania (Euro)\0", NULL, "Zyrinx", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterrRomInfo, md_subterrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SubTerrania (Prototype)
static struct BurnRomInfo md_subterrp1RomDesc[] = {
	{ "subterrania (beta).bin", 0x200000, 0x3a1022d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterrp1)
STD_ROM_FN(md_subterrp1)

struct BurnDriver BurnDrvmd_subterrp1 = {
	"md_subterrp1", "md_subterr", NULL, NULL, "1993",
	"SubTerrania (Prototype)\0", NULL, "Zyrinx", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterrp1RomInfo, md_subterrp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SubTerrania (Prototype, Earlier)
static struct BurnRomInfo md_subterrp2RomDesc[] = {
	{ "subterrania (beta) (earlier).bin", 0x140000, 0x9c13d25c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterrp2)
STD_ROM_FN(md_subterrp2)

struct BurnDriver BurnDrvmd_subterrp2 = {
	"md_subterrp2", "md_subterr", NULL, NULL, "1993",
	"SubTerrania (Prototype, Earlier)\0", NULL, "Zyrinx", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterrp2RomInfo, md_subterrp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SubTerrania (Japan)
static struct BurnRomInfo md_subterrjRomDesc[] = {
	{ "subterrania (jpn).bin", 0x200000, 0x7638ea91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterrj)
STD_ROM_FN(md_subterrj)

struct BurnDriver BurnDrvmd_subterrj = {
	"md_subterrj", "md_subterr", NULL, NULL, "1994",
	"SubTerrania (Japan)\0", NULL, "Zyrinx", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterrjRomInfo, md_subterrjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SubTerrania (Japan, Prototype, 19940202)
static struct BurnRomInfo md_subterrp3RomDesc[] = {
	{ "subterrania (prototype - feb 02, 1994).bin", 0x200000, 0xb368e394, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterrp3)
STD_ROM_FN(md_subterrp3)

struct BurnDriver BurnDrvmd_subterrp3 = {
	"md_subterrp3", "md_subterr", NULL, NULL, "1994",
	"SubTerrania (Japan, Prototype)\0", NULL, "Zyrinx", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterrp3RomInfo, md_subterrp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SubTerrania (USA)
static struct BurnRomInfo md_subterruRomDesc[] = {
	{ "subterrania (usa).bin", 0x200000, 0xdc3c6c45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterru)
STD_ROM_FN(md_subterru)

struct BurnDriver BurnDrvmd_subterru = {
	"md_subterru", "md_subterr", NULL, NULL, "1993",
	"SubTerrania (USA)\0", NULL, "Zyrinx", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterruRomInfo, md_subterruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Summer Challenge (Euro, USA)
static struct BurnRomInfo md_summerRomDesc[] = {
	{ "summer challenge (euro, usa).bin", 0x200000, 0xd7d53dc1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_summer)
STD_ROM_FN(md_summer)

struct BurnDriver BurnDrvmd_summer = {
	"md_summer", NULL, NULL, NULL, "1993",
	"Summer Challenge (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_summerRomInfo, md_summerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sunset Riders (Euro)
static struct BurnRomInfo md_ssridersRomDesc[] = {
	{ "mpr-15305.bin", 0x080000, 0x0ff33054, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssriders)
STD_ROM_FN(md_ssriders)

struct BurnDriver BurnDrvmd_ssriders = {
	"md_ssriders", NULL, NULL, NULL, "1992",
	"Sunset Riders (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ssridersRomInfo, md_ssridersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sunset Riders (USA)
static struct BurnRomInfo md_ssridersuRomDesc[] = {
	{ "sunset riders (usa).bin", 0x080000, 0xac30c297, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssridersu)
STD_ROM_FN(md_ssridersu)

struct BurnDriver BurnDrvmd_ssridersu = {
	"md_ssridersu", "md_ssriders", NULL, NULL, "1992",
	"Sunset Riders (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ssridersuRomInfo, md_ssridersuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Battleship (USA)
static struct BurnRomInfo md_sbshipRomDesc[] = {
	{ "super battleship (usa).bin", 0x080000, 0x99ca1bfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sbship)
STD_ROM_FN(md_sbship)

struct BurnDriver BurnDrvmd_sbship = {
	"md_sbship", NULL, NULL, NULL, "1993",
	"Super Battleship (USA)\0", NULL, "Mindscape", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_sbshipRomInfo, md_sbshipRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Garry Kitchen's Super Battletank - War in the Gulf (USA)
static struct BurnRomInfo md_sbtankRomDesc[] = {
	{ "super battletank - war in the gulf (usa).bin", 0x080000, 0xb0b5e3c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sbtank)
STD_ROM_FN(md_sbtank)

struct BurnDriver BurnDrvmd_sbtank = {
	"md_sbtank", NULL, NULL, NULL, "1992",
	"Garry Kitchen's Super Battletank - War in the Gulf (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_sbtankRomInfo, md_sbtankRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Daisenryaku (Japan, Rev. 02)
static struct BurnRomInfo md_supdaisnRomDesc[] = {
	{ "mpr-12477a-h.ic1", 0x080000, 0x11645d6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supdaisn)
STD_ROM_FN(md_supdaisn)

struct BurnDriver BurnDrvmd_supdaisn = {
	"md_supdaisn", NULL, NULL, NULL, "1989",
	"Super Daisenryaku (Japan, Rev. 02)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_supdaisnRomInfo, md_supdaisnRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Daisenryaku (Japan)
static struct BurnRomInfo md_supdaisnaRomDesc[] = {
	{ "mpr-12477.ic1", 0x080000, 0xd50a166f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supdaisna)
STD_ROM_FN(md_supdaisna)

struct BurnDriver BurnDrvmd_supdaisna = {
	"md_supdaisna", "md_supdaisn", NULL, NULL, "1989",
	"Super Daisenryaku (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_supdaisnaRomInfo, md_supdaisnaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Fantasy Zone (Euro)
static struct BurnRomInfo md_sfzoneRomDesc[] = {
	{ "mpr-15124.bin", 0x100000, 0x927975be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sfzone)
STD_ROM_FN(md_sfzone)

struct BurnDriver BurnDrvmd_sfzone = {
	"md_sfzone", NULL, NULL, NULL, "1993",
	"Super Fantasy Zone (Euro)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_sfzoneRomInfo, md_sfzoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Fantasy Zone (Japan)
static struct BurnRomInfo md_sfzonejRomDesc[] = {
	{ "super fantasy zone (jpn).bin", 0x100000, 0x767780d7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sfzonej)
STD_ROM_FN(md_sfzonej)

struct BurnDriver BurnDrvmd_sfzonej = {
	"md_sfzonej", "md_sfzone", NULL, NULL, "1992",
	"Super Fantasy Zone (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_sfzonejRomInfo, md_sfzonejRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hang-On (World, Rev. A)
static struct BurnRomInfo md_shangonRomDesc[] = {
	{ "mpr-12640a.bin", 0x080000, 0x3877d107, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangon)
STD_ROM_FN(md_shangon)

struct BurnDriver BurnDrvmd_shangon = {
	"md_shangon", NULL, NULL, NULL, "1989",
	"Super Hang-On (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_ADV, 0,
	MegadriveGetZipName, md_shangonRomInfo, md_shangonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hang-On (World)
static struct BurnRomInfo md_shangon1RomDesc[] = {
	{ "mpr-12640.bin", 0x080000, 0xcb2201a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangon1)
STD_ROM_FN(md_shangon1)

struct BurnDriver BurnDrvmd_shangon1 = {
	"md_shangon1", "md_shangon", NULL, NULL, "1989",
	"Super Hang-On (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_ADV, 0,
	MegadriveGetZipName, md_shangon1RomInfo, md_shangon1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super High Impact (USA)
static struct BurnRomInfo md_shimpactRomDesc[] = {
	{ "super high impact (usa).bin", 0x100000, 0xb870c2f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shimpact)
STD_ROM_FN(md_shimpact)

struct BurnDriver BurnDrvmd_shimpact = {
	"md_shimpact", NULL, NULL, NULL, "1992",
	"Super High Impact (USA)\0", NULL, "Arena", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_shimpactRomInfo, md_shimpactRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hydlide (Euro)
static struct BurnRomInfo md_suphydlRomDesc[] = {
	{ "super hydlide (euro).bin", 0x080000, 0x1fe2d90b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suphydl)
STD_ROM_FN(md_suphydl)

struct BurnDriver BurnDrvmd_suphydl = {
	"md_suphydl", NULL, NULL, NULL, "1990",
	"Super Hydlide (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_suphydlRomInfo, md_suphydlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hydlide (Japan)
static struct BurnRomInfo md_suphydljRomDesc[] = {
	{ "mpr-12632.bin", 0x080000, 0x599be386, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suphydlj)
STD_ROM_FN(md_suphydlj)

struct BurnDriver BurnDrvmd_suphydlj = {
	"md_suphydlj", "md_suphydl", NULL, NULL, "1989",
	"Super Hydlide (Japan)\0", NULL, "Asmik Ace", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_suphydljRomInfo, md_suphydljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hydlide (USA)
static struct BurnRomInfo md_suphydluRomDesc[] = {
	{ "super hydlide (usa).bin", 0x080000, 0x1335ddaa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suphydlu)
STD_ROM_FN(md_suphydlu)

struct BurnDriver BurnDrvmd_suphydlu = {
	"md_suphydlu", "md_suphydl", NULL, NULL, "1990",
	"Super Hydlide (USA)\0", NULL, "Seismic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_suphydluRomInfo, md_suphydluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hydlide - Refined and Rebalanced (Hack, v1.1)
// https://www.romhacking.net/hacks/6338/
static struct BurnRomInfo md_suphydlrrRomDesc[] = {
	{ "Super Hydlide - Refined and Rebalanced v1.1 (2022)(Mentil).bin", 0x080000, 0x3ee40e3c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suphydlrr)
STD_ROM_FN(md_suphydlrr)

struct BurnDriver BurnDrvmd_suphydlrr = {
	"md_suphydlrr", "md_suphydl", NULL, NULL, "2022",
	"Super Hydlide - Refined and Rebalanced (Hack, v1.1)\0", NULL, "Mentil", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_suphydlrrRomInfo, md_suphydlrrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Kick Off (Euro)
static struct BurnRomInfo md_skickoffRomDesc[] = {
	{ "mpr-15420.bin", 0x080000, 0xf43793ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skickoff)
STD_ROM_FN(md_skickoff)

struct BurnDriver BurnDrvmd_skickoff = {
	"md_skickoff", NULL, NULL, NULL, "1992",
	"Super Kick Off (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_skickoffRomInfo, md_skickoffRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super League (Euro)
static struct BurnRomInfo md_suprleagRomDesc[] = {
	{ "super league (euro).bin", 0x080000, 0x55baec6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suprleag)
STD_ROM_FN(md_suprleag)

struct BurnDriver BurnDrvmd_suprleag = {
	"md_suprleag", NULL, NULL, NULL, "1990",
	"Super League (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_suprleagRomInfo, md_suprleagRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super League (Japan)
static struct BurnRomInfo md_suprleagjRomDesc[] = {
	{ "super league (jpn).bin", 0x080000, 0xea13cb1d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suprleagj)
STD_ROM_FN(md_suprleagj)

struct BurnDriver BurnDrvmd_suprleagj = {
	"md_suprleagj", "md_suprleag", NULL, NULL, "1989",
	"Super League (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_suprleagjRomInfo, md_suprleagjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tommy Lasorda Baseball (USA)
static struct BurnRomInfo md_lasordaRomDesc[] = {
	{ "mpr-12706.bin", 0x080000, 0x4fb50304, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lasorda)
STD_ROM_FN(md_lasorda)

struct BurnDriver BurnDrvmd_lasorda = {
	"md_lasorda", "md_suprleag", NULL, NULL, "1989",
	"Tommy Lasorda Baseball (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_lasordaRomInfo, md_lasordaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario World ~ Super Mario Bros. (Pirate, Alt)
static struct BurnRomInfo md_smbaRomDesc[] = {
	{ "super mario world (unl).bin", 0x200000, 0xcf540ba6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smba)
STD_ROM_FN(md_smba)

struct BurnDriver BurnDrvmd_smba = {
	"md_smba", "md_smb", NULL, NULL, "199?",
	"Super Mario World ~ Super Mario Bros. (Alt) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smbaRomInfo, md_smbaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario World ~ Super Mario Bros. (Pirate, Alt 2)
static struct BurnRomInfo md_smbbRomDesc[] = {
	{ "super mario world (unl) (pirate).bin", 0x200000, 0x97c2695e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smbb)
STD_ROM_FN(md_smbb)

struct BurnDriver BurnDrvmd_smbb = {
	"md_smbb", "md_smb", NULL, NULL, "199?",
	"Super Mario World ~ Super Mario Bros. (Alt 2) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smbbRomInfo, md_smbbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario Bros. 4 MD (HB, v1.4.2) (Unl)
static struct BurnRomInfo md_smb4mdRomDesc[] = {
	{ "muls_1.4.2.bin", 0x010000, 0x87a8c533, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smb4md)
STD_ROM_FN(md_smb4md)

struct BurnDriver BurnDrvmd_smb4md = {
	"md_smb4md", NULL, NULL, NULL, "2010",
	"Super Mario Bros. 4 MD (HB, v1.4.2) (Unl)\0", NULL, "Mairtrus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smb4mdRomInfo, md_smb4mdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Monaco GP (Euro, Japan)
static struct BurnRomInfo md_smgpaRomDesc[] = {
	{ "super monaco gp (euro, jpn).bin", 0x080000, 0xb1823595, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgpa)
STD_ROM_FN(md_smgpa)

struct BurnDriver BurnDrvmd_smgpa = {
	"md_smgpa", "md_smgp", NULL, NULL, "1990",
	"Super Monaco GP (Euro, Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_smgpaRomInfo, md_smgpaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Monaco GP (Japan)
static struct BurnRomInfo md_smgpjRomDesc[] = {
	{ "mpr-13215.bin", 0x080000, 0x90f9bab3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgpj)
STD_ROM_FN(md_smgpj)

struct BurnDriver BurnDrvmd_smgpj = {
	"md_smgpj", "md_smgp", NULL, NULL, "1990",
	"Super Monaco GP (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_smgpjRomInfo, md_smgpjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Monaco GP (USA)
static struct BurnRomInfo md_smgpuRomDesc[] = {
	{ "super monaco gp (usa).bin", 0x080000, 0x725018ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgpu)
STD_ROM_FN(md_smgpu)

struct BurnDriver BurnDrvmd_smgpu = {
	"md_smgpu", "md_smgp", NULL, NULL, "1990",
	"Super Monaco GP (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_smgpuRomInfo, md_smgpuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Off Road (Euro, USA)
static struct BurnRomInfo md_superoffRomDesc[] = {
	{ "super off road (euro, usa).bin", 0x080000, 0x8f2fdada, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_superoff)
STD_ROM_FN(md_superoff)

struct BurnDriver BurnDrvmd_superoff = {
	"md_superoff", NULL, NULL, NULL, "1994",
	"Super Off Road (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_superoffRomInfo, md_superoffRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Real Basketball (Euro)
static struct BurnRomInfo md_srealbasRomDesc[] = {
	{ "mpr-13432.bin", 0x080000, 0xf04765ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_srealbas)
STD_ROM_FN(md_srealbas)

struct BurnDriver BurnDrvmd_srealbas = {
	"md_srealbas", NULL, NULL, NULL, "1990",
	"Super Real Basketball (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_srealbasRomInfo, md_srealbasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Real Basketball (Japan, Korea)
static struct BurnRomInfo md_srealbasjRomDesc[] = {
	{ "mpr-12904.bin", 0x080000, 0x4346e11a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_srealbasj)
STD_ROM_FN(md_srealbasj)

struct BurnDriver BurnDrvmd_srealbasj = {
	"md_srealbasj", "md_srealbas", NULL, NULL, "1990",
	"Super Real Basketball (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_srealbasjRomInfo, md_srealbasjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pat Riley Basketball (USA)
static struct BurnRomInfo md_patrileyRomDesc[] = {
	{ "pat riley basketball (usa).bin", 0x080000, 0x3d9318a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_patriley)
STD_ROM_FN(md_patriley)

struct BurnDriver BurnDrvmd_patriley = {
	"md_patriley", "md_srealbas", NULL, NULL, "1990",
	"Pat Riley Basketball (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_patrileyRomInfo, md_patrileyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Skidmarks (Euro, J-Cart)
static struct BurnRomInfo md_sskidRomDesc[] = {
	{ "super skidmarks (euro) (j-cart).bin", 0x200000, 0x4a9c62f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sskid)
STD_ROM_FN(md_sskid)

struct BurnDriver BurnDrvmd_sskid = {
	"md_sskid", NULL, NULL, NULL, "1995",
	"Super Skidmarks (Euro, J-Cart)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_sskidRomInfo, md_sskidRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Skidmarks (USA, Prototype)
static struct BurnRomInfo md_sskidpRomDesc[] = {
	{ "super skidmarks (euro) (beta).bin", 0x200000, 0xa61a0f0c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sskidp)
STD_ROM_FN(md_sskidp)

struct BurnDriver BurnDrvmd_sskidp = {
	"md_sskidp", "md_sskid", NULL, NULL, "1995",
	"Super Skidmarks (USA, Prototype)\0", NULL, "Codemasters", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_sskidpRomInfo, md_sskidpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II - The New Challengers (Euro)
static struct BurnRomInfo md_ssf2RomDesc[] = {
	{ "super street fighter ii - the new challengers (euro).bin", 0x500000, 0x682c192f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2)
STD_ROM_FN(md_ssf2)

struct BurnDriver BurnDrvmd_ssf2 = {
	"md_ssf2", NULL, NULL, NULL, "1994",
	"Super Street Fighter II - The New Challengers (Euro)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2RomInfo, md_ssf2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II - The New Challengers (Japan)
static struct BurnRomInfo md_ssf2jRomDesc[] = {
	{ "super street fighter ii - the new challengers (jpn).bin", 0x500000, 0xd8eeb2bd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2j)
STD_ROM_FN(md_ssf2j)

struct BurnDriver BurnDrvmd_ssf2j = {
	"md_ssf2j", "md_ssf2", NULL, NULL, "1994",
	"Super Street Fighter II - The New Challengers (Japan)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2jRomInfo, md_ssf2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II - The New Challengers (USA)
static struct BurnRomInfo md_ssf2uRomDesc[] = {
	{ "super street fighter ii - the new challengers (usa).bin", 0x500000, 0x165defbf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2u)
STD_ROM_FN(md_ssf2u)

struct BurnDriver BurnDrvmd_ssf2u = {
	"md_ssf2u", "md_ssf2", NULL, NULL, "1994",
	"Super Street Fighter II - The New Challengers (USA)\0", NULL, "Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2uRomInfo, md_ssf2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II (Improvement Hack - Color and Sound)
static struct BurnRomInfo md_ssf2icsRomDesc[] = {
	{ "Super Street Fighter II Improvement.bin", 0x500000, 0x021B7403, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2ics)
STD_ROM_FN(md_ssf2ics)

struct BurnDriver BurnDrvmd_ssf2ics = {
	"md_ssf2ics", "md_ssf2", NULL, NULL, "2014",
	"Super Street Fighter II (Hack, Color and Sound)\0", NULL, "2014 Pyron (color), Stephane D (sound)", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2icsRomInfo, md_ssf2icsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Tank War (Taiwan) (Unl)
static struct BurnRomInfo md_SupertankwarRomDesc[] = {
	{ "Super Tank War.md", 262144, 0x5e519ea1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Supertankwar)
STD_ROM_FN(md_Supertankwar)

struct BurnDriver Burnmd_Supertankwar = {
	"md_supertankwar", NULL, NULL, NULL, "199?",
	"Super Tank War (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_MAZE, 0,
	MegadriveGetZipName, md_SupertankwarRomInfo, md_SupertankwarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Thunder Blade (World)
static struct BurnRomInfo md_stbladRomDesc[] = {
	{ "mpr-12354.bin", 0x080000, 0xb13087ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stblad)
STD_ROM_FN(md_stblad)

struct BurnDriver BurnDrvmd_stblad = {
	"md_stblad", NULL, NULL, NULL, "1989",
	"Super Thunder Blade (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_stbladRomInfo, md_stbladRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Thunder Blade (Japan, Launch Cart)
static struct BurnRomInfo md_stbladjRomDesc[] = {
	{ "mpr-11996.bin", 0x080000, 0x8bd77836, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stbladj)
STD_ROM_FN(md_stbladj)

struct BurnDriver BurnDrvmd_stbladj = {
	"md_stbladj", "md_stblad", NULL, NULL, "1988",
	"Super Thunder Blade (Japan, Launch Cart)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_stbladjRomInfo, md_stbladjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Volley Ball (USA)
static struct BurnRomInfo md_svolleyRomDesc[] = {
	{ "super volley ball (usa).bin", 0x040000, 0xa88fee44, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_svolley)
STD_ROM_FN(md_svolley)

struct BurnDriver BurnDrvmd_svolley = {
	"md_svolley", NULL, NULL, NULL, "1991",
	"Super Volley Ball (USA)\0", NULL, "Video System", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_svolleyRomInfo, md_svolleyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Volley Ball (USA, Alt)
static struct BurnRomInfo md_svolley1RomDesc[] = {
	{ "super volley ball (usa) (alt).bin", 0x040000, 0x85102799, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_svolley1)
STD_ROM_FN(md_svolley1)

struct BurnDriver BurnDrvmd_svolley1 = {
	"md_svolley1", "md_svolley", NULL, NULL, "1991",
	"Super Volley Ball (USA, Alt)\0", NULL, "Video System", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_svolley1RomInfo, md_svolley1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Volley Ball (Japan)
static struct BurnRomInfo md_svolleyjRomDesc[] = {
	{ "super volley ball (jpn).bin", 0x040000, 0x9b5c28ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_svolleyj)
STD_ROM_FN(md_svolleyj)

struct BurnDriver BurnDrvmd_svolleyj = {
	"md_svolleyj", "md_svolley", NULL, NULL, "1991",
	"Super Volley Ball (Japan)\0", NULL, "Video System", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_svolleyjRomInfo, md_svolleyjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Superman - The Man of Steel (Euro)
static struct BurnRomInfo md_supermanRomDesc[] = {
	{ "mpr-15327.bin", 0x100000, 0x7db434ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_superman)
STD_ROM_FN(md_superman)

struct BurnDriver BurnDrvmd_superman = {
	"md_superman", NULL, NULL, NULL, "1993",
	"Superman - The Man of Steel (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_supermanRomInfo, md_supermanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Superman (USA, Prototype)
static struct BurnRomInfo md_supermanpRomDesc[] = {
	{ "superman (usa) (beta).bin", 0x100000, 0x5cd0e1d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supermanp)
STD_ROM_FN(md_supermanp)

struct BurnDriver BurnDrvmd_supermanp = {
	"md_supermanp", "md_superman", NULL, NULL, "1992",
	"Superman (USA, Prototype)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_supermanpRomInfo, md_supermanpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Superman (USA)
static struct BurnRomInfo md_supermanuRomDesc[] = {
	{ "superman (usa).bin", 0x100000, 0x543a5869, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supermanu)
STD_ROM_FN(md_supermanu)

struct BurnDriver BurnDrvmd_supermanu = {
	"md_supermanu", "md_superman", NULL, NULL, "1992",
	"Superman (USA)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_supermanuRomInfo, md_supermanuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Surging Aura (Japan)
static struct BurnRomInfo md_surgingRomDesc[] = {
	{ "surging aura (jpn).bin", 0x200000, 0x65ac1d2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_surging)
STD_ROM_FN(md_surging)

struct BurnDriver BurnDrvmd_surging = {
	"md_surging", NULL, NULL, NULL, "1995",
	"Surging Aura (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_surgingRomInfo, md_surgingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Swamp Thing (USA, Prototype)
static struct BurnRomInfo md_swampRomDesc[] = {
	{ "swamp thing proto.bin", 0x400000, 0xe6ebe9d5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_swamp)
STD_ROM_FN(md_swamp)

struct BurnDriver BurnDrvmd_swamp = {
	"md_swamp", NULL, NULL, NULL, "1991",
	"Swamp Thing (USA, Prototype)\0", NULL, "NuVision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_swampRomInfo, md_swampRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sword of Sodan (Euro, USA)
static struct BurnRomInfo md_swordsodRomDesc[] = {
	{ "sword of sodan (euro, usa).bin", 0x080000, 0x9cb8468f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_swordsod)
STD_ROM_FN(md_swordsod)

struct BurnDriver BurnDrvmd_swordsod = {
	"md_swordsod", NULL, NULL, NULL, "1990",
	"Sword of Sodan (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_swordsodRomInfo, md_swordsodRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sword of Sodan (Japan)
static struct BurnRomInfo md_swordsodjRomDesc[] = {
	{ "sword of sodan (jpn).bin", 0x080000, 0x58edb3f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_swordsodj)
STD_ROM_FN(md_swordsodj)

struct BurnDriver BurnDrvmd_swordsodj = {
	"md_swordsodj", "md_swordsod", NULL, NULL, "1990",
	"Sword of Sodan (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_swordsodjRomInfo, md_swordsodjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Syd of Valis (USA)
static struct BurnRomInfo md_sydvalisRomDesc[] = {
	{ "syd of valis (usa).bin", 0x080000, 0x37dc0108, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sydvalis)
STD_ROM_FN(md_sydvalis)

struct BurnDriver BurnDrvmd_sydvalis = {
	"md_sydvalis", NULL, NULL, NULL, "1992",
	"Syd of Valis (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sydvalisRomInfo, md_sydvalisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// SD Valis (Japan)
static struct BurnRomInfo md_sdvalisRomDesc[] = {
	{ "sd valis (jpn).bin", 0x080000, 0x1aef72ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sdvalis)
STD_ROM_FN(md_sdvalis)

struct BurnDriver BurnDrvmd_sdvalis = {
	"md_sdvalis", "md_sydvalis", NULL, NULL, "1992",
	"SD Valis (Japan)\0", NULL, "Laser Soft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sdvalisRomInfo, md_sdvalisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sword of Vermilion (Euro, USA)
static struct BurnRomInfo md_vermilRomDesc[] = {
	{ "mpr-13430+mpr-13431.bin", 0x0a0000, 0xea1bc9ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vermil)
STD_ROM_FN(md_vermil)

struct BurnDriver BurnDrvmd_vermil = {
	"md_vermil", NULL, NULL, NULL, "1990",
	"Sword of Vermilion (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_vermilRomInfo, md_vermilRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vermilion (Japan)
static struct BurnRomInfo md_vermiljRomDesc[] = {
	{ "vermilion (jpn).bin", 0x0a0000, 0xe400dfc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vermilj)
STD_ROM_FN(md_vermilj)

struct BurnDriver BurnDrvmd_vermilj = {
	"md_vermilj", "md_vermil", NULL, NULL, "1989",
	"Vermilion (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_vermiljRomInfo, md_vermiljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sylvester & Tweety in Cagey Capers (Euro)
static struct BurnRomInfo md_sylvestrRomDesc[] = {
	{ "sylvester & tweety in cagey capers (euro).bin", 0x200000, 0x89fc54ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sylvestr)
STD_ROM_FN(md_sylvestr)

struct BurnDriver BurnDrvmd_sylvestr = {
	"md_sylvestr", NULL, NULL, NULL, "1994",
	"Sylvester & Tweety in Cagey Capers (Euro)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sylvestrRomInfo, md_sylvestrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sylvester and Tweety in Cagey Capers (USA)
static struct BurnRomInfo md_sylvestruRomDesc[] = {
	{ "sylvester and tweety in cagey capers (usa).bin", 0x200000, 0x9d9c786b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sylvestru)
STD_ROM_FN(md_sylvestru)

struct BurnDriver BurnDrvmd_sylvestru = {
	"md_sylvestru", "md_sylvestr", NULL, NULL, "1993",
	"Sylvester and Tweety in Cagey Capers (USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sylvestruRomInfo, md_sylvestruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Syndicate (Euro, USA)
static struct BurnRomInfo md_syndicatRomDesc[] = {
	{ "syndicate (euro, usa).bin", 0x200000, 0x95bbf87b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_syndicat)
STD_ROM_FN(md_syndicat)

struct BurnDriver BurnDrvmd_syndicat = {
	"md_syndicat", NULL, NULL, NULL, "1994",
	"Syndicate (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_ADV, 0,
	MegadriveGetZipName, md_syndicatRomInfo, md_syndicatRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T2 - Terminator 2 - Judgment Day (Euro, USA)
static struct BurnRomInfo md_term2RomDesc[] = {
	{ "t2 - terminator 2 - judgment day (euro, usa).bin", 0x100000, 0x2f75e896, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_term2)
STD_ROM_FN(md_term2)

struct BurnDriver BurnDrvmd_term2 = {
	"md_term2", NULL, NULL, NULL, "1991",
	"T2 - Terminator 2 - Judgment Day (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_term2RomInfo, md_term2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T2 - The Arcade Game (Euro, USA)
static struct BurnRomInfo md_t2agRomDesc[] = {
	{ "mpr-15238.bin", 0x100000, 0xa1264f17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_t2ag)
STD_ROM_FN(md_t2ag)

struct BurnDriver BurnDrvmd_t2ag = {
	"md_t2ag", NULL, NULL, NULL, "1992",
	"T2 - The Arcade Game (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_t2agRomInfo, md_t2agRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T2 - The Arcade Game (USA, Prototype)
static struct BurnRomInfo md_t2agpRomDesc[] = {
	{ "t2 - the arcade game (usa) (beta).bin", 0x100000, 0x94255703, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_t2agp)
STD_ROM_FN(md_t2agp)

struct BurnDriver BurnDrvmd_t2agp = {
	"md_t2agp", "md_t2ag", NULL, NULL, "1992",
	"T2 - The Arcade Game (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_t2agpRomInfo, md_t2agpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T2 - The Arcade Game (Japan)
static struct BurnRomInfo md_t2agjRomDesc[] = {
	{ "t2 - the arcade game (jpn).bin", 0x100000, 0x5e6fe52c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_t2agj)
STD_ROM_FN(md_t2agj)

struct BurnDriver BurnDrvmd_t2agj = {
	"md_t2agj", "md_t2ag", NULL, NULL, "1994",
	"T2 - The Arcade Game (Japan)\0", NULL, "Acclaim Japan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_t2agjRomInfo, md_t2agjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Taikou Risshiden (Japan)
static struct BurnRomInfo md_taikorisRomDesc[] = {
	{ "taikou risshiden (jpn).bin", 0x140000, 0xf96fe15b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_taikoris)
STD_ROM_FN(md_taikoris)

struct BurnDriver BurnDrvmd_taikoris = {
	"md_taikoris", NULL, NULL, NULL, "1993",
	"Taikou Risshiden (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_taikorisRomInfo, md_taikorisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Taiwan Daheng (Taiwan) (Unl)
static struct BurnRomInfo md_taiwanRomDesc[] = {
	{ "taiwan daheng (chi) (unl).bin", 0x100000, 0xbaf20f81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_taiwan)
STD_ROM_FN(md_taiwan)

struct BurnDriver BurnDrvmd_taiwan = {
	"md_taiwan", NULL, NULL, NULL, "1994",
	"Taiwan Daheng (Taiwan) (Unl)\0", NULL, "C&E", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD, 0,
	MegadriveGetZipName, md_taiwanRomInfo, md_taiwanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TaleSpin (Euro, USA)
static struct BurnRomInfo md_talespinRomDesc[] = {
	{ "mpr-15058.bin", 0x080000, 0xf5c0c8d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_talespin)
STD_ROM_FN(md_talespin)

struct BurnDriver BurnDrvmd_talespin = {
	"md_talespin", NULL, NULL, NULL, "1992",
	"TaleSpin (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_talespinRomInfo, md_talespinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Talmit's Adventure (Euro)
static struct BurnRomInfo md_talmitRomDesc[] = {
	{ "lrog453-eta.bin", 0x100000, 0x05dc3ffc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_talmit)
STD_ROM_FN(md_talmit)

struct BurnDriver BurnDrvmd_talmit = {
	"md_talmit", NULL, NULL, NULL, "1991",
	"Talmit's Adventure (Euro)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_talmitRomInfo, md_talmitRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marvel Land (Japan)
static struct BurnRomInfo md_marvlandjRomDesc[] = {
	{ "lrog452-mml.bin", 0x100000, 0x5d162d21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_marvlandj)
STD_ROM_FN(md_marvlandj)

struct BurnDriver BurnDrvmd_marvlandj = {
	"md_marvlandj", "md_talmit", NULL, NULL, "1991",
	"Marvel Land (Japan)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_marvlandjRomInfo, md_marvlandjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Marvel Land (USA)
static struct BurnRomInfo md_marvlandRomDesc[] = {
	{ "marvel land (usa).bin", 0x100000, 0xcd7eeeb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_marvland)
STD_ROM_FN(md_marvland)

struct BurnDriver BurnDrvmd_marvland = {
	"md_marvland", "md_talmit", NULL, NULL, "1991",
	"Marvel Land (USA)\0", NULL, "Namcot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_marvlandRomInfo, md_marvlandRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Target Earth (USA)
static struct BurnRomInfo md_trgearthRomDesc[] = {
	{ "target earth (usa).bin", 0x080000, 0xcddf62d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_trgearth)
STD_ROM_FN(md_trgearth)

struct BurnDriver BurnDrvmd_trgearth = {
	"md_trgearth", NULL, NULL, NULL, "1990",
	"Target Earth (USA)\0", NULL, "Dreamworks Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_trgearthRomInfo, md_trgearthRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Assault Suit Leynos (Japan)
static struct BurnRomInfo md_leynosRomDesc[] = {
	{ "assault suit leynos (jpn).bin", 0x080000, 0x81a2c800, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_leynos)
STD_ROM_FN(md_leynos)

struct BurnDriver BurnDrvmd_leynos = {
	"md_leynos", "md_trgearth", NULL, NULL, "1990",
	"Assault Suit Leynos (Japan)\0", NULL, "Masaya", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_leynosRomInfo, md_leynosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Task Force Harrier EX (USA)
static struct BurnRomInfo md_taskfhexRomDesc[] = {
	{ "task force harrier ex (usa).bin", 0x100000, 0xc8bb0257, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_taskfhex)
STD_ROM_FN(md_taskfhex)

struct BurnDriver BurnDrvmd_taskfhex = {
	"md_taskfhex", NULL, NULL, NULL, "1991",
	"Task Force Harrier EX (USA)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_taskfhexRomInfo, md_taskfhexRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Task Force Harrier EX (Japan)
static struct BurnRomInfo md_taskfhexjRomDesc[] = {
	{ "task force harrier ex (jpn).bin", 0x100000, 0xe9a54eed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_taskfhexj)
STD_ROM_FN(md_taskfhexj)

struct BurnDriver BurnDrvmd_taskfhexj = {
	"md_taskfhexj", "md_taskfhex", NULL, NULL, "1991",
	"Task Force Harrier EX (Japan)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_taskfhexjRomInfo, md_taskfhexjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Taz-Mania (World)
static struct BurnRomInfo md_tazmaniaRomDesc[] = {
	{ "mpr-14838.bin", 0x080000, 0x0e901f45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmania)
STD_ROM_FN(md_tazmania)

struct BurnDriver BurnDrvmd_tazmania = {
	"md_tazmania", NULL, NULL, NULL, "1992",
	"Taz-Mania (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmaniaRomInfo, md_tazmaniaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// USA Basketball World Challenge (Euro, USA)
static struct BurnRomInfo md_teamusaRomDesc[] = {
	{ "team usa basketball (euro, usa).bin", 0x100000, 0xa0caf97e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_teamusa)
STD_ROM_FN(md_teamusa)

struct BurnDriver BurnDrvmd_teamusa = {
	"md_teamusa", NULL, NULL, NULL, "1992",
	"USA Basketball World Challenge (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_teamusaRomInfo, md_teamusaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// USA Basketball World Challenge (Japan)
static struct BurnRomInfo md_dreamteamRomDesc[] = {
	{ "dream team usa (jpn).bin", 0x100000, 0xe2e21b72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dreamteam)
STD_ROM_FN(md_dreamteam)

struct BurnDriver BurnDrvmd_dreamteam = {
	"md_dreamteam", "md_teamusa", NULL, NULL, "1992",
	"USA Basketball World Challenge (Japan)\0", NULL, "Electronic Arts Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_dreamteamRomInfo, md_dreamteamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Techno Clash (Euro, USA)
static struct BurnRomInfo md_technoclRomDesc[] = {
	{ "techno clash (euro, usa).bin", 0x100000, 0x4e65e483, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_technocl)
STD_ROM_FN(md_technocl)

struct BurnDriver BurnDrvmd_technocl = {
	"md_technocl", NULL, NULL, NULL, "1993",
	"Techno Clash (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_technoclRomInfo, md_technoclRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Technocop (USA)
static struct BurnRomInfo md_tecnocopRomDesc[] = {
	{ "technocop (usa).bin", 0x080000, 0x7459ad06, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecnocop)
STD_ROM_FN(md_tecnocop)

struct BurnDriver BurnDrvmd_tecnocop = {
	"md_tecnocop", NULL, NULL, NULL, "1990",
	"Technocop (USA)\0", NULL, "Razorsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_tecnocopRomInfo, md_tecnocopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Technocop (Prototype)
static struct BurnRomInfo md_tecnocopp1RomDesc[] = {
	{ "technocop (prototype).bin", 0x080000, 0x059ac8fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecnocopp1)
STD_ROM_FN(md_tecnocopp1)

struct BurnDriver BurnDrvmd_tecnocopp1 = {
	"md_tecnocopp1", "md_tecnocop", NULL, NULL, "1990",
	"Technocop (Prototype)\0", NULL, "Razorsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_tecnocopp1RomInfo, md_tecnocopp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Technocop (Prototype, 19900912)
static struct BurnRomInfo md_tecnocopp2RomDesc[] = {
	{ "technocop (prototype - sep 12, 1990).bin", 0x080000, 0xf06ed8ca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecnocopp2)
STD_ROM_FN(md_tecnocopp2)

struct BurnDriver BurnDrvmd_tecnocopp2 = {
	"md_tecnocopp2", "md_tecnocop", NULL, NULL, "1990",
	"Technocop (Prototype, 19900912)\0", NULL, "Razorsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_tecnocopp2RomInfo, md_tecnocopp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Cup (Japan, Prototype)
static struct BurnRomInfo md_tecmocupRomDesc[] = {
	{ "tecmo cup (jpn) (prototype) (bad dump).bin", 0x080000, 0x88fdd060, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmocup)
STD_ROM_FN(md_tecmocup)

struct BurnDriver BurnDrvmd_tecmocup = {
	"md_tecmocup", NULL, NULL, NULL, "199?",
	"Tecmo Cup (Japan, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_tecmocupRomInfo, md_tecmocupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Cup (Hack, Italian)
//Translation project: https://romhacking.it/project/view/id/360
static struct BurnRomInfo md_tecmocupiRomDesc[] = {
	{ "tecmo cup (italian translation).bin", 0x080000, 0x580ad795, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmocupi)
STD_ROM_FN(md_tecmocupi)

struct BurnDriver BurnDrvmd_tecmocupi = {
	"md_tecmocupi", "md_tecmocup", NULL, NULL, "2007",
	"Tecmo Cup (Hack, Italian)\0", NULL, "Rulez Translation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_tecmocupiRomInfo, md_tecmocupiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Baseball (USA)
static struct BurnRomInfo md_tecmobbRomDesc[] = {
	{ "tecmo super baseball (usa).bin", 0x100000, 0x227a1178, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmobb)
STD_ROM_FN(md_tecmobb)

struct BurnDriver BurnDrvmd_tecmobb = {
	"md_tecmobb", NULL, NULL, NULL, "1994",
	"Tecmo Super Baseball (USA)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmobbRomInfo, md_tecmobbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Bowl (USA, 199310)
static struct BurnRomInfo md_tecmosbwRomDesc[] = {
	{ "tecmo super bowl (usa) (october 1993).bin", 0x100000, 0x21f27d34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmosbw)
STD_ROM_FN(md_tecmosbw)

struct BurnDriver BurnDrvmd_tecmosbw = {
	"md_tecmosbw", NULL, NULL, NULL, "1993",
	"Tecmo Super Bowl (USA, 199310)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmosbwRomInfo, md_tecmosbwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Bowl (USA, 199309)
static struct BurnRomInfo md_tecmosbwaRomDesc[] = {
	{ "tecmo super bowl (usa) (september 1993).bin", 0x100000, 0xbd5933ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmosbwa)
STD_ROM_FN(md_tecmosbwa)

struct BurnDriver BurnDrvmd_tecmosbwa = {
	"md_tecmosbwa", "md_tecmosbw", NULL, NULL, "1993",
	"Tecmo Super Bowl (USA, 199309)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmosbwaRomInfo, md_tecmosbwaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Bowl (Japan)
static struct BurnRomInfo md_tecmosbwjRomDesc[] = {
	{ "tecmo super bowl (jpn).bin", 0x100000, 0x90c6e20c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmosbwj)
STD_ROM_FN(md_tecmosbwj)

struct BurnDriver BurnDrvmd_tecmosbwj = {
	"md_tecmosbwj", "md_tecmosbw", NULL, NULL, "1993",
	"Tecmo Super Bowl (Japan)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmosbwjRomInfo, md_tecmosbwjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Bowl II (USA)
static struct BurnRomInfo md_tecmosb2RomDesc[] = {
	{ "tecmo super bowl ii - special edition (usa).bin", 0x200000, 0x0a0e67d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmosb2)
STD_ROM_FN(md_tecmosb2)

struct BurnDriver BurnDrvmd_tecmosb2 = {
	"md_tecmosb2", NULL, NULL, NULL, "1994",
	"Tecmo Super Bowl II (USA)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmosb2RomInfo, md_tecmosb2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Bowl II - Special Edition (Japan)
static struct BurnRomInfo md_tecmosb2jRomDesc[] = {
	{ "tecmo super bowl ii - special edition (jpn).bin", 0x200000, 0x32fb633d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmosb2j)
STD_ROM_FN(md_tecmosb2j)

struct BurnDriver BurnDrvmd_tecmosb2j = {
	"md_tecmosb2j", "md_tecmosb2", NULL, NULL, "1994",
	"Tecmo Super Bowl II - Special Edition (Japan)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmosb2jRomInfo, md_tecmosb2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Bowl III - Final Edition (USA)
static struct BurnRomInfo md_tecmosb3RomDesc[] = {
	{ "tecmo super bowl iii - final edition (usa).bin", 0x200000, 0xaae4089f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmosb3)
STD_ROM_FN(md_tecmosb3)

struct BurnDriver BurnDrvmd_tecmosb3 = {
	"md_tecmosb3", NULL, NULL, NULL, "1995",
	"Tecmo Super Bowl III - Final Edition (USA)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmosb3RomInfo, md_tecmosb3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super Hockey (USA)
static struct BurnRomInfo md_tecmohckRomDesc[] = {
	{ "tecmo super hockey (usa).bin", 0x100000, 0x5f86ddc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmohck)
STD_ROM_FN(md_tecmohck)

struct BurnDriver BurnDrvmd_tecmohck = {
	"md_tecmohck", NULL, NULL, NULL, "1994",
	"Tecmo Super Hockey (USA)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmohckRomInfo, md_tecmohckRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super NBA Basketball (USA)
static struct BurnRomInfo md_tecmonbaRomDesc[] = {
	{ "tecmo super nba basketball (usa).bin", 0x100000, 0x53913991, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmonba)
STD_ROM_FN(md_tecmonba)

struct BurnDriver BurnDrvmd_tecmonba = {
	"md_tecmonba", NULL, NULL, NULL, "1993",
	"Tecmo Super NBA Basketball (USA)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmonbaRomInfo, md_tecmonbaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo Super NBA Basketball (Japan)
static struct BurnRomInfo md_tecmonbajRomDesc[] = {
	{ "tecmo super nba basketball (jpn).bin", 0x100000, 0x79f33eb6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmonbaj)
STD_ROM_FN(md_tecmonbaj)

struct BurnDriver BurnDrvmd_tecmonbaj = {
	"md_tecmonbaj", "md_tecmonba", NULL, NULL, "1994",
	"Tecmo Super NBA Basketball (Japan)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tecmonbajRomInfo, md_tecmonbajRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo World Cup '92 (Japan)
static struct BurnRomInfo md_tecmow92RomDesc[] = {
	{ "tecmo world cup '92 (jpn).bin", 0x040000, 0x5e93c8b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmow92)
STD_ROM_FN(md_tecmow92)

struct BurnDriver BurnDrvmd_tecmow92 = {
	"md_tecmow92", NULL, NULL, NULL, "1992",
	"Tecmo World Cup '92 (Japan)\0", NULL, "Sims", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_tecmow92RomInfo, md_tecmow92RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tecmo World Cup (USA)
static struct BurnRomInfo md_tecmowcRomDesc[] = {
	{ "tecmo world cup (usa).bin", 0x040000, 0xcaf8eb2c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tecmowc)
STD_ROM_FN(md_tecmowc)

struct BurnDriver BurnDrvmd_tecmowc = {
	"md_tecmowc", NULL, NULL, NULL, "1990",
	"Tecmo World Cup (USA)\0", NULL, "Tecmo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_tecmowcRomInfo, md_tecmowcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teddy Boy Blues (Japan, SegaNet)
static struct BurnRomInfo md_teddyboyRomDesc[] = {
	{ "teddy boy blues (jpn) (sn).bin", 0x040000, 0x733d2eb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_teddyboy)
STD_ROM_FN(md_teddyboy)

struct BurnDriver BurnDrvmd_teddyboy = {
	"md_teddyboy", NULL, NULL, NULL, "1985-1992",
	"Teddy Boy Blues (Japan, SegaNet)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_teddyboyRomInfo, md_teddyboyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Hero Turtles - The Hyperstone Heist (Euro)
static struct BurnRomInfo md_tmhthhRomDesc[] = {
	{ "teenage mutant hero turtles - the hyperstone heist (euro).bin", 0x100000, 0x966d5286, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmhthh)
STD_ROM_FN(md_tmhthh)

struct BurnDriver BurnDrvmd_tmhthh = {
	"md_tmhthh", NULL, NULL, NULL, "1992",
	"Teenage Mutant Hero Turtles - The Hyperstone Heist (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tmhthhRomInfo, md_tmhthhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - Return of the Shredder (Japan)
static struct BurnRomInfo md_tmntshjRomDesc[] = {
	{ "teenage mutant ninja turtles - return of the shredder (jpn).bin", 0x100000, 0x1b003498, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmntshj)
STD_ROM_FN(md_tmntshj)

struct BurnDriver BurnDrvmd_tmntshj = {
	"md_tmntshj", "md_tmhthh", NULL, NULL, "1992",
	"Teenage Mutant Ninja Turtles - Return of the Shredder (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tmntshjRomInfo, md_tmntshjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - The Hyperstone Heist (USA)
static struct BurnRomInfo md_tmnthhRomDesc[] = {
	{ "teenage mutant ninja turtles - the hyperstone heist (usa).bin", 0x100000, 0x679c41de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmnthh)
STD_ROM_FN(md_tmnthh)

struct BurnDriver BurnDrvmd_tmnthh = {
	"md_tmnthh", "md_tmhthh", NULL, NULL, "1992",
	"Teenage Mutant Ninja Turtles - The Hyperstone Heist (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tmnthhRomInfo, md_tmnthhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Hero Turtles - Tournament Fighters (Euro)
static struct BurnRomInfo md_tmhttfRomDesc[] = {
	{ "teenage mutant hero turtles - tournament fighters (euro).bin", 0x200000, 0x3cd2b7e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmhttf)
STD_ROM_FN(md_tmhttf)

struct BurnDriver BurnDrvmd_tmhttf = {
	"md_tmhttf", NULL, NULL, NULL, "1993",
	"Teenage Mutant Hero Turtles - Tournament Fighters (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tmhttfRomInfo, md_tmhttfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - Tournament Fighters (Japan)
static struct BurnRomInfo md_tmnttfjRomDesc[] = {
	{ "teenage mutant ninja turtles - tournament fighters (jpn).bin", 0x200000, 0x8843f2c9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmnttfj)
STD_ROM_FN(md_tmnttfj)

struct BurnDriver BurnDrvmd_tmnttfj = {
	"md_tmnttfj", "md_tmhttf", NULL, NULL, "1993",
	"Teenage Mutant Ninja Turtles - Tournament Fighters (Japan)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tmnttfjRomInfo, md_tmnttfjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - Tournament Fighters (USA)
static struct BurnRomInfo md_tmnttfuRomDesc[] = {
	{ "teenage mutant ninja turtles - tournament fighters (usa).bin", 0x200000, 0x95b5484d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmnttfu)
STD_ROM_FN(md_tmnttfu)

struct BurnDriver BurnDrvmd_tmnttfu = {
	"md_tmnttfu", "md_tmhttf", NULL, NULL, "1993",
	"Teenage Mutant Ninja Turtles - Tournament Fighters (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tmnttfuRomInfo, md_tmnttfuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tekken 3 Special (Unl)
static struct BurnRomInfo md_tekkn3spRomDesc[] = {
	{ "tekken 3 special (unl).bin", 0x200000, 0x7fcae658, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tekkn3sp)
STD_ROM_FN(md_tekkn3sp)

struct BurnDriver BurnDrvmd_tekkn3sp = {
	"md_tekkn3sp", NULL, NULL, NULL, "1997",
	"Tekken 3 Special (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tekkn3spRomInfo, md_tekkn3spRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tekken Special (Taiwan) (Unl)
static struct BurnRomInfo md_TekkenspRomDesc[] = {
	{ "Tekken Special.md", 2097152, 0x010f6369, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Tekkensp)
STD_ROM_FN(md_Tekkensp)

struct BurnDriver Burnmd_Tekkensp = {
	"md_tekkensp", NULL, NULL, NULL, "1996",
	"Tekken Special (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_TekkenspRomInfo, md_TekkenspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tel-Tel Mahjong (Japan)
static struct BurnRomInfo md_telmahRomDesc[] = {
	{ "tel-tel mahjong (jpn).bin", 0x040000, 0x44817e92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_telmah)
STD_ROM_FN(md_telmah)

struct BurnDriver BurnDrvmd_telmah = {
	"md_telmah", NULL, NULL, NULL, "1990",
	"Tel-Tel Mahjong (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_telmahRomInfo, md_telmahRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tel-Tel Stadium (Japan)
static struct BurnRomInfo md_telstadRomDesc[] = {
	{ "md-tsd.bin", 0x080000, 0x54cf8c29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_telstad)
STD_ROM_FN(md_telstad)

struct BurnDriver BurnDrvmd_telstad = {
	"md_telstad", NULL, NULL, NULL, "1990",
	"Tel-Tel Stadium (Japan)\0", NULL, "Sunsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_telstadRomInfo, md_telstadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Telebradesco Residencia (Brazil)
static struct BurnRomInfo md_telebradRomDesc[] = {
	{ "telebradesco residencia (bra).bin", 0x040000, 0x1db99045, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_telebrad)
STD_ROM_FN(md_telebrad)

struct BurnDriver BurnDrvmd_telebrad = {
	"md_telebrad", NULL, NULL, NULL, "199?",
	"Telebradesco Residencia (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_telebradRomInfo, md_telebradRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Terminator, The (Euro)
static struct BurnRomInfo md_termintrRomDesc[] = {
	{ "mpr-14925.bin", 0x100000, 0x15f4d302, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_termintr)
STD_ROM_FN(md_termintr)

struct BurnDriver BurnDrvmd_termintr = {
	"md_termintr", NULL, NULL, NULL, "1991",
	"Terminator, The (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_termintrRomInfo, md_termintrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Terminator, The (USA)
static struct BurnRomInfo md_termintruRomDesc[] = {
	{ "terminator, the (usa).bin", 0x100000, 0x31a629be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_termintru)
STD_ROM_FN(md_termintru)

struct BurnDriver BurnDrvmd_termintru = {
	"md_termintru", "md_termintr", NULL, NULL, "1991",
	"Terminator, The (USA)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_termintruRomInfo, md_termintruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Terminator, The (Remastered Hack, USA)
// http://www.romhacking.net/hacks/5512/
static struct BurnRomInfo md_termintruhRomDesc[] = {
	{ "terminator, the (remastered hack, usa).bin", 1139804, 0xd1fa8dfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_termintruh)
STD_ROM_FN(md_termintruh)

struct BurnDriver BurnDrvmd_termintruh = {
	"md_termintruh", "md_termintr", NULL, NULL, "2020",
	"Terminator, The - Remastered Edition (Hack, USA)\0", NULL, "Linkuei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_termintruhRomInfo, md_termintruhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Test Drive II - The Duel (Euro, USA)
static struct BurnRomInfo md_td2RomDesc[] = {
	{ "test drive ii - the duel (euro, usa).bin", 0x100000, 0xf9bdf8c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_td2)
STD_ROM_FN(md_td2)

struct BurnDriver BurnDrvmd_td2 = {
	"md_td2", NULL, NULL, NULL, "1992",
	"Test Drive II - The Duel (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_td2RomInfo, md_td2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tetris (Japan)
static struct BurnRomInfo md_tetrisRomDesc[] = {
	{ "mpr-12356+mpr-12357.bin", 0x040000, 0x4ce90db0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tetris)
STD_ROM_FN(md_tetris)

struct BurnDriver BurnDrvmd_tetris = {
	"md_tetris", NULL, NULL, NULL, "1989",
	"Tetris (Japan)\0", NULL, "Tetris", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_tetrisRomInfo, md_tetrisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Theme Park (Euro, USA)
static struct BurnRomInfo md_themeprkRomDesc[] = {
	{ "tpb10.bin", 0x200000, 0x289da2c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_themeprk)
STD_ROM_FN(md_themeprk)

struct BurnDriver BurnDrvmd_themeprk = {
	"md_themeprk", NULL, NULL, NULL, "1995",
	"Theme Park (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_themeprkRomInfo, md_themeprkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New Zealand Story, The (Japan)
static struct BurnRomInfo md_tnzsRomDesc[] = {
	{ "new zealand story, the (jpn).bin", 0x080000, 0x1c77ad21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnzs)
STD_ROM_FN(md_tnzs)

struct BurnDriver BurnDrvmd_tnzs = {
	"md_tnzs", NULL, NULL, NULL, "1990",
	"New Zealand Story, The (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tnzsRomInfo, md_tnzsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thomas the Tank Engine & Friends (USA)
static struct BurnRomInfo md_thomasRomDesc[] = {
	{ "thomas the tank engine & friends (usa).bin", 0x100000, 0x1a406299, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thomas)
STD_ROM_FN(md_thomas)

struct BurnDriver BurnDrvmd_thomas = {
	"md_thomas", NULL, NULL, NULL, "1993",
	"Thomas the Tank Engine & Friends (USA)\0", NULL, "THQ", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_thomasRomInfo, md_thomasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force II MD (Japan)
static struct BurnRomInfo md_tf2jRomDesc[] = {
	{ "thunder force ii md (jpn).bin", 0x080000, 0xe75ec3e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf2j)
STD_ROM_FN(md_tf2j)

struct BurnDriver BurnDrvmd_tf2j = {
	"md_tf2j", "md_tf2", NULL, NULL, "1989",
	"Thunder Force II MD (Japan)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_tf2jRomInfo, md_tf2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force III (Japan, USA)
static struct BurnRomInfo md_tf3RomDesc[] = {
	{ "thunder force iii (usa, jpn).bin", 0x080000, 0x1b3f399a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf3)
STD_ROM_FN(md_tf3)

struct BurnDriver BurnDrvmd_tf3 = {
	"md_tf3", NULL, NULL, NULL, "1990",
	"Thunder Force III (Japan, USA)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_tf3RomInfo, md_tf3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force III (Prototype, 19900801)
static struct BurnRomInfo md_tf3pRomDesc[] = {
	{ "thunder force iii (prototype - aug 1, 1990).bin", 0x080000, 0x2b5c2063, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf3p)
STD_ROM_FN(md_tf3p)

struct BurnDriver BurnDrvmd_tf3p = {
	"md_tf3p", "md_tf3", NULL, NULL, "1990",
	"Thunder Force III (Prototype, 19900801)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_tf3pRomInfo, md_tf3pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force IV (Euro)
static struct BurnRomInfo md_tf4RomDesc[] = {
	{ "mpr-15209.bin", 0x100000, 0xe7e3c05b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf4)
STD_ROM_FN(md_tf4)

struct BurnDriver BurnDrvmd_tf4 = {
	"md_tf4", NULL, NULL, NULL, "1993",
	"Thunder Force IV (Euro)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_tf4RomInfo, md_tf4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force IV (Japan)
static struct BurnRomInfo md_tf4jRomDesc[] = {
	{ "thunder force iv (jpn).bin", 0x100000, 0x8d606480, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf4j)
STD_ROM_FN(md_tf4j)

struct BurnDriver BurnDrvmd_tf4j = {
	"md_tf4j", "md_tf4", NULL, NULL, "1992",
	"Thunder Force IV (Japan)\0", NULL, "Technosoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_tf4jRomInfo, md_tf4jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lightening Force - Quest for the Darkstar (USA)
static struct BurnRomInfo md_lightforRomDesc[] = {
	{ "lightening force - quest for the darkstar (usa).bin", 0x100000, 0xc8f8c0e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lightfor)
STD_ROM_FN(md_lightfor)

struct BurnDriver BurnDrvmd_lightfor = {
	"md_lightfor", "md_tf4", NULL, NULL, "1992",
	"Lightening Force - Quest for the Darkstar (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_lightforRomInfo, md_lightforRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Fox (USA)
static struct BurnRomInfo md_tfoxRomDesc[] = {
	{ "thunder fox (usa).bin", 0x100000, 0x5463f50f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tfox)
STD_ROM_FN(md_tfox)

struct BurnDriver BurnDrvmd_tfox = {
	"md_tfox", NULL, NULL, NULL, "1991",
	"Thunder Fox (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tfoxRomInfo, md_tfoxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Fox (Japan)
static struct BurnRomInfo md_tfoxjRomDesc[] = {
	{ "thunder fox (jpn).bin", 0x100000, 0xeca6cffa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tfoxj)
STD_ROM_FN(md_tfoxj)

struct BurnDriver BurnDrvmd_tfoxj = {
	"md_tfoxj", "md_tfox", NULL, NULL, "1991",
	"Thunder Fox (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tfoxjRomInfo, md_tfoxjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Pro Wrestling Retsuden (Japan)
static struct BurnRomInfo md_tpwresRomDesc[] = {
	{ "mpr-14675.bin", 0x080000, 0x24408c73, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tpwres)
STD_ROM_FN(md_tpwres)

struct BurnDriver BurnDrvmd_tpwres = {
	"md_tpwres", NULL, NULL, NULL, "1992",
	"Thunder Pro Wrestling Retsuden (Japan)\0", NULL, "Human", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tpwresRomInfo, md_tpwresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tick, The (USA)
static struct BurnRomInfo md_tickRomDesc[] = {
	{ "tick, the (usa).bin", 0x200000, 0x425132f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tick)
STD_ROM_FN(md_tick)

struct BurnDriver BurnDrvmd_tick = {
	"md_tick", NULL, NULL, NULL, "1994",
	"Tick, The (USA)\0", NULL, "Fox Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tickRomInfo, md_tickRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Time Killers (Euro)
static struct BurnRomInfo md_timekillRomDesc[] = {
	{ "time killers (euro).bin", 0x200000, 0xa4f48a1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_timekill)
STD_ROM_FN(md_timekill)

struct BurnDriver BurnDrvmd_timekill = {
	"md_timekill", NULL, NULL, NULL, "1996",
	"Time Killers (Euro)\0", NULL, "Black Pearl", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_timekillRomInfo, md_timekillRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Time Killers (USA)
static struct BurnRomInfo md_timekilluRomDesc[] = {
	{ "time killers (usa).bin", 0x200000, 0x4b5f52ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_timekillu)
STD_ROM_FN(md_timekillu)

struct BurnDriver BurnDrvmd_timekillu = {
	"md_timekillu", "md_timekill", NULL, NULL, "1996",
	"Time Killers (USA)\0", NULL, "Black Pearl", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_timekilluRomInfo, md_timekilluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Time Trax (Prototype)
static struct BurnRomInfo md_timetraxpRomDesc[] = {
	{ "Time Trax (prototype).bin", 1048576, 0xdff045eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_timetraxp)
STD_ROM_FN(md_timetraxp)

struct BurnDriver BurnDrvmd_timetraxp = {
	"md_timetraxp", NULL, NULL, NULL, "1994",
	"Time Trax (Prototype)\0", NULL, "Black Pearl Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_timetraxpRomInfo, md_timetraxpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TinHead (USA)
static struct BurnRomInfo md_tinheadRomDesc[] = {
	{ "tinhead (usa).bin", 0x100000, 0xd6724b84, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tinhead)
STD_ROM_FN(md_tinhead)

struct BurnDriver BurnDrvmd_tinhead = {
	"md_tinhead", NULL, NULL, NULL, "1993",
	"TinHead (USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tinheadRomInfo, md_tinheadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tintin au Tibet (Euro)
static struct BurnRomInfo md_tintinRomDesc[] = {
	{ "tintin au tibet (euro).bin", 0x200000, 0x4243caf3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tintin)
STD_ROM_FN(md_tintin)

struct BurnDriver BurnDrvmd_tintin = {
	"md_tintin", NULL, NULL, NULL, "1995",
	"Tintin au Tibet (Euro)\0", NULL, "Infogrames", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_tintinRomInfo, md_tintinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures - Acme All-Stars (Euro)
static struct BurnRomInfo md_ttacmeRomDesc[] = {
	{ "mpr-17066.bin", 0x100000, 0x1227b2b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttacme)
STD_ROM_FN(md_ttacme)

struct BurnDriver BurnDrvmd_ttacme = {
	"md_ttacme", NULL, NULL, NULL, "1994",
	"Tiny Toon Adventures - Acme All-Stars (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ttacmeRomInfo, md_ttacmeRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures - Acme All-Stars (USA, Korea)
static struct BurnRomInfo md_ttacmeuRomDesc[] = {
	{ "tiny toon adventures - acme all-stars (usa, kor).bin", 0x100000, 0x2f9faa1d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttacmeu)
STD_ROM_FN(md_ttacmeu)

struct BurnDriver BurnDrvmd_ttacmeu = {
	"md_ttacmeu", "md_ttacme", NULL, NULL, "1994",
	"Tiny Toon Adventures - Acme All-Stars (USA, Korea)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ttacmeuRomInfo, md_ttacmeuRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures - Buster's Hidden Treasure (Euro)
static struct BurnRomInfo md_ttoonbhtRomDesc[] = {
	{ "mpr-15406.bin", 0x080000, 0xd10fba51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttoonbht)
STD_ROM_FN(md_ttoonbht)

struct BurnDriver BurnDrvmd_ttoonbht = {
	"md_ttoonbht", NULL, NULL, NULL, "1993",
	"Tiny Toon Adventures - Buster's Hidden Treasure (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ttoonbhtRomInfo, md_ttoonbhtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures (Korea)
static struct BurnRomInfo md_ttoonbhtkRomDesc[] = {
	{ "tiny toon adventures (kor).bin", 0x080000, 0x4ca3a8fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttoonbhtk)
STD_ROM_FN(md_ttoonbhtk)

struct BurnDriver BurnDrvmd_ttoonbhtk = {
	"md_ttoonbhtk", "md_ttoonbht", NULL, NULL, "1993",
	"Tiny Toon Adventures (Korea)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ttoonbhtkRomInfo, md_ttoonbhtkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures - Buster's Hidden Treasure (USA)
static struct BurnRomInfo md_ttoonbhtuRomDesc[] = {
	{ "tiny toon adventures - buster's hidden treasure (usa).bin", 0x080000, 0xa26d3ae0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttoonbhtu)
STD_ROM_FN(md_ttoonbhtu)

struct BurnDriver BurnDrvmd_ttoonbhtu = {
	"md_ttoonbhtu", "md_ttoonbht", NULL, NULL, "1993",
	"Tiny Toon Adventures - Buster's Hidden Treasure (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ttoonbhtuRomInfo, md_ttoonbhtuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TNN Bass Tournament of Champions (USA)
static struct BurnRomInfo md_tnnbassRomDesc[] = {
	{ "tnn bass tournament of champions (usa).bin", 0x100000, 0xc83ffa1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnnbass)
STD_ROM_FN(md_tnnbass)

struct BurnDriver BurnDrvmd_tnnbass = {
	"md_tnnbass", NULL, NULL, NULL, "1993",
	"TNN Bass Tournament of Champions (USA)\0", NULL, "American Softworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tnnbassRomInfo, md_tnnbassRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TNN Outdoors Bass Tournament '96 (USA)
static struct BurnRomInfo md_tnnoutRomDesc[] = {
	{ "tnn outdoors bass tournament '96 (usa).bin", 0x200000, 0x5c523c0b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnnout)
STD_ROM_FN(md_tnnout)

struct BurnDriver BurnDrvmd_tnnout = {
	"md_tnnout", NULL, NULL, NULL, "1996",
	"TNN Outdoors Bass Tournament '96 (USA)\0", NULL, "American Softworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tnnoutRomInfo, md_tnnoutRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Todd's Adventures in Slime World (USA)
static struct BurnRomInfo md_slimewRomDesc[] = {
	{ "todd's adventures in slime world (usa).bin", 0x080000, 0x652e8b7d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slimew)
STD_ROM_FN(md_slimew)

struct BurnDriver BurnDrvmd_slimew = {
	"md_slimew", NULL, NULL, NULL, "1991",
	"Todd's Adventures in Slime World (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_slimewRomInfo, md_slimewRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Slime World (Japan)
static struct BurnRomInfo md_slimewjRomDesc[] = {
	{ "slime world (jpn).bin", 0x080000, 0x7ff5529f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slimewj)
STD_ROM_FN(md_slimewj)

struct BurnDriver BurnDrvmd_slimewj = {
	"md_slimewj", "md_slimew", NULL, NULL, "1992",
	"Slime World (Japan)\0", NULL, "Micro World", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_slimewjRomInfo, md_slimewjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl (World, Rev. A)
static struct BurnRomInfo md_toejamRomDesc[] = {
	{ "mpr-14236a.bin", 0x100000, 0x7a588f4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejam)
STD_ROM_FN(md_toejam)

struct BurnDriver BurnDrvmd_toejam = {
	"md_toejam", NULL, NULL, NULL, "1992",
	"Toe Jam & Earl (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_toejamRomInfo, md_toejamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl (World)
static struct BurnRomInfo md_toejamaRomDesc[] = {
	{ "toe jam & earl (world).bin", 0x100000, 0xd1b36786, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejama)
STD_ROM_FN(md_toejama)

struct BurnDriver BurnDrvmd_toejama = {
	"md_toejama", "md_toejam", NULL, NULL, "1992",
	"Toe Jam & Earl (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_toejamaRomInfo, md_toejamaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl in Panic on Funkotron (Euro)
static struct BurnRomInfo md_toejam2RomDesc[] = {
	{ "mpr-16179.bin", 0x200000, 0x47b0a871, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejam2)
STD_ROM_FN(md_toejam2)

struct BurnDriver BurnDrvmd_toejam2 = {
	"md_toejam2", NULL, NULL, NULL, "1993",
	"Toe Jam & Earl in Panic on Funkotron (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toejam2RomInfo, md_toejam2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl in Panic auf Funkotron (Euro, German)
static struct BurnRomInfo md_toejam2gRomDesc[] = {
	{ "toe jam & earl in panic auf funkotron (germany).bin", 0x200000, 0x4081b9f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejam2g)
STD_ROM_FN(md_toejam2g)

struct BurnDriver BurnDrvmd_toejam2g = {
	"md_toejam2g", "md_toejam2", NULL, NULL, "1993",
	"Toe Jam & Earl in Panic auf Funkotron (Euro, German)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toejam2gRomInfo, md_toejam2gRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl in Panic on Funkotron (Japan)
static struct BurnRomInfo md_toejam2jRomDesc[] = {
	{ "toe jam & earl in panic on funkotron (jpn).bin", 0x200000, 0xe1b36850, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejam2j)
STD_ROM_FN(md_toejam2j)

struct BurnDriver BurnDrvmd_toejam2j = {
	"md_toejam2j", "md_toejam2", NULL, NULL, "1993",
	"Toe Jam & Earl in Panic on Funkotron (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toejam2jRomInfo, md_toejam2jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl in Panic on Funkotron (USA)
static struct BurnRomInfo md_toejam2uRomDesc[] = {
	{ "toe jam & earl in panic on funkotron (usa).bin", 0x200000, 0xaa021bdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejam2u)
STD_ROM_FN(md_toejam2u)

struct BurnDriver BurnDrvmd_toejam2u = {
	"md_toejam2u", "md_toejam2", NULL, NULL, "1993",
	"Toe Jam & Earl in Panic on Funkotron (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toejam2uRomInfo, md_toejam2uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toki - Going Ape Spit ~ JuJu Densetsu (World, Rev. A)
static struct BurnRomInfo md_tokiRomDesc[] = {
	{ "mpr-14464a.bin", 0x080000, 0x7362c3f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toki)
STD_ROM_FN(md_toki)

struct BurnDriver BurnDrvmd_toki = {
	"md_toki", NULL, NULL, NULL, "1991",
	"Toki - Going Ape Spit ~ JuJu Densetsu (World, Rev. A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tokiRomInfo, md_tokiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toki - Going Ape Spit ~ JuJu Densetsu (World)
static struct BurnRomInfo md_toki1RomDesc[] = {
	{ "toki - going ape spit -- juju densetsu (world).bin", 0x080000, 0xd09b1ef1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toki1)
STD_ROM_FN(md_toki1)

struct BurnDriver BurnDrvmd_toki1 = {
	"md_toki1", "md_toki", NULL, NULL, "1991",
	"Toki - Going Ape Spit ~ JuJu Densetsu (World)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toki1RomInfo, md_toki1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom and Jerry - Frantic Antics (USA, 1993)
static struct BurnRomInfo md_tomjerryRomDesc[] = {
	{ "tom and jerry - frantic antics (usa) (1993).bin", 0x100000, 0xb9992e1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tomjerry)
STD_ROM_FN(md_tomjerry)

struct BurnDriver BurnDrvmd_tomjerry = {
	"md_tomjerry", NULL, NULL, NULL, "1993",
	"Tom and Jerry - Frantic Antics (USA, 1993)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tomjerryRomInfo, md_tomjerryRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom and Jerry - Frantic Antics (USA, 1994)
static struct BurnRomInfo md_tomjerry1RomDesc[] = {
	{ "tom and jerry - frantic antics (usa) (1994).bin", 0x100000, 0x3044460c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tomjerry1)
STD_ROM_FN(md_tomjerry1)

struct BurnDriver BurnDrvmd_tomjerry1 = {
	"md_tomjerry1", "md_tomjerry", NULL, NULL, "1994",
	"Tom and Jerry - Frantic Antics (USA, 1994)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tomjerry1RomInfo, md_tomjerry1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tony La Russa Baseball (USA, Oceania)
static struct BurnRomInfo md_larussaRomDesc[] = {
	{ "tony la russa baseball (usa, aus).bin", 0x100000, 0x24629c78, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_larussa)
STD_ROM_FN(md_larussa)

struct BurnDriver BurnDrvmd_larussa = {
	"md_larussa", NULL, NULL, NULL, "1993",
	"Tony La Russa Baseball (USA, Oceania)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_larussaRomInfo, md_larussaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Top Gear 2 (USA)
static struct BurnRomInfo md_topgear2RomDesc[] = {
	{ "top gear 2 (usa).bin", 0x100000, 0xbd3074d2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_topgear2)
STD_ROM_FN(md_topgear2)

struct BurnDriver BurnDrvmd_topgear2 = {
	"md_topgear2", NULL, NULL, NULL, "1994",
	"Top Gear 2 (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_topgear2RomInfo, md_topgear2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Top Pro Golf (Japan)
static struct BurnRomInfo md_topgolfRomDesc[] = {
	{ "mpr-14853.bin", 0x100000, 0x62bad606, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_topgolf)
STD_ROM_FN(md_topgolf)

struct BurnDriver BurnDrvmd_topgolf = {
	"md_topgolf", NULL, NULL, NULL, "1992",
	"Top Pro Golf (Japan)\0", NULL, "Soft Vision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_topgolfRomInfo, md_topgolfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Top Pro Golf 2 (Japan)
static struct BurnRomInfo md_topgolf2RomDesc[] = {
	{ "top pro golf 2 (jpn).bin", 0x100000, 0xb8ce98b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_topgolf2)
STD_ROM_FN(md_topgolf2)

struct BurnDriver BurnDrvmd_topgolf2 = {
	"md_topgolf2", "md_chichi", NULL, NULL, "1993",
	"Top Pro Golf 2 (Japan)\0", NULL, "Soft Vision", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_topgolf2RomInfo, md_topgolf2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Total Football (Euro)
static struct BurnRomInfo md_totlfootRomDesc[] = {
	{ "total football (euro).bin", 0x200000, 0x8360b66a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_totlfoot)
STD_ROM_FN(md_totlfoot)

struct BurnDriver BurnDrvmd_totlfoot = {
	"md_totlfoot", NULL, NULL, NULL, "1995",
	"Total Football (Euro)\0", NULL, "Domark", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_totlfootRomInfo, md_totlfootRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toughman Contest (Euro, USA)
static struct BurnRomInfo md_toughmanRomDesc[] = {
	{ "toughman contest (euro, usa).bin", 0x400000, 0xe19fbc93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toughman)
STD_ROM_FN(md_toughman)

struct BurnDriver BurnDrvmd_toughman = {
	"md_toughman", NULL, NULL, NULL, "1995",
	"Toughman Contest (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_toughmanRomInfo, md_toughmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toxic Crusaders (USA)
static struct BurnRomInfo md_toxiccRomDesc[] = {
	{ "toxic crusaders (usa).bin", 0x080000, 0x11fd46ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toxicc)
STD_ROM_FN(md_toxicc)

struct BurnDriver BurnDrvmd_toxicc = {
	"md_toxicc", NULL, NULL, NULL, "1992",
	"Toxic Crusaders (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_toxiccRomInfo, md_toxiccRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toy Story (Euro)
static struct BurnRomInfo md_toystoryRomDesc[] = {
	{ "mpr-18848.bin", 0x400000, 0x8e89a9f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toystory)
STD_ROM_FN(md_toystory)

struct BurnDriver BurnDrvmd_toystory = {
	"md_toystory", NULL, NULL, NULL, "1996",
	"Toy Story (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toystoryRomInfo, md_toystoryRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toy Story (USA)
static struct BurnRomInfo md_toystoryuRomDesc[] = {
	{ "toy story (usa).bin", 0x400000, 0x829fe313, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toystoryu)
STD_ROM_FN(md_toystoryu)

struct BurnDriver BurnDrvmd_toystoryu = {
	"md_toystoryu", "md_toystory", NULL, NULL, "1996",
	"Toy Story (USA)\0", NULL, "Disney Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toystoryuRomInfo, md_toystoryuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toys (USA)
static struct BurnRomInfo md_toysRomDesc[] = {
	{ "mpr-15574.bin", 0x100000, 0xcbc9951b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toys)
STD_ROM_FN(md_toys)

struct BurnDriver BurnDrvmd_toys = {
	"md_toys", NULL, NULL, NULL, "1993",
	"Toys (USA)\0", NULL, "Absolute Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_toysRomInfo, md_toysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Trampoline Terror! (USA)
static struct BurnRomInfo md_trampterRomDesc[] = {
	{ "trampoline terror! (usa).bin", 0x040000, 0xaabb349f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_trampter)
STD_ROM_FN(md_trampter)

struct BurnDriver BurnDrvmd_trampter = {
	"md_trampter", NULL, NULL, NULL, "1990",
	"Trampoline Terror! (USA)\0", NULL, "Dreamworks", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_trampterRomInfo, md_trampterRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Traysia (USA)
static struct BurnRomInfo md_traysiaRomDesc[] = {
	{ "traysia (usa).bin", 0x100000, 0x96184f4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_traysia)
STD_ROM_FN(md_traysia)

struct BurnDriver BurnDrvmd_traysia = {
	"md_traysia", NULL, NULL, NULL, "1992",
	"Traysia (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_traysiaRomInfo, md_traysiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Minato no Traysia (Japan)
static struct BurnRomInfo md_traysiajRomDesc[] = {
	{ "minato no traysia (jpn).bin", 0x100000, 0xbd89fd09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_traysiaj)
STD_ROM_FN(md_traysiaj)

struct BurnDriver BurnDrvmd_traysiaj = {
	"md_traysiaj", "md_traysia", NULL, NULL, "1992",
	"Minato no Traysia (Japan)\0", NULL, "Riot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_traysiajRomInfo, md_traysiajRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Triple Play '96 (USA)
static struct BurnRomInfo md_tplay96RomDesc[] = {
	{ "triple play '96 (usa).bin", 0x400000, 0xf1748e91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tplay96)
STD_ROM_FN(md_tplay96)

struct BurnDriver BurnDrvmd_tplay96 = {
	"md_tplay96", NULL, NULL, NULL, "1995",
	"Triple Play '96 (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tplay96RomInfo, md_tplay96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Triple Play Gold (USA)
static struct BurnRomInfo md_tplaygldRomDesc[] = {
	{ "triple play gold (usa).bin", 0x400000, 0xbbe69017, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tplaygld)
STD_ROM_FN(md_tplaygld)

struct BurnDriver BurnDrvmd_tplaygld = {
	"md_tplaygld", NULL, NULL, NULL, "1996",
	"Triple Play Gold (USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tplaygldRomInfo, md_tplaygldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Triple Play Gold (USA, Alt)
static struct BurnRomInfo md_tplaygldaRomDesc[] = {
	{ "triple play gold (usa) (alt).bin", 0x400000, 0xa89638a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tplayglda)
STD_ROM_FN(md_tplayglda)

struct BurnDriver BurnDrvmd_tplayglda = {
	"md_tplayglda", "md_tplaygld", NULL, NULL, "1995",
	"Triple Play Gold (USA, Alt)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_tplaygldaRomInfo, md_tplaygldaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Trouble Shooter (USA)
static struct BurnRomInfo md_troubshtRomDesc[] = {
	{ "trouble shooter (usa).bin", 0x080000, 0xbecfc39b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_troubsht)
STD_ROM_FN(md_troubsht)

struct BurnDriver BurnDrvmd_troubsht = {
	"md_troubsht", NULL, NULL, NULL, "1991",
	"Trouble Shooter (USA)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_troubshtRomInfo, md_troubshtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Mania (Japan)
static struct BurnRomInfo md_btlmaniaRomDesc[] = {
	{ "battle mania (jpn).bin", 0x080000, 0xa76c4a29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btlmania)
STD_ROM_FN(md_btlmania)

struct BurnDriver BurnDrvmd_btlmania = {
	"md_btlmania", "md_troubsht", NULL, NULL, "1992",
	"Battle Mania (Japan)\0", NULL, "Vic Tokai", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_btlmaniaRomInfo, md_btlmaniaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Troy Aikman NFL Football (USA)
static struct BurnRomInfo md_troyaikRomDesc[] = {
	{ "troy aikman nfl football (usa).bin", 0x200000, 0x015f2713, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_troyaik)
STD_ROM_FN(md_troyaik)

struct BurnDriver BurnDrvmd_troyaik = {
	"md_troyaik", NULL, NULL, NULL, "1994",
	"Troy Aikman NFL Football (USA)\0", NULL, "Tradewest", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_troyaikRomInfo, md_troyaikRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// True Lies (World)
static struct BurnRomInfo md_trueliesRomDesc[] = {
	{ "true lies (world).bin", 0x200000, 0x18c09468, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_truelies)
STD_ROM_FN(md_truelies)

struct BurnDriver BurnDrvmd_truelies = {
	"md_truelies", NULL, NULL, NULL, "1995",
	"True Lies (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_trueliesRomInfo, md_trueliesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Truxton (Euro, USA) ~ Tatsujin (Japan)
static struct BurnRomInfo md_truxtonRomDesc[] = {
	{ "truxton -- tatsujin (world).bin", 0x080000, 0x5bd0882d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_truxton)
STD_ROM_FN(md_truxton)

struct BurnDriver BurnDrvmd_truxton = {
	"md_truxton", NULL, NULL, NULL, "1989",
	"Truxton (Euro, USA) ~ Tatsujin (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_truxtonRomInfo, md_truxtonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tun Shi Tian Di III (China, Simple Chinese) (Unl)
static struct BurnRomInfo md_tunshiRomDesc[] = {
	{ "tun shi tian di iii (chi) (simple chinese) (unl).bin", 0x200000, 0xea57b668, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tunshi)
STD_ROM_FN(md_tunshi)

struct BurnDriver BurnDrvmd_tunshi = {
	"md_tunshi", NULL, NULL, NULL, "1997",
	"Tun Shi Tian Di III (China, Simple Chinese) (Unl)\0", NULL, "SKOB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_tunshiRomInfo, md_tunshiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tun Shi Tian Di III (China) (Unl)
static struct BurnRomInfo md_tunshi1RomDesc[] = {
	{ "tun shi tian di iii (chi) (unl).bin", 0x200000, 0xb23c4166, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tunshi1)
STD_ROM_FN(md_tunshi1)

struct BurnDriver BurnDrvmd_tunshi1 = {
	"md_tunshi1", "md_tunshi", NULL, NULL, "1997",
	"Tun Shi Tian Di III (China) (Unl)\0", NULL, "SKOB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_tunshi1RomInfo, md_tunshi1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turbo OutRun (Euro, Japan)
static struct BurnRomInfo md_toutrunRomDesc[] = {
	{ "turbo outrun (euro, jpn).bin", 0x080000, 0x0c661369, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toutrun)
STD_ROM_FN(md_toutrun)

struct BurnDriver BurnDrvmd_toutrun = {
	"md_toutrun", NULL, NULL, NULL, "1992",
	"Turbo OutRun (Euro, Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_toutrunRomInfo, md_toutrunRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turbo OutRun (Prototype, 19911209)
static struct BurnRomInfo md_toutrunpRomDesc[] = {
	{ "turbo outrun (prototype - dec 9, 1991).bin", 0x080000, 0x2a7f2b36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toutrunp)
STD_ROM_FN(md_toutrunp)

struct BurnDriver BurnDrvmd_toutrunp = {
	"md_toutrunp", "md_toutrun", NULL, NULL, "1992",
	"Turbo OutRun (Prototype, 19911209)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_toutrunpRomInfo, md_toutrunpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turrican (Euro, USA)
static struct BurnRomInfo md_turricanRomDesc[] = {
	{ "turrican (euro, usa).bin", 0x080000, 0x634d67a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_turrican)
STD_ROM_FN(md_turrican)

struct BurnDriver BurnDrvmd_turrican = {
	"md_turrican", NULL, NULL, NULL, "1991",
	"Turrican (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_turricanRomInfo, md_turricanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turrican (Hack, Colors and Lifebar Fix)
static struct BurnRomInfo md_turricanfRomDesc[] = {
	{ "Turrican (USA, fixed Linkuei and Helder).bin", 0x080000, 0x60f8bbdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_turricanf)
STD_ROM_FN(md_turricanf)

struct BurnDriver BurnDrvmd_turricanf = {
	"md_turricanf", "md_turrican", NULL, NULL, "2015",
	"Turrican (Hack, Colors and Lifebar Fix)\0", NULL, "Linkuei & Helder", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_turricanfRomInfo, md_turricanfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twin Cobra (USA)
static struct BurnRomInfo md_twincobrRomDesc[] = {
	{ "twin cobra (usa).bin", 0x0a0000, 0x2c708248, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twincobr)
STD_ROM_FN(md_twincobr)

struct BurnDriver BurnDrvmd_twincobr = {
	"md_twincobr", NULL, NULL, NULL, "1991",
	"Twin Cobra (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_twincobrRomInfo, md_twincobrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kyuukyoku Tiger (Japan)
static struct BurnRomInfo md_ktigerRomDesc[] = {
	{ "kyuukyoku tiger (jpn).bin", 0x0a0000, 0x61276d21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ktiger)
STD_ROM_FN(md_ktiger)

struct BurnDriver BurnDrvmd_ktiger = {
	"md_ktiger", "md_twincobr", NULL, NULL, "1991",
	"Kyuukyoku Tiger (Japan)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_ktigerRomInfo, md_ktigerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twinkle Tale (Japan)
static struct BurnRomInfo md_twinkletRomDesc[] = {
	{ "twinkle tale (jpn).bin", 0x100000, 0xd757f924, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twinklet)
STD_ROM_FN(md_twinklet)

struct BurnDriver BurnDrvmd_twinklet = {
	"md_twinklet", NULL, NULL, NULL, "1992",
	"Twinkle Tale (Japan)\0", NULL, "Toyo Recording Co.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_twinkletRomInfo, md_twinkletRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twinkle Tale (Hack, English)
// http://www.romhacking.net/translations/1103/
static struct BurnRomInfo md_twinkleteRomDesc[] = {
	{ "twinkle tale (english translation).bin", 0x100000, 0x0c43b66b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twinklete)
STD_ROM_FN(md_twinklete)

struct BurnDriver BurnDrvmd_twinklete = {
	"md_twinklete", "md_twinklet", NULL, NULL, "2007",
	"Twinkle Tale (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_twinkleteRomInfo, md_twinkleteRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twin Hawk (Euro) ~ Daisenpuu (Japan)
static struct BurnRomInfo md_twinhawkRomDesc[] = {
	{ "twin hawk -- daisenpuu (euro, jpn).bin", 0x080000, 0xa2ec8c67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twinhawk)
STD_ROM_FN(md_twinhawk)

struct BurnDriver BurnDrvmd_twinhawk = {
	"md_twinhawk", NULL, NULL, NULL, "1990",
	"Twin Hawk (Euro) ~ Daisenpuu (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_twinhawkRomInfo, md_twinhawkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Two Crude Dudes (Euro)
static struct BurnRomInfo md_twocrudeRomDesc[] = {
	{ "two crude dudes (euro).bin", 0x100000, 0xb6d90a10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twocrude)
STD_ROM_FN(md_twocrude)

struct BurnDriver BurnDrvmd_twocrude = {
	"md_twocrude", NULL, NULL, NULL, "1992",
	"Two Crude Dudes (Euro)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_twocrudeRomInfo, md_twocrudeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Two Crude Dudes (USA)
static struct BurnRomInfo md_twocrudeuRomDesc[] = {
	{ "two crude dudes (usa).bin", 0x100000, 0x721b5744, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twocrudeu)
STD_ROM_FN(md_twocrudeu)

struct BurnDriver BurnDrvmd_twocrudeu = {
	"md_twocrudeu", "md_twocrude", NULL, NULL, "1992",
	"Two Crude Dudes (USA)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_twocrudeuRomInfo, md_twocrudeuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crude Buster (Japan)
static struct BurnRomInfo md_crudebRomDesc[] = {
	{ "crude buster (jpn).bin", 0x100000, 0xaffb4b00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crudeb)
STD_ROM_FN(md_crudeb)

struct BurnDriver BurnDrvmd_crudeb = {
	"md_crudeb", "md_twocrude", NULL, NULL, "1992",
	"Crude Buster (Japan)\0", NULL, "Data East", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_crudebRomInfo, md_crudebRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Two Tribes - Populous II (Euro)
static struct BurnRomInfo md_twotribeRomDesc[] = {
	{ "mpr-15652.bin", 0x100000, 0xee988bd9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twotribe)
STD_ROM_FN(md_twotribe)

struct BurnDriver BurnDrvmd_twotribe = {
	"md_twotribe", NULL, NULL, NULL, "1993",
	"Two Tribes - Populous II (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_twotribeRomInfo, md_twotribeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat 3 (Euro)
static struct BurnRomInfo md_umk3RomDesc[] = {
	{ "pal_ultimate_mk3.bin", 0x400000, 0xecfb5cb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3)
STD_ROM_FN(md_umk3)

struct BurnDriver BurnDrvmd_umk3 = {
	"md_umk3", NULL, NULL, NULL, "1996",
	"Ultimate Mortal Kombat 3 (Euro)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3RomInfo, md_umk3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat 3 (USA)
static struct BurnRomInfo md_umk3uRomDesc[] = {
	{ "ultimate mortal kombat 3 (usa).bin", 0x400000, 0x7290770d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3u)
STD_ROM_FN(md_umk3u)

struct BurnDriver BurnDrvmd_umk3u = {
	"md_umk3u", "md_umk3", NULL, NULL, "1996",
	"Ultimate Mortal Kombat 3 (USA)\0", NULL, "Williams", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3uRomInfo, md_umk3uRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Qix (USA)
static struct BurnRomInfo md_ultqixRomDesc[] = {
	{ "ultimate qix (usa).bin", 0x040000, 0xd83369d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultqix)
STD_ROM_FN(md_ultqix)

struct BurnDriver BurnDrvmd_ultqix = {
	"md_ultqix", NULL, NULL, NULL, "1991",
	"Ultimate Qix (USA)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ACTION, 0,
	MegadriveGetZipName, md_ultqixRomInfo, md_ultqixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Volfied (Japan)
static struct BurnRomInfo md_volfiedRomDesc[] = {
	{ "volfied (jpn).bin", 0x040000, 0xb0c5e3f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_volfied)
STD_ROM_FN(md_volfied)

struct BurnDriver BurnDrvmd_volfied = {
	"md_volfied", "md_ultqix", NULL, NULL, "1991",
	"Volfied (Japan)\0", NULL, "Taito", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ACTION, 0,
	MegadriveGetZipName, md_volfiedRomInfo, md_volfiedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Soccer (Euro)
static struct BurnRomInfo md_ultsoccrRomDesc[] = {
	{ "mpr-15819.bin", 0x100000, 0x83db6e58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultsoccr)
STD_ROM_FN(md_ultsoccr)

struct BurnDriver BurnDrvmd_ultsoccr = {
	"md_ultsoccr", NULL, NULL, NULL, "1993",
	"Ultimate Soccer (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_ultsoccrRomInfo, md_ultsoccrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultraman (Japan)
static struct BurnRomInfo md_ultramanRomDesc[] = {
	{ "ultraman (jpn).bin", 0x080000, 0x83b4d5fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultraman)
STD_ROM_FN(md_ultraman)

struct BurnDriver BurnDrvmd_ultraman = {
	"md_ultraman", NULL, NULL, NULL, "1993",
	"Ultraman (Japan)\0", NULL, "Ma-Ba", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ultramanRomInfo, md_ultramanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Uncharted Waters (USA)
static struct BurnRomInfo md_unchartdRomDesc[] = {
	{ "uncharted waters (usa).bin", 0x100000, 0x4edaec59, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_unchartd)
STD_ROM_FN(md_unchartd)

struct BurnDriver BurnDrvmd_unchartd = {
	"md_unchartd", NULL, NULL, NULL, "1992",
	"Uncharted Waters (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_unchartdRomInfo, md_unchartdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Daikoukai Jidai (Japan)
static struct BurnRomInfo md_daikokaiRomDesc[] = {
	{ "daikoukai jidai (jpn).bin", 0x100000, 0x5a652458, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daikokai)
STD_ROM_FN(md_daikokai)

struct BurnDriver BurnDrvmd_daikokai = {
	"md_daikokai", "md_unchartd", NULL, NULL, "1992",
	"Daikoukai Jidai (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_daikokaiRomInfo, md_daikokaiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New Horizons (USA)
static struct BurnRomInfo md_newhorizRomDesc[] = {
	{ "uncharted waters - new horizons (usa).bin", 0x200000, 0xead69824, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_newhoriz)
STD_ROM_FN(md_newhoriz)

struct BurnDriver BurnDrvmd_newhoriz = {
	"md_newhoriz", NULL, NULL, NULL, "1994",
	"New Horizons (USA)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_newhorizRomInfo, md_newhorizRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Daikoukai Jidai II (Japan)
static struct BurnRomInfo md_daikok2RomDesc[] = {
	{ "daikoukai jidai ii (jpn).bin", 0x200000, 0xe040f0da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_daikok2)
STD_ROM_FN(md_daikok2)

struct BurnDriver BurnDrvmd_daikok2 = {
	"md_daikok2", "md_newhoriz", NULL, NULL, "1994",
	"Daikoukai Jidai II (Japan)\0", NULL, "Koei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_daikok2RomInfo, md_daikok2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Undead Line (Japan)
static struct BurnRomInfo md_undeadRomDesc[] = {
	{ "undead line (jpn).bin", 0x100000, 0xfb3ca1e6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_undead)
STD_ROM_FN(md_undead)

struct BurnDriver BurnDrvmd_undead = {
	"md_undead", NULL, NULL, NULL, "1991",
	"Undead Line (Japan)\0", NULL, "Palsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_undeadRomInfo, md_undeadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Undead Line (Hack, English)
// Source: http://www.romhacking.net/translations/1223/
static struct BurnRomInfo md_undeadeRomDesc[] = {
	{ "undead line (english translation).bin", 0x100000, 0x53b9e72f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_undeade)
STD_ROM_FN(md_undeade)

struct BurnDriver BurnDrvmd_undeade = {
	"md_undeade", "md_undead", NULL, NULL, "2007",
	"Undead Line (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_undeadeRomInfo, md_undeadeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Universal Soldier (Euro, USA)
static struct BurnRomInfo md_univsoldRomDesc[] = {
	{ "universal soldier (euro, usa).bin", 0x100000, 0x352ebd49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_univsold)
STD_ROM_FN(md_univsold)

struct BurnDriver BurnDrvmd_univsold = {
	"md_univsold", NULL, NULL, NULL, "1992",
	"Universal Soldier (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_univsoldRomInfo, md_univsoldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Unnecessary Roughness 95 (USA)
static struct BurnRomInfo md_unnecessRomDesc[] = {
	{ "unnecessary roughness 95 (usa).bin", 0x200000, 0x9920e7b7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_unnecess)
STD_ROM_FN(md_unnecess)

struct BurnDriver BurnDrvmd_unnecess = {
	"md_unnecess", NULL, NULL, NULL, "1994",
	"Unnecessary Roughness 95 (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_unnecessRomInfo, md_unnecessRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Urban Strike (Euro, USA)
static struct BurnRomInfo md_ustrikeRomDesc[] = {
	{ "urban strike (euro, usa).bin", 0x200000, 0xcf690a75, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ustrike)
STD_ROM_FN(md_ustrike)

struct BurnDriver BurnDrvmd_ustrike = {
	"md_ustrike", NULL, NULL, NULL, "1994",
	"Urban Strike (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_ustrikeRomInfo, md_ustrikeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Uzu Keobukseon (Korea)
static struct BurnRomInfo md_uzukeoRomDesc[] = {
	{ "uzu keobukseon (kor).bin", 0x080000, 0xa7255ba8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_uzukeo)
STD_ROM_FN(md_uzukeo)

struct BurnDriver BurnDrvmd_uzukeo = {
	"md_uzukeo", NULL, NULL, NULL, "1992",
	"Uzu Keobukseon (Korea)\0", NULL, "Samsung", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_uzukeoRomInfo, md_uzukeoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Valis (USA)
static struct BurnRomInfo md_valisRomDesc[] = {
	{ "valis (usa).bin", 0x100000, 0x13bc5b72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_valis)
STD_ROM_FN(md_valis)

struct BurnDriver BurnDrvmd_valis = {
	"md_valis", NULL, NULL, NULL, "1991",
	"Valis (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_valisRomInfo, md_valisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mugen Senshi Valis (Japan)
static struct BurnRomInfo md_valisjRomDesc[] = {
	{ "mugen senshi valis (jpn).bin", 0x100000, 0x24431625, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_valisj)
STD_ROM_FN(md_valisj)

struct BurnDriver BurnDrvmd_valisj = {
	"md_valisj", "md_valis", NULL, NULL, "1991",
	"Mugen Senshi Valis (Japan)\0", NULL, "Riot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_valisjRomInfo, md_valisjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Valis III (USA)
static struct BurnRomInfo md_valis3RomDesc[] = {
	{ "valis iii (usa).bin", 0x100000, 0x59a2a368, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_valis3)
STD_ROM_FN(md_valis3)

struct BurnDriver BurnDrvmd_valis3 = {
	"md_valis3", NULL, NULL, NULL, "1991",
	"Valis III (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_valis3RomInfo, md_valis3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Valis III (Japan, Rev. A)
static struct BurnRomInfo md_valis3jRomDesc[] = {
	{ "valis iii (jpn) (rev a).bin", 0x100000, 0x4d49a166, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_valis3j)
STD_ROM_FN(md_valis3j)

struct BurnDriver BurnDrvmd_valis3j = {
	"md_valis3j", "md_valis3", NULL, NULL, "1991",
	"Valis III (Japan, Rev. A)\0", NULL, "Reno", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_valis3jRomInfo, md_valis3jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vapor Trail (USA)
static struct BurnRomInfo md_vaportrRomDesc[] = {
	{ "vapor trail (usa).bin", 0x100000, 0xc49e3a0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vaportr)
STD_ROM_FN(md_vaportr)

struct BurnDriver BurnDrvmd_vaportr = {
	"md_vaportr", NULL, NULL, NULL, "1991",
	"Vapor Trail (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_vaportrRomInfo, md_vaportrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kuuga - Operation Code "Vapor Trail" (Japan)
static struct BurnRomInfo md_kuugaRomDesc[] = {
	{ "kuuga - operation code 'vapor trail' (jpn).bin", 0x100000, 0x83b6b6ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kuuga)
STD_ROM_FN(md_kuuga)

struct BurnDriver BurnDrvmd_kuuga = {
	"md_kuuga", "md_vaportr", NULL, NULL, "1991",
	"Kuuga - Operation Code 'Vapor Trail' (Japan)\0", NULL, "Riot", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_kuugaRomInfo, md_kuugaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman (Euro, USA)
static struct BurnRomInfo md_vecmanRomDesc[] = {
	{ "vectorman (euro, usa).bin", 0x200000, 0xd38b3354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman)
STD_ROM_FN(md_vecman)

struct BurnDriver BurnDrvmd_vecman = {
	"md_vecman", NULL, NULL, NULL, "1995",
	"Vectorman (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecmanRomInfo, md_vecmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman (Prototype)
static struct BurnRomInfo md_vecmanp1RomDesc[] = {
	{ "vectorman (beta).bin", 0x200000, 0xa315c8aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecmanp1)
STD_ROM_FN(md_vecmanp1)

struct BurnDriver BurnDrvmd_vecmanp1 = {
	"md_vecmanp1", "md_vecman", NULL, NULL, "1995",
	"Vectorman (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecmanp1RomInfo, md_vecmanp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman (Prototype, Alt)
static struct BurnRomInfo md_vecmanp2RomDesc[] = {
	{ "vectorman (beta) (alt).bin", 0x200000, 0x2084d3da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecmanp2)
STD_ROM_FN(md_vecmanp2)

struct BurnDriver BurnDrvmd_vecmanp2 = {
	"md_vecmanp2", "md_vecman", NULL, NULL, "1995",
	"Vectorman (Prototype, Alt)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecmanp2RomInfo, md_vecmanp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman (Prototype, 19950724)
static struct BurnRomInfo md_vecmanp3RomDesc[] = {
	{ "vectorman (prototype - jul 24, 1995).bin", 0x200000, 0x0145738b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecmanp3)
STD_ROM_FN(md_vecmanp3)

struct BurnDriver BurnDrvmd_vecmanp3 = {
	"md_vecmanp3", "md_vecman", NULL, NULL, "1995",
	"Vectorman (Prototype, 19950724)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecmanp3RomInfo, md_vecmanp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (USA)
static struct BurnRomInfo md_vecman2RomDesc[] = {
	{ "vectorman 2 (usa).bin", 0x300000, 0xc1a24088, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2)
STD_ROM_FN(md_vecman2)

struct BurnDriver BurnDrvmd_vecman2 = {
	"md_vecman2", NULL, NULL, NULL, "1996",
	"Vectorman 2 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2RomInfo, md_vecman2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Prototype)
static struct BurnRomInfo md_vecman2p1RomDesc[] = {
	{ "vectorman 2 (beta).bin", 0x200000, 0xada2b0ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2p1)
STD_ROM_FN(md_vecman2p1)

struct BurnDriver BurnDrvmd_vecman2p1 = {
	"md_vecman2p1", "md_vecman2", NULL, NULL, "1996",
	"Vectorman 2 (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2p1RomInfo, md_vecman2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Prototype, 19960815)
static struct BurnRomInfo md_vecman2p6RomDesc[] = {
	{ "vectorman 2 (prototype - aug 15, 1996).bin", 0x300000, 0x998b087c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2p6)
STD_ROM_FN(md_vecman2p6)

struct BurnDriver BurnDrvmd_vecman2p6 = {
	"md_vecman2p6", "md_vecman2", NULL, NULL, "1996",
	"Vectorman 2 (Prototype, 19960815)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2p6RomInfo, md_vecman2p6RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Prototype, 19960816)
static struct BurnRomInfo md_vecman2p5RomDesc[] = {
	{ "vectorman 2 (prototype - aug 16, 1996).bin", 0x300000, 0x2986e5ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2p5)
STD_ROM_FN(md_vecman2p5)

struct BurnDriver BurnDrvmd_vecman2p5 = {
	"md_vecman2p5", "md_vecman2", NULL, NULL, "1996",
	"Vectorman 2 (Prototype, 19960816)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2p5RomInfo, md_vecman2p5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Prototype, 19960819)
static struct BurnRomInfo md_vecman2p4RomDesc[] = {
	{ "vectorman 2 (prototype - aug 19, 1996).bin", 0x300000, 0x49efab7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2p4)
STD_ROM_FN(md_vecman2p4)

struct BurnDriver BurnDrvmd_vecman2p4 = {
	"md_vecman2p4", "md_vecman2", NULL, NULL, "1996",
	"Vectorman 2 (Prototype, 19960819)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2p4RomInfo, md_vecman2p4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Prototype, 19960826)
static struct BurnRomInfo md_vecman2p3RomDesc[] = {
	{ "vectorman 2 (prototype - aug 26, 1996).bin", 0x2a8e46, 0xeb8124c8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2p3)
STD_ROM_FN(md_vecman2p3)

struct BurnDriver BurnDrvmd_vecman2p3 = {
	"md_vecman2p3", "md_vecman2", NULL, NULL, "1996",
	"Vectorman 2 (Prototype, 19960826)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2p3RomInfo, md_vecman2p3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Prototype, 19960827)
static struct BurnRomInfo md_vecman2p2RomDesc[] = {
	{ "vectorman 2 (prototype - aug 27, 1996).bin", 0x300000, 0x6333d89a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2p2)
STD_ROM_FN(md_vecman2p2)

struct BurnDriver BurnDrvmd_vecman2p2 = {
	"md_vecman2p2", "md_vecman2", NULL, NULL, "1996",
	"Vectorman 2 (Prototype, 19960827)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2p2RomInfo, md_vecman2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Verytex (Japan)
static struct BurnRomInfo md_verytexRomDesc[] = {
	{ "verytex (jpn).bin", 0x080000, 0xbafc375f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_verytex)
STD_ROM_FN(md_verytex)

struct BurnDriver BurnDrvmd_verytex = {
	"md_verytex", NULL, NULL, NULL, "1991",
	"Verytex (Japan)\0", NULL, "Asmik Ace", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_verytexRomInfo, md_verytexRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Viewpoint (USA)
static struct BurnRomInfo md_viewpoinRomDesc[] = {
	{ "viewpoint (usa).bin", 0x200000, 0x59c71866, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_viewpoin)
STD_ROM_FN(md_viewpoin)

struct BurnDriver BurnDrvmd_viewpoin = {
	"md_viewpoin", NULL, NULL, NULL, "1994",
	"Viewpoint (USA)\0", NULL, "American Sammy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_viewpoinRomInfo, md_viewpoinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Viewpoint (USA, Prototype)
static struct BurnRomInfo md_viewpoinpRomDesc[] = {
	{ "viewpoint (usa) (beta).bin", 0x180000, 0xf2e69ce7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_viewpoinp)
STD_ROM_FN(md_viewpoinp)

struct BurnDriver BurnDrvmd_viewpoinp = {
	"md_viewpoinp", "md_viewpoin", NULL, NULL, "1994",
	"Viewpoint (USA, Prototype)\0", NULL, "American Sammy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_viewpoinpRomInfo, md_viewpoinpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Euro, USA)
static struct BurnRomInfo md_vf2RomDesc[] = {
	{ "mpr-19107+mpr-19108.bin", 0x400000, 0x937380f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2)
STD_ROM_FN(md_vf2)

struct BurnDriver BurnDrvmd_vf2 = {
	"md_vf2", NULL, NULL, NULL, "1997",
	"Virtua Fighter 2 - Genesis (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2RomInfo, md_vf2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Korea)
static struct BurnRomInfo md_vf2kRomDesc[] = {
	{ "mpr-19369.bin", 0x400000, 0xa95d0949, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2k)
STD_ROM_FN(md_vf2k)

struct BurnDriver BurnDrvmd_vf2k = {
	"md_vf2k", "md_vf2", NULL, NULL, "1997",
	"Virtua Fighter 2 - Genesis (Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2kRomInfo, md_vf2kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Prototype, 19960819)
static struct BurnRomInfo md_vf2p5RomDesc[] = {
	{ "virtua fighter 2 (prototype - aug 19, 1996).bin", 0x400000, 0xc5ee3974, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2p5)
STD_ROM_FN(md_vf2p5)

struct BurnDriver BurnDrvmd_vf2p5 = {
	"md_vf2p5", "md_vf2", NULL, NULL, "1996",
	"Virtua Fighter 2 - Genesis (Prototype, 19960819)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2p5RomInfo, md_vf2p5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Prototype, 19960830)
static struct BurnRomInfo md_vf2p4RomDesc[] = {
	{ "virtua fighter 2 (prototype - aug 30, 1996).bin", 0x400000, 0x6a0f3a7b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2p4)
STD_ROM_FN(md_vf2p4)

struct BurnDriver BurnDrvmd_vf2p4 = {
	"md_vf2p4", "md_vf2", NULL, NULL, "1996",
	"Virtua Fighter 2 - Genesis (Prototype, 19960830)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2p4RomInfo, md_vf2p4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Prototype, 19960913)
static struct BurnRomInfo md_vf2p3RomDesc[] = {
	{ "virtua fighter 2 (prototype - sep 13, 1996).bin", 0x400000, 0xfa5bad91, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2p3)
STD_ROM_FN(md_vf2p3)

struct BurnDriver BurnDrvmd_vf2p3 = {
	"md_vf2p3", "md_vf2", NULL, NULL, "1996",
	"Virtua Fighter 2 - Genesis (Prototype, 19960913)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2p3RomInfo, md_vf2p3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Prototype, 19960920)
static struct BurnRomInfo md_vf2p2RomDesc[] = {
	{ "virtua fighter 2 (prototype - sep 20, 1996).bin", 0x400000, 0xaf516dad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2p2)
STD_ROM_FN(md_vf2p2)

struct BurnDriver BurnDrvmd_vf2p2 = {
	"md_vf2p2", "md_vf2", NULL, NULL, "1996",
	"Virtua Fighter 2 - Genesis (Prototype, 19960920)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2p2RomInfo, md_vf2p2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Prototype, 19960927)
static struct BurnRomInfo md_vf2p1RomDesc[] = {
	{ "virtua fighter 2 (prototype - sep 27, 1996).bin", 0x400000, 0x95ab6ab6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2p1)
STD_ROM_FN(md_vf2p1)

struct BurnDriver BurnDrvmd_vf2p1 = {
	"md_vf2p1", "md_vf2", NULL, NULL, "1996",
	"Virtua Fighter 2 - Genesis (Prototype, 19960927)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2p1RomInfo, md_vf2p1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 vs Tekken 2 (Unl)
static struct BurnRomInfo md_vf2tekRomDesc[] = {
	{ "virtua fighter 2 vs tekken 2 (unl).bin", 0x200000, 0x2cdb499d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2tek)
STD_ROM_FN(md_vf2tek)

struct BurnDriver BurnDrvmd_vf2tek = {
	"md_vf2tek", NULL, NULL, NULL, "1997",
	"Virtua Fighter 2 vs Tekken 2 (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2tekRomInfo, md_vf2tekRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtual Bart (World)
static struct BurnRomInfo md_vbartRomDesc[] = {
	{ "virtual bart (world).bin", 0x200000, 0x8db9f378, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vbart)
STD_ROM_FN(md_vbart)

struct BurnDriver BurnDrvmd_vbart = {
	"md_vbart", NULL, NULL, NULL, "1994",
	"Virtual Bart (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MINIGAMES, 0,
	MegadriveGetZipName, md_vbartRomInfo, md_vbartRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtual Pinball (Euro, USA)
static struct BurnRomInfo md_vpinballRomDesc[] = {
	{ "virtual pinball (euro, usa).bin", 0x100000, 0xd63473aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vpinball)
STD_ROM_FN(md_vpinball)

struct BurnDriver BurnDrvmd_vpinball = {
	"md_vpinball", NULL, NULL, NULL, "1993",
	"Virtual Pinball (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PINBALL, 0,
	MegadriveGetZipName, md_vpinballRomInfo, md_vpinballRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vixen 357 (Japan)
static struct BurnRomInfo md_vixen357RomDesc[] = {
	{ "vixen 357 (jpn).bin", 0x100000, 0x3afa2d7b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vixen357)
STD_ROM_FN(md_vixen357)

struct BurnDriver BurnDrvmd_vixen357 = {
	"md_vixen357", NULL, NULL, NULL, "1992",
	"Vixen 357 (Japan)\0", NULL, "NCS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_vixen357RomInfo, md_vixen357RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vixen 357 (Hack, English v1.2)
// Source: https://www.romhacking.net/translations/2738/
static struct BurnRomInfo md_vixen357eRomDesc[] = {
	{ "vixen 357 (english translation).bin", 0x140000, 0xf8ce2e43, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vixen357e)
STD_ROM_FN(md_vixen357e)

struct BurnDriver BurnDrvmd_vixen357e = {
	"md_vixen357e", "md_vixen357", NULL, NULL, "2019",
	"Vixen 357 (Hack, English v1.2)\0", NULL, "Nebulous Translations", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_vixen357eRomInfo, md_vixen357eRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// VR Troopers (Euro, USA)
static struct BurnRomInfo md_vrtroopRomDesc[] = {
	{ "vr troopers (euro, usa).bin", 0x200000, 0x2f35516e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vrtroop)
STD_ROM_FN(md_vrtroop)

struct BurnDriver BurnDrvmd_vrtroop = {
	"md_vrtroop", NULL, NULL, NULL, "1994",
	"VR Troopers (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vrtroopRomInfo, md_vrtroopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wacky Races (USA, Prototype)
static struct BurnRomInfo md_wackyracRomDesc[] = {
	{ "wacky races (usa) (prototype).bin", 0x200000, 0x1b173f09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wackyrac)
STD_ROM_FN(md_wackyrac)

struct BurnDriver BurnDrvmd_wackyrac = {
	"md_wackyrac", NULL, NULL, NULL, "199?",
	"Wacky Races (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_wackyracRomInfo, md_wackyracRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wacky Worlds (USA)
static struct BurnRomInfo md_wworldsRomDesc[] = {
	{ "wacky worlds (usa).bin", 0x100000, 0x8af4552d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wworlds)
STD_ROM_FN(md_wworlds)

struct BurnDriver BurnDrvmd_wworlds = {
	"md_wworlds", NULL, NULL, NULL, "1994",
	"Wacky Worlds (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
	MegadriveGetZipName, md_wworldsRomInfo, md_wworldsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wacky Worlds (Prototype, 19940808)
static struct BurnRomInfo md_wworldsp3RomDesc[] = {
	{ "wacky worlds (prototype - aug 08, 1994).bin", 0x100000, 0x48d33ea0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wworldsp3)
STD_ROM_FN(md_wworldsp3)

struct BurnDriver BurnDrvmd_wworldsp3 = {
	"md_wworldsp3", "md_wworlds", NULL, NULL, "1994",
	"Wacky Worlds (Prototype, 19940808)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_wworldsp3RomInfo, md_wworldsp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wacky Worlds (Prototype, 19940817)
static struct BurnRomInfo md_wworldsp2RomDesc[] = {
	{ "wacky worlds (prototype - aug 17, 1994).bin", 0x0fcbb0, 0x4615970b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wworldsp2)
STD_ROM_FN(md_wworldsp2)

struct BurnDriver BurnDrvmd_wworldsp2 = {
	"md_wworldsp2", "md_wworlds", NULL, NULL, "1994",
	"Wacky Worlds (Prototype, 19940817)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_wworldsp2RomInfo, md_wworldsp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wacky Worlds (Prototype, 19940819)
static struct BurnRomInfo md_wworldsp1RomDesc[] = {
	{ "wacky worlds (prototype - aug 19, 1994).bin", 0x0fcb96, 0x7f286925, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wworldsp1)
STD_ROM_FN(md_wworldsp1)

struct BurnDriver BurnDrvmd_wworldsp1 = {
	"md_wworldsp1", "md_wworlds", NULL, NULL, "1994",
	"Wacky Worlds (Prototype, 19940819)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_wworldsp1RomInfo, md_wworldsp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wani Wani World (Japan)
static struct BurnRomInfo md_waniwaniRomDesc[] = {
	{ "wani wani world (jpn).bin", 0x080000, 0x56f0dbb2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_waniwani)
STD_ROM_FN(md_waniwani)

struct BurnDriver BurnDrvmd_waniwani = {
	"md_waniwani", NULL, NULL, NULL, "1992",
	"Wani Wani World (Japan)\0", NULL, "Kaneko", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_waniwaniRomInfo, md_waniwaniRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wardner (USA)
static struct BurnRomInfo md_wardnerRomDesc[] = {
	{ "wardner (usa).bin", 0x080000, 0x1e369ae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wardner)
STD_ROM_FN(md_wardner)

struct BurnDriver BurnDrvmd_wardner = {
	"md_wardner", NULL, NULL, NULL, "1991",
	"Wardner (USA)\0", NULL, "Mentrix Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wardnerRomInfo, md_wardnerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wardner no Mori Special (Japan)
static struct BurnRomInfo md_wardnerjRomDesc[] = {
	{ "wardner no mori special (jpn).bin", 0x080000, 0x80f1035c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wardnerj)
STD_ROM_FN(md_wardnerj)

struct BurnDriver BurnDrvmd_wardnerj = {
	"md_wardnerj", "md_wardner", NULL, NULL, "1991",
	"Wardner no Mori Special (Japan)\0", NULL, "Visco Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wardnerjRomInfo, md_wardnerjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warlock (Euro, USA)
static struct BurnRomInfo md_warlockRomDesc[] = {
	{ "warlock (euro, usa).bin", 0x200000, 0x0a46539b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warlock)
STD_ROM_FN(md_warlock)

struct BurnDriver BurnDrvmd_warlock = {
	"md_warlock", NULL, NULL, NULL, "1994",
	"Warlock (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_warlockRomInfo, md_warlockRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warlock (USA, Prototype)
static struct BurnRomInfo md_warlockpRomDesc[] = {
	{ "warlock (usa) (beta).bin", 0x200000, 0xc9b6edb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warlockp)
STD_ROM_FN(md_warlockp)

struct BurnDriver BurnDrvmd_warlockp = {
	"md_warlockp", "md_warlock", NULL, NULL, "1994",
	"Warlock (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_warlockpRomInfo, md_warlockpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warpspeed (USA)
static struct BurnRomInfo md_warpspedRomDesc[] = {
	{ "warpspeed (usa).bin", 0x200000, 0x143697ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warpsped)
STD_ROM_FN(md_warpsped)

struct BurnDriver BurnDrvmd_warpsped = {
	"md_warpsped", NULL, NULL, NULL, "1993",
	"Warpspeed (USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM | GBF_SHOOT, 0,
	MegadriveGetZipName, md_warpspedRomInfo, md_warpspedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warrior of Rome (USA)
static struct BurnRomInfo md_warriorRomDesc[] = {
	{ "warrior of rome (usa).bin", 0x100000, 0x5be10c6a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warrior)
STD_ROM_FN(md_warrior)

struct BurnDriver BurnDrvmd_warrior = {
	"md_warrior", NULL, NULL, NULL, "1991",
	"Warrior of Rome (USA)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_warriorRomInfo, md_warriorRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Caesar no Yabou (Japan)
static struct BurnRomInfo md_caesarRomDesc[] = {
	{ "caesar no yabou (jpn).bin", 0x100000, 0x69796e93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_caesar)
STD_ROM_FN(md_caesar)

struct BurnDriver BurnDrvmd_caesar = {
	"md_caesar", "md_warrior", NULL, NULL, "1991",
	"Caesar no Yabou (Japan)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_caesarRomInfo, md_caesarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warrior of Rome II (USA)
static struct BurnRomInfo md_warrior2RomDesc[] = {
	{ "warrior of rome ii (usa).bin", 0x100000, 0xcd8c472a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warrior2)
STD_ROM_FN(md_warrior2)

struct BurnDriver BurnDrvmd_warrior2 = {
	"md_warrior2", NULL, NULL, NULL, "1992",
	"Warrior of Rome II (USA)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_warrior2RomInfo, md_warrior2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Caesar no Yabou II (Japan)
static struct BurnRomInfo md_caesar2RomDesc[] = {
	{ "caesar no yabou ii (jpn).bin", 0x100000, 0x4f327b3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_caesar2)
STD_ROM_FN(md_caesar2)

struct BurnDriver BurnDrvmd_caesar2 = {
	"md_caesar2", "md_warrior2", NULL, NULL, "1992",
	"Caesar no Yabou II (Japan)\0", NULL, "Micronet", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_caesar2RomInfo, md_caesar2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warsong (USA)
static struct BurnRomInfo md_warsongRomDesc[] = {
	{ "warsong (usa).bin", 0x080000, 0x4b680285, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warsong)
STD_ROM_FN(md_warsong)

struct BurnDriver BurnDrvmd_warsong = {
	"md_warsong", NULL, NULL, NULL, "1991",
	"Warsong (USA)\0", NULL, "Treco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_warsongRomInfo, md_warsongRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WaterWorld (Euro, Prototype)
static struct BurnRomInfo md_waterwldRomDesc[] = {
	{ "waterworld (euro) (prototype).bin", 0x200000, 0x51c80498, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_waterwld)
STD_ROM_FN(md_waterwld)

struct BurnDriver BurnDrvmd_waterwld = {
	"md_waterwld", NULL, NULL, NULL, "199?",
	"WaterWorld (Euro, Prototype)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_waterwldRomInfo, md_waterwldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wayne Gretzky and the NHLPA All-Stars (Euro, USA)
static struct BurnRomInfo md_waynegRomDesc[] = {
	{ "wayne gretzky and the nhlpa all-stars (euro, usa).bin", 0x200000, 0xc2c13b81, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wayneg)
STD_ROM_FN(md_wayneg)

struct BurnDriver BurnDrvmd_wayneg = {
	"md_wayneg", NULL, NULL, NULL, "1995",
	"Wayne Gretzky and the NHLPA All-Stars (Euro, USA)\0", NULL, "Time Warner Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_waynegRomInfo, md_waynegRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wayne's World (USA)
static struct BurnRomInfo md_waynewldRomDesc[] = {
	{ "wayne's world (usa).bin", 0x100000, 0xd2cf6ebe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_waynewld)
STD_ROM_FN(md_waynewld)

struct BurnDriver BurnDrvmd_waynewld = {
	"md_waynewld", NULL, NULL, NULL, "1993",
	"Wayne's World (USA)\0", NULL, "THQ", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_waynewldRomInfo, md_waynewldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Weaponlord (USA)
static struct BurnRomInfo md_weaponldRomDesc[] = {
	{ "weaponlord (usa).bin", 0x300000, 0xb9895365, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_weaponld)
STD_ROM_FN(md_weaponld)

struct BurnDriver BurnDrvmd_weaponld = {
	"md_weaponld", NULL, NULL, NULL, "1995",
	"Weaponlord (USA)\0", NULL, "Namco", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_weaponldRomInfo, md_weaponldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wheel of Fortune (USA)
static struct BurnRomInfo md_wheelforRomDesc[] = {
	{ "wheel of fortune (usa).bin", 0x080000, 0xc8d8efc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wheelfor)
STD_ROM_FN(md_wheelfor)

struct BurnDriver BurnDrvmd_wheelfor = {
	"md_wheelfor", NULL, NULL, NULL, "1992",
	"Wheel of Fortune (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 3, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_wheelforRomInfo, md_wheelforRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Where in the World Is Carmen Sandiego? (Euro, USA)
static struct BurnRomInfo md_carmnwldRomDesc[] = {
	{ "where in the world is carmen sandiego (euro, usa).bin", 0x100000, 0xeef372e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_carmnwld)
STD_ROM_FN(md_carmnwld)

struct BurnDriver BurnDrvmd_carmnwld = {
	"md_carmnwld", NULL, NULL, NULL, "1992",
	"Where in the World Is Carmen Sandiego? (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_carmnwldRomInfo, md_carmnwldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Where in the World Is Carmen Sandiego? (Brazil)
static struct BurnRomInfo md_carmnwldbRomDesc[] = {
	{ "where in the world is carmen sandiego (bra).bin", 0x100000, 0x7d4450ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_carmnwldb)
STD_ROM_FN(md_carmnwldb)

struct BurnDriver BurnDrvmd_carmnwldb = {
	"md_carmnwldb", "md_carmnwld", NULL, NULL, "199?",
	"Where in the World Is Carmen Sandiego? (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_carmnwldbRomInfo, md_carmnwldbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Where in Time Is Carmen Sandiego? (Euro, USA)
static struct BurnRomInfo md_carmntimRomDesc[] = {
	{ "where in time is carmen sandiego (euro, usa).bin", 0x100000, 0xea19d4a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_carmntim)
STD_ROM_FN(md_carmntim)

struct BurnDriver BurnDrvmd_carmntim = {
	"md_carmntim", NULL, NULL, NULL, "1992",
	"Where in Time Is Carmen Sandiego? (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_carmntimRomInfo, md_carmntimRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Where in Time Is Carmen Sandiego? (Brazil)
static struct BurnRomInfo md_carmntimbRomDesc[] = {
	{ "where in time is carmen sandiego (bra).bin", 0x100000, 0xd523b552, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_carmntimb)
STD_ROM_FN(md_carmntimb)

struct BurnDriver BurnDrvmd_carmntimb = {
	"md_carmntimb", "md_carmntim", NULL, NULL, "199?",
	"Where in Time Is Carmen Sandiego? (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_carmntimbRomInfo, md_carmntimbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Whip Rush (USA)
static struct BurnRomInfo md_whiprushRomDesc[] = {
	{ "whip rush (usa).bin", 0x080000, 0x7eb6b86b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whiprush)
STD_ROM_FN(md_whiprush)

struct BurnDriver BurnDrvmd_whiprush = {
	"md_whiprush", NULL, NULL, NULL, "1990",
	"Whip Rush (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_whiprushRomInfo, md_whiprushRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Whip Rush - Wakusei Voltegas no Nazo (Japan)
static struct BurnRomInfo md_whiprushjRomDesc[] = {
	{ "whip rush - wakusei voltegas no nazo (jpn).bin", 0x080000, 0x8084b4d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whiprushj)
STD_ROM_FN(md_whiprushj)

struct BurnDriver BurnDrvmd_whiprushj = {
	"md_whiprushj", "md_whiprush", NULL, NULL, "1990",
	"Whip Rush - Wakusei Voltegas no Nazo (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_whiprushjRomInfo, md_whiprushjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wild Snake (USA, Prototype)
static struct BurnRomInfo md_wildsnakRomDesc[] = {
	{ "wild snake (usa) (prototype).bin", 0x080000, 0x0c1a49e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wildsnak)
STD_ROM_FN(md_wildsnak)

struct BurnDriver BurnDrvmd_wildsnak = {
	"md_wildsnak", NULL, NULL, NULL, "1994",
	"Wild Snake (USA, Prototype)\0", NULL, "Bullet-Proof Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_wildsnakRomInfo, md_wildsnakRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Williams Arcade's Greatest Hits (USA)
static struct BurnRomInfo md_arcadeghuRomDesc[] = {
	{ "williams arcade's greatest hits (usa).bin", 0x080000, 0xd68e9c00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arcadeghu)
STD_ROM_FN(md_arcadeghu)

struct BurnDriver BurnDrvmd_arcadeghu = {
	"md_arcadeghu", "md_arcadegh", NULL, NULL, "1996",
	"Williams Arcade's Greatest Hits (USA)\0", NULL, "Williams", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_ACTION, 0,
	MegadriveGetZipName, md_arcadeghuRomInfo, md_arcadeghuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wimbledon Championship Tennis (Euro)
static struct BurnRomInfo md_wimbledRomDesc[] = {
	{ "wimbledon championship tennis (euro).bin", 0x100000, 0xb791a435, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wimbled)
STD_ROM_FN(md_wimbled)

struct BurnDriver BurnDrvmd_wimbled = {
	"md_wimbled", NULL, NULL, NULL, "1994",
	"Wimbledon Championship Tennis (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wimbledRomInfo, md_wimbledRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wimbledon Championship Tennis (Japan)
static struct BurnRomInfo md_wimbledjRomDesc[] = {
	{ "wimbledon championship tennis (jpn).bin", 0x100000, 0x3e0c9daf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wimbledj)
STD_ROM_FN(md_wimbledj)

struct BurnDriver BurnDrvmd_wimbledj = {
	"md_wimbledj", "md_wimbled", NULL, NULL, "1994",
	"Wimbledon Championship Tennis (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wimbledjRomInfo, md_wimbledjRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wimbledon Championship Tennis (USA)
static struct BurnRomInfo md_wimbleduRomDesc[] = {
	{ "wimbledon championship tennis (usa).bin", 0x100000, 0xf9142aee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wimbledu)
STD_ROM_FN(md_wimbledu)

struct BurnDriver BurnDrvmd_wimbledu = {
	"md_wimbledu", "md_wimbled", NULL, NULL, "1993",
	"Wimbledon Championship Tennis (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wimbleduRomInfo, md_wimbleduRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wimbledon Championship Tennis (USA, Prototype)
static struct BurnRomInfo md_wimbledupRomDesc[] = {
	{ "wimbledon championship tennis (usa) (beta).bin", 0x100000, 0x9febc760, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wimbledup)
STD_ROM_FN(md_wimbledup)

struct BurnDriver BurnDrvmd_wimbledup = {
	"md_wimbledup", "md_wimbled", NULL, NULL, "1993",
	"Wimbledon Championship Tennis (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wimbledupRomInfo, md_wimbledupRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winter Challenge (Euro, USA, Rev. 1)
static struct BurnRomInfo md_wintchalRomDesc[] = {
	{ "acwcsg-1_(1-92).bin", 0x100000, 0xf57c7068, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wintchal)
STD_ROM_FN(md_wintchal)

struct BurnDriver BurnDrvmd_wintchal = {
	"md_wintchal", NULL, NULL, NULL, "1992",
	"Winter Challenge (Euro, USA, Rev. 1)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wintchalRomInfo, md_wintchalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Games, The: Winter Challenge (Euro, USA)
static struct BurnRomInfo md_wintchal1RomDesc[] = {
	{ "acwcsg_(12-91).bin", 0x100000, 0xdbc3ed1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wintchal1)
STD_ROM_FN(md_wintchal1)

struct BurnDriver BurnDrvmd_wintchal1 = {
	"md_wintchal1", "md_wintchal", NULL, NULL, "1992",
	"Games, The: Winter Challenge (Euro, USA)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wintchal1RomInfo, md_wintchal1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winter Challenge (Prototype)
static struct BurnRomInfo md_wintchalpRomDesc[] = {
	{ "winter challenge (beta).bin", 0x100000, 0x60d2a8c4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wintchalp)
STD_ROM_FN(md_wintchalp)

struct BurnDriver BurnDrvmd_wintchalp = {
	"md_wintchalp", "md_wintchal", NULL, NULL, "1992",
	"Winter Challenge (Prototype)\0", NULL, "Ballistic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wintchalpRomInfo, md_wintchalpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winter Olympics (Euro)
static struct BurnRomInfo md_wintolRomDesc[] = {
	{ "winter olympics (euro).bin", 0x200000, 0xfa537a45, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wintol)
STD_ROM_FN(md_wintol)

struct BurnDriver BurnDrvmd_wintol = {
	"md_wintol", NULL, NULL, NULL, "1994",
	"Winter Olympics (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wintolRomInfo, md_wintolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winter Olympics (Japan)
static struct BurnRomInfo md_wintoljRomDesc[] = {
	{ "winter olympics (jpn).bin", 0x200000, 0x654a4684, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wintolj)
STD_ROM_FN(md_wintolj)

struct BurnDriver BurnDrvmd_wintolj = {
	"md_wintolj", "md_wintol", NULL, NULL, "1994",
	"Winter Olympics (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wintoljRomInfo, md_wintoljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winter Olympic Games (USA)
static struct BurnRomInfo md_wintoluRomDesc[] = {
	{ "winter olympic games (usa).bin", 0x200000, 0xc5834437, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wintolu)
STD_ROM_FN(md_wintolu)

struct BurnDriver BurnDrvmd_wintolu = {
	"md_wintolu", "md_wintol", NULL, NULL, "1993",
	"Winter Olympic Games (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wintoluRomInfo, md_wintoluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wiz'n'Liz - The Frantic Wabbit Wescue (Euro)
static struct BurnRomInfo md_wiznlizRomDesc[] = {
	{ "wiz'n'liz - the frantic wabbit wescue (euro).bin", 0x100000, 0xf09353b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wiznliz)
STD_ROM_FN(md_wiznliz)

struct BurnDriver BurnDrvmd_wiznliz = {
	"md_wiznliz", NULL, NULL, NULL, "1993",
	"Wiz'n'Liz - The Frantic Wabbit Wescue (Euro)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wiznlizRomInfo, md_wiznlizRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wiz'n'Liz (USA)
static struct BurnRomInfo md_wiznlizuRomDesc[] = {
	{ "wiz'n'liz (usa).bin", 0x100000, 0xdf036b62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wiznlizu)
STD_ROM_FN(md_wiznlizu)

struct BurnDriver BurnDrvmd_wiznlizu = {
	"md_wiznlizu", "md_wiznliz", NULL, NULL, "1993",
	"Wiz'n'Liz (USA)\0", NULL, "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wiznlizuRomInfo, md_wiznlizuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wolfchild (USA)
static struct BurnRomInfo md_wolfchldRomDesc[] = {
	{ "wolfchild (usa).bin", 0x100000, 0xeb5b1cbf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wolfchld)
STD_ROM_FN(md_wolfchld)

struct BurnDriver BurnDrvmd_wolfchld = {
	"md_wolfchld", NULL, NULL, NULL, "1993",
	"Wolfchild (USA)\0", NULL, "JVC Musical Industries", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_wolfchldRomInfo, md_wolfchldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wolverine - Adamantium Rage (Euro, USA)
static struct BurnRomInfo md_wolverinRomDesc[] = {
	{ "wolverine - adamantium rage (euro, usa).bin", 0x200000, 0xd2437bb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wolverin)
STD_ROM_FN(md_wolverin)

struct BurnDriver BurnDrvmd_wolverin = {
	"md_wolverin", NULL, NULL, NULL, "1994",
	"Wolverine - Adamantium Rage (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wolverinRomInfo, md_wolverinRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wolverine - Adamantium Redux (Hack)
// http://www.romhacking.net/hacks/6103/
static struct BurnRomInfo md_wolverinreduxRomDesc[] = {
	{ "Wolverine Adamantium Redux (2021)(BillyTime! Games).bin", 2621440, 0xab3f89b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wolverinredux)
STD_ROM_FN(md_wolverinredux)

struct BurnDriver BurnDrvmd_wolverinredux = {
	"md_wolverinredux", "md_wolverin", NULL, NULL, "2021",
	"Wolverine - Adamantium Redux (Hack)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wolverinreduxRomInfo, md_wolverinreduxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Boy III - Monster Lair (Euro) ~ Monster Lair (Japan)
static struct BurnRomInfo md_wboy3RomDesc[] = {
	{ "mpr-13619.bin", 0x080000, 0xc24bc5e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wboy3)
STD_ROM_FN(md_wboy3)

struct BurnDriver BurnDrvmd_wboy3 = {
	"md_wboy3", NULL, NULL, NULL, "1991",
	"Wonder Boy III - Monster Lair (Euro) ~ Monster Lair (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_wboy3RomInfo, md_wboy3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Boy in Monster World (Euro, USA)
static struct BurnRomInfo md_wboymwRomDesc[] = {
	{ "mpr-14556.bin", 0x0c0000, 0x1592f5b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wboymw)
STD_ROM_FN(md_wboymw)

struct BurnDriver BurnDrvmd_wboymw = {
	"md_wboymw", NULL, NULL, NULL, "1992",
	"Wonder Boy in Monster World (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_wboymwRomInfo, md_wboymwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Boy V - Monster World III (Japan, Korea)
static struct BurnRomInfo md_wboy5RomDesc[] = {
	{ "wonder boy v - monster world iii (jpn, kor).bin", 0x0a0000, 0x45a50f96, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wboy5)
STD_ROM_FN(md_wboy5)

struct BurnDriver BurnDrvmd_wboy5 = {
	"md_wboy5", "md_wboymw", NULL, NULL, "1991",
	"Wonder Boy V - Monster World III (Japan, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_wboy5RomInfo, md_wboy5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Boy in Monster World (Hack, Italian v1.03)
//Translation project: https://romhacking.it/project/view/id/364
static struct BurnRomInfo md_wboymwiRomDesc[] = {
	{ "Wonder Boy in Monster World T-Ita v1.03 (2022)(Shion).bin", 786432, 0x6e63fc3c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wboymwi)
STD_ROM_FN(md_wboymwi)

struct BurnDriver BurnDrvmd_wboymwi = {
	"md_wboymwi", "md_wboymw", NULL, NULL, "2022",
	"Wonder Boy in Monster World (Hack, Italian v1.03)\0", NULL, "Shion 'Michele Di Somma'", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_wboymwiRomInfo, md_wboymwiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turma da Mōnica na Terra dos Monstros (Brazil)
static struct BurnRomInfo md_turmamonRomDesc[] = {
	{ "turma da monica na terra dos monstros (bra).bin", 0x100000, 0xf8288de1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_turmamon)
STD_ROM_FN(md_turmamon)

struct BurnDriver BurnDrvmd_turmamon = {
	"md_turmamon", "md_wboymw", NULL, NULL, "1996",
	"Turma da Monica na Terra dos Monstros (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	L"Turma da M\u00F4nica na Terra dos Monstros (Brazil)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_EEPROM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_turmamonRomInfo, md_turmamonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Library (Japan)
static struct BurnRomInfo md_wondlibRomDesc[] = {
	{ "wonder library (jpn).bin", 0x080000, 0x9350e754, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wondlib)
STD_ROM_FN(md_wondlib)

struct BurnDriver BurnDrvmd_wondlib = {
	"md_wondlib", NULL, NULL, NULL, "199?",
	"Wonder Library (Japan)\0", NULL, "Victor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_wondlibRomInfo, md_wondlibRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Euro)
static struct BurnRomInfo md_wcs2RomDesc[] = {
	{ "world championship soccer ii (europe).bin", 0x100000, 0x6065774d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2)
STD_ROM_FN(md_wcs2)

struct BurnDriver BurnDrvmd_wcs2 = {
	"md_wcs2", NULL, NULL, NULL, "1994",
	"World Championship Soccer II (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2RomInfo, md_wcs2RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (USA)
static struct BurnRomInfo md_wcs2uRomDesc[] = {
	{ "world championship soccer ii (usa).bin", 0x100000, 0xc1dd1c8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2u)
STD_ROM_FN(md_wcs2u)

struct BurnDriver BurnDrvmd_wcs2u = {
	"md_wcs2u", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2uRomInfo, md_wcs2uRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940223)
static struct BurnRomInfo md_wcs2p17RomDesc[] = {
	{ "world championship soccer ii (prototype - feb 23, 1994).bin", 0x100000, 0xaab9e240, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p17)
STD_ROM_FN(md_wcs2p17)

struct BurnDriver BurnDrvmd_wcs2p17 = {
	"md_wcs2p17", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940223)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p17RomInfo, md_wcs2p17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940309)
static struct BurnRomInfo md_wcs2p12RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 09, 1994).bin", 0x100000, 0x71fa89cc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p12)
STD_ROM_FN(md_wcs2p12)

struct BurnDriver BurnDrvmd_wcs2p12 = {
	"md_wcs2p12", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940309)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p12RomInfo, md_wcs2p12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940323)
static struct BurnRomInfo md_wcs2p08RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 23, 1994).bin", 0x100000, 0x3852e514, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p08)
STD_ROM_FN(md_wcs2p08)

struct BurnDriver BurnDrvmd_wcs2p08 = {
	"md_wcs2p08", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940323)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p08RomInfo, md_wcs2p08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940324)
static struct BurnRomInfo md_wcs2p07RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 24, 1994).bin", 0x100000, 0xa6d43b4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p07)
STD_ROM_FN(md_wcs2p07)

struct BurnDriver BurnDrvmd_wcs2p07 = {
	"md_wcs2p07", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940324)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p07RomInfo, md_wcs2p07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940325)
static struct BurnRomInfo md_wcs2p06RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 25, 1994).bin", 0x100000, 0x6b3624fb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p06)
STD_ROM_FN(md_wcs2p06)

struct BurnDriver BurnDrvmd_wcs2p06 = {
	"md_wcs2p06", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940325)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p06RomInfo, md_wcs2p06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940326)
static struct BurnRomInfo md_wcs2p05RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 26, 1994).bin", 0x100000, 0x1ad7ed9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p05)
STD_ROM_FN(md_wcs2p05)

struct BurnDriver BurnDrvmd_wcs2p05 = {
	"md_wcs2p05", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940326)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p05RomInfo, md_wcs2p05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940327)
static struct BurnRomInfo md_wcs2p04RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 27, 1994).bin", 0x100000, 0x4e141509, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p04)
STD_ROM_FN(md_wcs2p04)

struct BurnDriver BurnDrvmd_wcs2p04 = {
	"md_wcs2p04", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940327)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p04RomInfo, md_wcs2p04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940329-B)
static struct BurnRomInfo md_wcs2p03RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 29, 1994 - b).bin", 0x100000, 0xa6759340, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p03)
STD_ROM_FN(md_wcs2p03)

struct BurnDriver BurnDrvmd_wcs2p03 = {
	"md_wcs2p03", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940329-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p03RomInfo, md_wcs2p03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940329)
static struct BurnRomInfo md_wcs2p02RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 29, 1994).bin", 0x100000, 0x5f9c51f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p02)
STD_ROM_FN(md_wcs2p02)

struct BurnDriver BurnDrvmd_wcs2p02 = {
	"md_wcs2p02", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940329)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p02RomInfo, md_wcs2p02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype, 19940330)
static struct BurnRomInfo md_wcs2p01RomDesc[] = {
	{ "world championship soccer ii (prototype - mar 30, 1994).bin", 0x100000, 0x8dd49c92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p01)
STD_ROM_FN(md_wcs2p01)

struct BurnDriver BurnDrvmd_wcs2p01 = {
	"md_wcs2p01", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype, 19940330)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p01RomInfo, md_wcs2p01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype G, 19940222)
static struct BurnRomInfo md_wcs2p18RomDesc[] = {
	{ "world championship soccer ii (prototype g - feb 22, 1994).bin", 0x100000, 0x6fbfa14e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p18)
STD_ROM_FN(md_wcs2p18)

struct BurnDriver BurnDrvmd_wcs2p18 = {
	"md_wcs2p18", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype G, 19940222)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p18RomInfo, md_wcs2p18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype J, 19940228)
static struct BurnRomInfo md_wcs2p16RomDesc[] = {
	{ "world championship soccer ii (prototype j - feb 28, 1994).bin", 0x100000, 0xe210a74c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p16)
STD_ROM_FN(md_wcs2p16)

struct BurnDriver BurnDrvmd_wcs2p16 = {
	"md_wcs2p16", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype J, 19940228)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p16RomInfo, md_wcs2p16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype N, 19940303)
static struct BurnRomInfo md_wcs2p15RomDesc[] = {
	{ "world championship soccer ii (prototype n - mar 03, 1994).bin", 0x100000, 0x07b387a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p15)
STD_ROM_FN(md_wcs2p15)

struct BurnDriver BurnDrvmd_wcs2p15 = {
	"md_wcs2p15", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype N, 19940303)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p15RomInfo, md_wcs2p15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype O, 19940303)
static struct BurnRomInfo md_wcs2p14RomDesc[] = {
	{ "world championship soccer ii (prototype o - mar 03, 1994).bin", 0x100000, 0x5a458d42, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p14)
STD_ROM_FN(md_wcs2p14)

struct BurnDriver BurnDrvmd_wcs2p14 = {
	"md_wcs2p14", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype O, 19940303)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p14RomInfo, md_wcs2p14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype P, 19940304)
static struct BurnRomInfo md_wcs2p13RomDesc[] = {
	{ "world championship soccer ii (prototype p - mar 04, 1994).bin", 0x100000, 0x8fe9f6ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p13)
STD_ROM_FN(md_wcs2p13)

struct BurnDriver BurnDrvmd_wcs2p13 = {
	"md_wcs2p13", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype P, 19940304)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p13RomInfo, md_wcs2p13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype R, 19940309)
static struct BurnRomInfo md_wcs2p11RomDesc[] = {
	{ "world championship soccer ii (prototype r - mar 09, 1994).bin", 0x100000, 0x94625572, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p11)
STD_ROM_FN(md_wcs2p11)

struct BurnDriver BurnDrvmd_wcs2p11 = {
	"md_wcs2p11", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype R, 19940309)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p11RomInfo, md_wcs2p11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype U, 19940314)
static struct BurnRomInfo md_wcs2p10RomDesc[] = {
	{ "world championship soccer ii (prototype u - mar 14, 1994).bin", 0x100000, 0x43ec107c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p10)
STD_ROM_FN(md_wcs2p10)

struct BurnDriver BurnDrvmd_wcs2p10 = {
	"md_wcs2p10", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype U, 19940314)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p10RomInfo, md_wcs2p10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (Prototype Y, 19940318)
static struct BurnRomInfo md_wcs2p09RomDesc[] = {
	{ "world championship soccer ii (prototype y - mar 18, 1994).bin", 0x100000, 0xf6735b61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2p09)
STD_ROM_FN(md_wcs2p09)

struct BurnDriver BurnDrvmd_wcs2p09 = {
	"md_wcs2p09", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (Prototype Y, 19940318)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2p09RomInfo, md_wcs2p09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer II (USA, Prototype)
static struct BurnRomInfo md_wcs2upRomDesc[] = {
	{ "world championship soccer ii (usa) (beta).bin", 0x100000, 0xc1e21c1a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs2up)
STD_ROM_FN(md_wcs2up)

struct BurnDriver BurnDrvmd_wcs2up = {
	"md_wcs2up", "md_wcs2", NULL, NULL, "1994",
	"World Championship Soccer II (USA, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcs2upRomInfo, md_wcs2upRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Class Leaderboard Golf (Euro)
static struct BurnRomInfo md_wcleadRomDesc[] = {
	{ "mpr-15278.bin", 0x080000, 0xdaca01c3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wclead)
STD_ROM_FN(md_wclead)

struct BurnDriver BurnDrvmd_wclead = {
	"md_wclead", NULL, NULL, NULL, "1992",
	"World Class Leaderboard Golf (Euro)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wcleadRomInfo, md_wcleadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Class Leaderboard Golf (USA)
static struct BurnRomInfo md_wcleaduRomDesc[] = {
	{ "world class leaderboard golf (usa).bin", 0x080000, 0x53434bab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcleadu)
STD_ROM_FN(md_wcleadu)

struct BurnDriver BurnDrvmd_wcleadu = {
	"md_wcleadu", "md_wclead", NULL, NULL, "1992",
	"World Class Leaderboard Golf (USA)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wcleaduRomInfo, md_wcleaduRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Cup Italia '90 (Euro)
static struct BurnRomInfo md_wcup90RomDesc[] = {
	{ "mpr-13239.bin", 0x040000, 0xdd95f829, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcup90)
STD_ROM_FN(md_wcup90)

struct BurnDriver BurnDrvmd_wcup90 = {
	"md_wcup90", NULL, NULL, NULL, "1990",
	"World Cup Italia '90 (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcup90RomInfo, md_wcup90RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer (USA, Rev. B) ~ World Cup Soccer (Japan, Rev. B)
static struct BurnRomInfo md_wcsRomDesc[] = {
	{ "mpr-12607b.bin", 0x040000, 0xbf272bcb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcs)
STD_ROM_FN(md_wcs)

struct BurnDriver BurnDrvmd_wcs = {
	"md_wcs", "md_wcup90", NULL, NULL, "1989",
	"World Championship Soccer (USA, Rev. B) ~ World Cup Soccer (Japan, Rev. B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcsRomInfo, md_wcsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer (USA, v1.2) ~ World Cup Soccer (Japan, v1.2)
static struct BurnRomInfo md_wcsaRomDesc[] = {
	{ "world cup soccer -- world championship soccer (usa, jpn) (v1.2).bin", 0x040000, 0xbf84ede6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcsa)
STD_ROM_FN(md_wcsa)

struct BurnDriver BurnDrvmd_wcsa = {
	"md_wcsa", "md_wcup90", NULL, NULL, "1989",
	"World Championship Soccer (USA, v1.2) ~ World Cup Soccer (Japan, v1.2)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcsaRomInfo, md_wcsaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Championship Soccer (USA) ~ World Cup Soccer (Japan)
static struct BurnRomInfo md_wcsbRomDesc[] = {
	{ "world cup soccer -- world championship soccer (usa, jpn).bin", 0x040000, 0xb01c3d70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcsb)
STD_ROM_FN(md_wcsb)

struct BurnDriver BurnDrvmd_wcsb = {
	"md_wcsb", "md_wcup90", NULL, NULL, "1989",
	"World Championship Soccer (USA) ~ World Cup Soccer (Jpn)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcsbRomInfo, md_wcsbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Cup USA 94 (Euro, USA, Korea)
static struct BurnRomInfo md_wcup94RomDesc[] = {
	{ "world cup usa 94 (euro, usa, kor).bin", 0x100000, 0x0171b47f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wcup94)
STD_ROM_FN(md_wcup94)

struct BurnDriver BurnDrvmd_wcup94 = {
	"md_wcup94", NULL, NULL, NULL, "1994",
	"World Cup USA 94 (Euro, USA, Korea)\0", NULL, "U.S. Gold", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_wcup94RomInfo, md_wcup94RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA)
static struct BurnRomInfo md_whRomDesc[] = {
	{ "world heroes (usa).bin", 0x200000, 0x0f4d22ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wh)
STD_ROM_FN(md_wh)

struct BurnDriver BurnDrvmd_wh = {
	"md_wh", NULL, NULL, NULL, "1994",
	"World Heroes (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whRomInfo, md_whRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Japan)
static struct BurnRomInfo md_whjRomDesc[] = {
	{ "world heroes (jpn).bin", 0x200000, 0x56e3ceff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whj)
STD_ROM_FN(md_whj)

struct BurnDriver BurnDrvmd_whj = {
	"md_whj", "md_wh", NULL, NULL, "1994",
	"World Heroes (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whjRomInfo, md_whjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940331-B)
static struct BurnRomInfo md_whp02RomDesc[] = {
	{ "world heroes (euro) (prototype - mar 31, 1994 - b).bin", 0x200000, 0xd210aa6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp02)
STD_ROM_FN(md_whp02)

struct BurnDriver BurnDrvmd_whp02 = {
	"md_whp02", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940331-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp02RomInfo, md_whp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940331)
static struct BurnRomInfo md_whp01RomDesc[] = {
	{ "world heroes (euro) (prototype - mar 31, 1994).bin", 0x200000, 0x92e1bf14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp01)
STD_ROM_FN(md_whp01)

struct BurnDriver BurnDrvmd_whp01 = {
	"md_whp01", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940331)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp01RomInfo, md_whp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Japan, Prototype, 19940408)
static struct BurnRomInfo md_whjp4RomDesc[] = {
	{ "world heroes (jpn) (prototype - apr 08, 1994).bin", 0x200000, 0x2bea7215, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whjp4)
STD_ROM_FN(md_whjp4)

struct BurnDriver BurnDrvmd_whjp4 = {
	"md_whjp4", "md_wh", NULL, NULL, "1994",
	"World Heroes (Japan, Prototype, 19940408)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whjp4RomInfo, md_whjp4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Japan, Prototype, 19940415)
static struct BurnRomInfo md_whjp3RomDesc[] = {
	{ "world heroes (jpn) (prototype - apr 15, 1994).bin", 0x200000, 0x6dec07b3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whjp3)
STD_ROM_FN(md_whjp3)

struct BurnDriver BurnDrvmd_whjp3 = {
	"md_whjp3", "md_wh", NULL, NULL, "1994",
	"World Heroes (Japan, Prototype, 19940415)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whjp3RomInfo, md_whjp3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Japan, Prototype, 19940420-B)
static struct BurnRomInfo md_whjp2RomDesc[] = {
	{ "world heroes (jpn) (prototype - apr 20, 1994 - b).bin", 0x200000, 0xf5ffb191, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whjp2)
STD_ROM_FN(md_whjp2)

struct BurnDriver BurnDrvmd_whjp2 = {
	"md_whjp2", "md_wh", NULL, NULL, "1994",
	"World Heroes (Japan, Prototype, 19940420-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whjp2RomInfo, md_whjp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Japan, Prototype, 19940420, broken - C05 missing)
static struct BurnRomInfo md_whjp1RomDesc[] = {
	{ "world heroes (jpn) (prototype - apr 20, 1994) (broken - c05 missing).bin", 0x200000, 0xb43b518c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whjp1)
STD_ROM_FN(md_whjp1)

struct BurnDriver BurnDrvmd_whjp1 = {
	"md_whjp1", "md_wh", NULL, NULL, "1994",
	"World Heroes (Japan, Prototype, 19940420, broken - C05 missing)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whjp1RomInfo, md_whjp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Japan, Prototype, 19940330)
static struct BurnRomInfo md_whjp5RomDesc[] = {
	{ "world heroes (jpn) (prototype - mar 30, 1994).bin", 0x200000, 0x3f93181a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whjp5)
STD_ROM_FN(md_whjp5)

struct BurnDriver BurnDrvmd_whjp5 = {
	"md_whjp5", "md_wh", NULL, NULL, "1994",
	"World Heroes (Japan, Prototype, 19940330)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whjp5RomInfo, md_whjp5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940223)
static struct BurnRomInfo md_whp13RomDesc[] = {
	{ "world heroes (usa) (prototype - feb 23, 1994).bin", 0x200000, 0xf5db477e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp13)
STD_ROM_FN(md_whp13)

struct BurnDriver BurnDrvmd_whp13 = {
	"md_whp13", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940223)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp13RomInfo, md_whp13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940303)
static struct BurnRomInfo md_whp12RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 03, 1994).bin", 0x200000, 0x24a63aef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp12)
STD_ROM_FN(md_whp12)

struct BurnDriver BurnDrvmd_whp12 = {
	"md_whp12", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940303)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp12RomInfo, md_whp12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940307)
static struct BurnRomInfo md_whp11RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 07, 1994).bin", 0x200000, 0x45c29350, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp11)
STD_ROM_FN(md_whp11)

struct BurnDriver BurnDrvmd_whp11 = {
	"md_whp11", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940307)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp11RomInfo, md_whp11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940309)
static struct BurnRomInfo md_whp10RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 09, 1994).bin", 0x200000, 0x2c7f9e64, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp10)
STD_ROM_FN(md_whp10)

struct BurnDriver BurnDrvmd_whp10 = {
	"md_whp10", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940309)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp10RomInfo, md_whp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940315)
static struct BurnRomInfo md_whp09RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 15, 1994).bin", 0x200000, 0x2c0b2f4f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp09)
STD_ROM_FN(md_whp09)

struct BurnDriver BurnDrvmd_whp09 = {
	"md_whp09", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940315)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp09RomInfo, md_whp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940316)
static struct BurnRomInfo md_whp08RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 16, 1994).bin", 0x200000, 0x19c74e2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp08)
STD_ROM_FN(md_whp08)

struct BurnDriver BurnDrvmd_whp08 = {
	"md_whp08", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940316)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp08RomInfo, md_whp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940318)
static struct BurnRomInfo md_whp07RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 18, 1994).bin", 0x200000, 0x2bc2a6bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp07)
STD_ROM_FN(md_whp07)

struct BurnDriver BurnDrvmd_whp07 = {
	"md_whp07", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940318)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp07RomInfo, md_whp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940322, broken - C07 missing)
static struct BurnRomInfo md_whp06RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 22, 1994) (broken - c07 missing).bin", 0x200000, 0x5c3c0931, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp06)
STD_ROM_FN(md_whp06)

struct BurnDriver BurnDrvmd_whp06 = {
	"md_whp06", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940322, broken - C07 missing)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp06RomInfo, md_whp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940323)
static struct BurnRomInfo md_whp05RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 23, 1994).bin", 0x200000, 0x587e6739, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp05)
STD_ROM_FN(md_whp05)

struct BurnDriver BurnDrvmd_whp05 = {
	"md_whp05", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940323)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp05RomInfo, md_whp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940324)
static struct BurnRomInfo md_whp04RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 24, 1994).bin", 0x200000, 0x8a656942, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp04)
STD_ROM_FN(md_whp04)

struct BurnDriver BurnDrvmd_whp04 = {
	"md_whp04", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940324)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp04RomInfo, md_whp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (USA, Prototype, 19940330)
static struct BurnRomInfo md_whp03RomDesc[] = {
	{ "world heroes (usa) (prototype - mar 30, 1994).bin", 0x200000, 0x50c797cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whp03)
STD_ROM_FN(md_whp03)

struct BurnDriver BurnDrvmd_whp03 = {
	"md_whp03", "md_wh", NULL, NULL, "1994",
	"World Heroes (USA, Prototype, 19940330)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whp03RomInfo, md_whp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World of Illusion Starring Mickey Mouse and Donald Duck (Euro)
static struct BurnRomInfo md_worldillRomDesc[] = {
	{ "mpr-15271.bin", 0x100000, 0x121c6a49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldill)
STD_ROM_FN(md_worldill)

struct BurnDriver BurnDrvmd_worldill = {
	"md_worldill", NULL, NULL, NULL, "1992",
	"World of Illusion Starring Mickey Mouse and Donald Duck (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_worldillRomInfo, md_worldillRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World of Illusion - Fushigi na Magic Box (Japan)
static struct BurnRomInfo md_worldilljRomDesc[] = {
	{ "world of illusion - fushigi na magic box (jpn).bin", 0x100000, 0xcb9ee238, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldillj)
STD_ROM_FN(md_worldillj)

struct BurnDriver BurnDrvmd_worldillj = {
	"md_worldillj", "md_worldill", NULL, NULL, "1992",
	"World of Illusion - Fushigi na Magic Box (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_worldilljRomInfo, md_worldilljRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World of Illusion - Fushigi na Magic Box (Japan, Prototype A)
static struct BurnRomInfo md_worldilljp1RomDesc[] = {
	{ "world of illusion - fushigi na magic box (jpn, prototype a).bin", 0x100000, 0x577f680f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldilljp1)
STD_ROM_FN(md_worldilljp1)

struct BurnDriver BurnDrvmd_worldilljp1 = {
	"md_worldilljp1", "md_worldill", NULL, NULL, "1992",
	"World of Illusion - Fushigi na Magic Box (Japan, Prototype A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_worldilljp1RomInfo, md_worldilljp1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World of Illusion - Fushigi na Magic Box (Japan, Prototype B)
static struct BurnRomInfo md_worldilljp2RomDesc[] = {
	{ "world of illusion - fushigi na magic box (jpn, prototype b).bin", 0x100000, 0xf807176c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldilljp2)
STD_ROM_FN(md_worldilljp2)

struct BurnDriver BurnDrvmd_worldilljp2 = {
	"md_worldilljp2", "md_worldill", NULL, NULL, "1992",
	"World of Illusion - Fushigi na Magic Box (Japan, Prototype B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_worldilljp2RomInfo, md_worldilljp2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World of Illusion Starring Mickey Mouse and Donald Duck (USA, Korea)
static struct BurnRomInfo md_worldilluRomDesc[] = {
	{ "world of illusion starring mickey mouse and donald duck (usa, kor).bin", 0x100000, 0x921ebd1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldillu)
STD_ROM_FN(md_worldillu)

struct BurnDriver BurnDrvmd_worldillu = {
	"md_worldillu", "md_worldill", NULL, NULL, "1992",
	"World of Illusion Starring Mickey Mouse and Donald Duck (USA, Korea)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_worldilluRomInfo, md_worldilluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA)
static struct BurnRomInfo md_wsb95RomDesc[] = {
	{ "world series baseball '95 (usa).bin", 0x300000, 0x25130077, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95)
STD_ROM_FN(md_wsb95)

struct BurnDriver BurnDrvmd_wsb95 = {
	"md_wsb95", NULL, NULL, NULL, "1995",
	"World Series Baseball '95 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95RomInfo, md_wsb95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19941208)
static struct BurnRomInfo md_wsb95p23RomDesc[] = {
	{ "world series baseball '95 (prototype - dec 08, 1994).bin", 0x300000, 0x8846b050, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p23)
STD_ROM_FN(md_wsb95p23)

struct BurnDriver BurnDrvmd_wsb95p23 = {
	"md_wsb95p23", "md_wsb95", NULL, NULL, "1994",
	"World Series Baseball '95 (USA, Prototype, 19941208)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p23RomInfo, md_wsb95p23RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19941214)
static struct BurnRomInfo md_wsb95p22RomDesc[] = {
	{ "world series baseball '95 (prototype - dec 14, 1994).bin", 0x300000, 0x385be354, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p22)
STD_ROM_FN(md_wsb95p22)

struct BurnDriver BurnDrvmd_wsb95p22 = {
	"md_wsb95p22", "md_wsb95", NULL, NULL, "1994",
	"World Series Baseball '95 (USA, Prototype, 19941214)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p22RomInfo, md_wsb95p22RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19941228-SB)
static struct BurnRomInfo md_wsb95p21RomDesc[] = {
	{ "world series baseball '95 (prototype - dec 28, 1994 - sb).bin", 0x300000, 0x9e6dbc7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p21)
STD_ROM_FN(md_wsb95p21)

struct BurnDriver BurnDrvmd_wsb95p21 = {
	"md_wsb95p21", "md_wsb95", NULL, NULL, "1994",
	"World Series Baseball '95 (USA, Prototype, 19941228-SB)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p21RomInfo, md_wsb95p21RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950202)
static struct BurnRomInfo md_wsb95p09RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 02, 1995).bin", 0x300000, 0xa947fe5c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p09)
STD_ROM_FN(md_wsb95p09)

struct BurnDriver BurnDrvmd_wsb95p09 = {
	"md_wsb95p09", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950202)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p09RomInfo, md_wsb95p09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950203)
static struct BurnRomInfo md_wsb95p08RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 03, 1995).bin", 0x300000, 0x1f3754fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p08)
STD_ROM_FN(md_wsb95p08)

struct BurnDriver BurnDrvmd_wsb95p08 = {
	"md_wsb95p08", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950203)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p08RomInfo, md_wsb95p08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950207)
static struct BurnRomInfo md_wsb95p07RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 07, 1995).bin", 0x300000, 0xe4056559, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p07)
STD_ROM_FN(md_wsb95p07)

struct BurnDriver BurnDrvmd_wsb95p07 = {
	"md_wsb95p07", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950207)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p07RomInfo, md_wsb95p07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950209-B)
static struct BurnRomInfo md_wsb95p06RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 09, 1995 - b).bin", 0x300000, 0x33bb9eda, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p06)
STD_ROM_FN(md_wsb95p06)

struct BurnDriver BurnDrvmd_wsb95p06 = {
	"md_wsb95p06", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950209-B)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p06RomInfo, md_wsb95p06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950209)
static struct BurnRomInfo md_wsb95p05RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 09, 1995).bin", 0x300000, 0x83be98cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p05)
STD_ROM_FN(md_wsb95p05)

struct BurnDriver BurnDrvmd_wsb95p05 = {
	"md_wsb95p05", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950209)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p05RomInfo, md_wsb95p05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950211)
static struct BurnRomInfo md_wsb95p04RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 11, 1995).bin", 0x300000, 0xa0664fe9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p04)
STD_ROM_FN(md_wsb95p04)

struct BurnDriver BurnDrvmd_wsb95p04 = {
	"md_wsb95p04", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950211)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p04RomInfo, md_wsb95p04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950212)
static struct BurnRomInfo md_wsb95p03RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 12, 1995).bin", 0x300000, 0x45da8f18, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p03)
STD_ROM_FN(md_wsb95p03)

struct BurnDriver BurnDrvmd_wsb95p03 = {
	"md_wsb95p03", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950212)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p03RomInfo, md_wsb95p03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950213)
static struct BurnRomInfo md_wsb95p02RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 13, 1995).bin", 0x300000, 0x9f30ae30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p02)
STD_ROM_FN(md_wsb95p02)

struct BurnDriver BurnDrvmd_wsb95p02 = {
	"md_wsb95p02", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950213)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p02RomInfo, md_wsb95p02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950214)
static struct BurnRomInfo md_wsb95p01RomDesc[] = {
	{ "world series baseball '95 (prototype - feb 14, 1995).bin", 0x300000, 0xf300a857, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p01)
STD_ROM_FN(md_wsb95p01)

struct BurnDriver BurnDrvmd_wsb95p01 = {
	"md_wsb95p01", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950214)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p01RomInfo, md_wsb95p01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950101-TST)
static struct BurnRomInfo md_wsb95p20RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 01, 1995 - tst).bin", 0x300000, 0xc7574372, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p20)
STD_ROM_FN(md_wsb95p20)

struct BurnDriver BurnDrvmd_wsb95p20 = {
	"md_wsb95p20", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950101-TST)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p20RomInfo, md_wsb95p20RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950103-TST)
static struct BurnRomInfo md_wsb95p19RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 03, 1995 - tst).bin", 0x300000, 0x498363f7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p19)
STD_ROM_FN(md_wsb95p19)

struct BurnDriver BurnDrvmd_wsb95p19 = {
	"md_wsb95p19", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950103-TST)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p19RomInfo, md_wsb95p19RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950105)
static struct BurnRomInfo md_wsb95p18RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 05, 1995).bin", 0x300000, 0x1820abfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p18)
STD_ROM_FN(md_wsb95p18)

struct BurnDriver BurnDrvmd_wsb95p18 = {
	"md_wsb95p18", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950105)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p18RomInfo, md_wsb95p18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950109-TST)
static struct BurnRomInfo md_wsb95p17RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 09, 1995 - tst).bin", 0x300000, 0x3de7cdbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p17)
STD_ROM_FN(md_wsb95p17)

struct BurnDriver BurnDrvmd_wsb95p17 = {
	"md_wsb95p17", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950109-TST)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p17RomInfo, md_wsb95p17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950110)
static struct BurnRomInfo md_wsb95p16RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 10, 1995).bin", 0x300000, 0xac2772b0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p16)
STD_ROM_FN(md_wsb95p16)

struct BurnDriver BurnDrvmd_wsb95p16 = {
	"md_wsb95p16", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950110)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p16RomInfo, md_wsb95p16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950114-RM)
static struct BurnRomInfo md_wsb95p15RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 14, 1995 - rm).bin", 0x301655, 0xf70b07cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p15)
STD_ROM_FN(md_wsb95p15)

struct BurnDriver BurnDrvmd_wsb95p15 = {
	"md_wsb95p15", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950114-RM)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p15RomInfo, md_wsb95p15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950116)
static struct BurnRomInfo md_wsb95p14RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 16, 1995).bin", 0x300000, 0xf0e22b21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p14)
STD_ROM_FN(md_wsb95p14)

struct BurnDriver BurnDrvmd_wsb95p14 = {
	"md_wsb95p14", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950116)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p14RomInfo, md_wsb95p14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950118-RM)
static struct BurnRomInfo md_wsb95p13RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 18, 1995 - rm).bin", 0x3023d3, 0x5ce70f8f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p13)
STD_ROM_FN(md_wsb95p13)

struct BurnDriver BurnDrvmd_wsb95p13 = {
	"md_wsb95p13", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950118-RM)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p13RomInfo, md_wsb95p13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950120)
static struct BurnRomInfo md_wsb95p12RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 20, 1995).bin", 0x300000, 0x16c15e46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p12)
STD_ROM_FN(md_wsb95p12)

struct BurnDriver BurnDrvmd_wsb95p12 = {
	"md_wsb95p12", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950120)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p12RomInfo, md_wsb95p12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950125)
static struct BurnRomInfo md_wsb95p11RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 25, 1995).bin", 0x300000, 0xb45d9e33, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p11)
STD_ROM_FN(md_wsb95p11)

struct BurnDriver BurnDrvmd_wsb95p11 = {
	"md_wsb95p11", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950125)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p11RomInfo, md_wsb95p11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '95 (USA, Prototype, 19950130)
static struct BurnRomInfo md_wsb95p10RomDesc[] = {
	{ "world series baseball '95 (prototype - jan 30, 1995).bin", 0x300000, 0x6aa76a9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb95p10)
STD_ROM_FN(md_wsb95p10)

struct BurnDriver BurnDrvmd_wsb95p10 = {
	"md_wsb95p10", "md_wsb95", NULL, NULL, "1995",
	"World Series Baseball '95 (USA, Prototype, 19950130)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb95p10RomInfo, md_wsb95p10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '96 (USA)
static struct BurnRomInfo md_wsb96RomDesc[] = {
	{ "world series baseball '96 (usa).bin", 0x300000, 0x04ee8272, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb96)
STD_ROM_FN(md_wsb96)

struct BurnDriver BurnDrvmd_wsb96 = {
	"md_wsb96", NULL, NULL, NULL, "1996",
	"World Series Baseball '96 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb96RomInfo, md_wsb96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball '98 (USA)
static struct BurnRomInfo md_wsb98RomDesc[] = {
	{ "world series baseball '98 (usa).bin", 0x300000, 0x05b1ab53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb98)
STD_ROM_FN(md_wsb98)

struct BurnDriver BurnDrvmd_wsb98 = {
	"md_wsb98", NULL, NULL, NULL, "1997",
	"World Series Baseball '98 (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsb98RomInfo, md_wsb98RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA)
static struct BurnRomInfo md_wsbRomDesc[] = {
	{ "world series baseball (usa).bin", 0x200000, 0x57c1d5ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsb)
STD_ROM_FN(md_wsb)

struct BurnDriver BurnDrvmd_wsb = {
	"md_wsb", NULL, NULL, NULL, "1994",
	"World Series Baseball (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbRomInfo, md_wsbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19931222)
static struct BurnRomInfo md_wsbp09RomDesc[] = {
	{ "world series baseball (prototype - dec 22, 1993).bin", 0x1fc05d, 0x0dc0558d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp09)
STD_ROM_FN(md_wsbp09)

struct BurnDriver BurnDrvmd_wsbp09 = {
	"md_wsbp09", "md_wsb", NULL, NULL, "1993",
	"World Series Baseball (USA, Prototype, 19931222)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp09RomInfo, md_wsbp09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19931226)
static struct BurnRomInfo md_wsbp08RomDesc[] = {
	{ "world series baseball (prototype - dec 26, 1993).bin", 0x200000, 0x472e6a58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp08)
STD_ROM_FN(md_wsbp08)

struct BurnDriver BurnDrvmd_wsbp08 = {
	"md_wsbp08", "md_wsb", NULL, NULL, "1993",
	"World Series Baseball (USA, Prototype, 19931226)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp08RomInfo, md_wsbp08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19931229)
static struct BurnRomInfo md_wsbp07RomDesc[] = {
	{ "world series baseball (prototype - dec 29, 1993).bin", 0x200000, 0xed949936, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp07)
STD_ROM_FN(md_wsbp07)

struct BurnDriver BurnDrvmd_wsbp07 = {
	"md_wsbp07", "md_wsb", NULL, NULL, "1993",
	"World Series Baseball (USA, Prototype, 19931229)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp07RomInfo, md_wsbp07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19940218)
static struct BurnRomInfo md_wsbp03RomDesc[] = {
	{ "world series baseball (prototype - feb 18, 1994).bin", 0x200000, 0x3cadfc50, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp03)
STD_ROM_FN(md_wsbp03)

struct BurnDriver BurnDrvmd_wsbp03 = {
	"md_wsbp03", "md_wsb", NULL, NULL, "1994",
	"World Series Baseball (USA, Prototype, 19940218)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp03RomInfo, md_wsbp03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19940103)
static struct BurnRomInfo md_wsbp06RomDesc[] = {
	{ "world series baseball (prototype - jan 03, 1994).bin", 0x200000, 0x4b53f035, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp06)
STD_ROM_FN(md_wsbp06)

struct BurnDriver BurnDrvmd_wsbp06 = {
	"md_wsbp06", "md_wsb", NULL, NULL, "1994",
	"World Series Baseball (USA, Prototype, 19940103)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp06RomInfo, md_wsbp06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19940106)
static struct BurnRomInfo md_wsbp05RomDesc[] = {
	{ "world series baseball (prototype - jan 06, 1994).bin", 0x200000, 0xb07de2d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp05)
STD_ROM_FN(md_wsbp05)

struct BurnDriver BurnDrvmd_wsbp05 = {
	"md_wsbp05", "md_wsb", NULL, NULL, "1994",
	"World Series Baseball (USA, Prototype, 19940106)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp05RomInfo, md_wsbp05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19940116)
static struct BurnRomInfo md_wsbp04RomDesc[] = {
	{ "world series baseball (prototype - jan 16, 1994).bin", 0x200000, 0x5322133e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp04)
STD_ROM_FN(md_wsbp04)

struct BurnDriver BurnDrvmd_wsbp04 = {
	"md_wsbp04", "md_wsb", NULL, NULL, "1994",
	"World Series Baseball (USA, Prototype, 19940116)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp04RomInfo, md_wsbp04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19940304)
static struct BurnRomInfo md_wsbp02RomDesc[] = {
	{ "world series baseball (prototype - mar 04, 1994).bin", 0x1feaa2, 0xedda44a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp02)
STD_ROM_FN(md_wsbp02)

struct BurnDriver BurnDrvmd_wsbp02 = {
	"md_wsbp02", "md_wsb", NULL, NULL, "1994",
	"World Series Baseball (USA, Prototype, 19940304)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp02RomInfo, md_wsbp02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19940527)
static struct BurnRomInfo md_wsbp01RomDesc[] = {
	{ "world series baseball (prototype - may 27, 1994).bin", 0x200000, 0xe473728a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp01)
STD_ROM_FN(md_wsbp01)

struct BurnDriver BurnDrvmd_wsbp01 = {
	"md_wsbp01", "md_wsb", NULL, NULL, "1994",
	"World Series Baseball (USA, Prototype, 19940527)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp01RomInfo, md_wsbp01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Series Baseball (USA, Prototype, 19931001)
static struct BurnRomInfo md_wsbp10RomDesc[] = {
	{ "world series baseball (prototype - oct 01, 1993).bin", 0x200000, 0x4f7ab92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wsbp10)
STD_ROM_FN(md_wsbp10)

struct BurnDriver BurnDrvmd_wsbp10 = {
	"md_wsbp10", "md_wsb", NULL, NULL, "1993",
	"World Series Baseball (USA, Prototype, 19931001)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wsbp10RomInfo, md_wsbp10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Worms (Euro)
static struct BurnRomInfo md_wormsRomDesc[] = {
	{ "worms (euro).bin", 0x200000, 0xb9a8b299, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worms)
STD_ROM_FN(md_worms)

struct BurnDriver BurnDrvmd_worms = {
	"md_worms", NULL, NULL, NULL, "1995",
	"Worms (Euro)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_wormsRomInfo, md_wormsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Worms (Euro, Prototype)
static struct BurnRomInfo md_wormspRomDesc[] = {
	{ "worms (euro) (beta).bin", 0x200000, 0x1d191694, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wormsp)
STD_ROM_FN(md_wormsp)

struct BurnDriver BurnDrvmd_wormsp = {
	"md_wormsp", "md_worms", NULL, NULL, "1995",
	"Worms (Euro, Prototype)\0", NULL, "Ocean", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_wormspRomInfo, md_wormspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wrestle War (Euro, Japan)
static struct BurnRomInfo md_wrestwarRomDesc[] = {
	{ "mpr-14025.bin", 0x080000, 0x2d162a85, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wrestwar)
STD_ROM_FN(md_wrestwar)

struct BurnDriver BurnDrvmd_wrestwar = {
	"md_wrestwar", NULL, NULL, NULL, "1991",
	"Wrestle War (Euro, Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wrestwarRomInfo, md_wrestwarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wrestle War (Japan, Prototype)
static struct BurnRomInfo md_wrestwarpRomDesc[] = {
	{ "wrestle war (jpn) (beta).bin", 0x080000, 0x1cdee87b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wrestwarp)
STD_ROM_FN(md_wrestwarp)

struct BurnDriver BurnDrvmd_wrestwarp = {
	"md_wrestwarp", "md_wrestwar", NULL, NULL, "1991",
	"Wrestle War (Japan, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wrestwarpRomInfo, md_wrestwarpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wu Kong Wai Zhuan (China) (Unl)
static struct BurnRomInfo md_wukongRomDesc[] = {
	{ "wu kong wai zhuan (chi) (unl).bin", 0x200000, 0x880a916e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wukong)
STD_ROM_FN(md_wukong)

struct BurnDriver BurnDrvmd_wukong = {
	"md_wukong", NULL, NULL, NULL, "1996",
	"Wu Kong Wai Zhuan (China) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_wukongRomInfo, md_wukongRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WWF Raw (World)
static struct BurnRomInfo md_wwfrawRomDesc[] = {
	{ "wwf raw (world).bin", 0x300000, 0x4ef5d411, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wwfraw)
STD_ROM_FN(md_wwfraw)

struct BurnDriver BurnDrvmd_wwfraw = {
	"md_wwfraw", NULL, NULL, NULL, "1994",
	"WWF Raw (World)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wwfrawRomInfo, md_wwfrawRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WWF Royal Rumble (World)
static struct BurnRomInfo md_wwfroyalRomDesc[] = {
	{ "wwf royal rumble (world).bin", 0x200000, 0xb69dc53e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wwfroyal)
STD_ROM_FN(md_wwfroyal)

struct BurnDriver BurnDrvmd_wwfroyal = {
	"md_wwfroyal", NULL, NULL, NULL, "1994",
	"WWF Royal Rumble (World)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wwfroyalRomInfo, md_wwfroyalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WWF Super WrestleMania (Euro, USA)
static struct BurnRomInfo md_wwfsupRomDesc[] = {
	{ "mpr-15215.bin", 0x100000, 0xb929d6c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wwfsup)
STD_ROM_FN(md_wwfsup)

struct BurnDriver BurnDrvmd_wwfsup = {
	"md_wwfsup", NULL, NULL, NULL, "1992",
	"WWF Super WrestleMania (Euro, USA)\0", NULL, "Flying Edge", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wwfsupRomInfo, md_wwfsupRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WWF WrestleMania - The Arcade Game (Euro, USA)
static struct BurnRomInfo md_wwfagRomDesc[] = {
	{ "9539d+9540d.bin", 0x400000, 0xa5d023f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wwfag)
STD_ROM_FN(md_wwfag)

struct BurnDriver BurnDrvmd_wwfag = {
	"md_wwfag", NULL, NULL, NULL, "1995",
	"WWF WrestleMania - The Arcade Game (Euro, USA)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wwfagRomInfo, md_wwfagRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WWF WrestleMania - The Arcade Game (USA, Prototype)
static struct BurnRomInfo md_wwfagpRomDesc[] = {
	{ "wwf wrestlemania - the arcade game (usa) (alpha).bin", 0x040000, 0x719d6155, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wwfagp)
STD_ROM_FN(md_wwfagp)

struct BurnDriver BurnDrvmd_wwfagp = {
	"md_wwfagp", "md_wwfag", NULL, NULL, "1995",
	"WWF WrestleMania - The Arcade Game (USA, Prototype)\0", NULL, "Acclaim Entertainment", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wwfagpRomInfo, md_wwfagpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men (Euro)
static struct BurnRomInfo md_xmenRomDesc[] = {
	{ "mpr-15505.bin", 0x100000, 0x0b78ca97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen)
STD_ROM_FN(md_xmen)

struct BurnDriver BurnDrvmd_xmen = {
	"md_xmen", NULL, NULL, NULL, "1993",
	"X-Men (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmenRomInfo, md_xmenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men (USA)
static struct BurnRomInfo md_xmenuRomDesc[] = {
	{ "x-men (usa).bin", 0x100000, 0xf71b21b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmenu)
STD_ROM_FN(md_xmenu)

struct BurnDriver BurnDrvmd_xmenu = {
	"md_xmenu", "md_xmen", NULL, NULL, "1993",
	"X-Men (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmenuRomInfo, md_xmenuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate X-Men (Hack, Enhanced)
// https://www.romhacking.net/hacks/5639/
static struct BurnRomInfo md_uxmenRomDesc[] = {
	{ "ultimate x-men (hack, enhanced).bin", 1048576, 0x4528a2bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_uxmen)
STD_ROM_FN(md_uxmen)

struct BurnDriver BurnDrvmd_uxmen = {
	"md_uxmen", "md_xmen", NULL, NULL, "2021",
	"Ultimate X-Men (Hack, Enhanced)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_uxmenRomInfo, md_uxmenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Euro, USA)
static struct BurnRomInfo md_xmen2RomDesc[] = {
	{ "x-men 2 - clone wars (euro, usa).bin", 0x200000, 0x710bc628, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2)
STD_ROM_FN(md_xmen2)

struct BurnDriver BurnDrvmd_xmen2 = {
	"md_xmen2", NULL, NULL, NULL, "1995",
	"X-Men 2 - Clone Wars (Euro, USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2RomInfo, md_xmen2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941202)
static struct BurnRomInfo md_xmen2p12RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 02, 1994).bin", 0x1fbe22, 0x7ad7a4e9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p12)
STD_ROM_FN(md_xmen2p12)

struct BurnDriver BurnDrvmd_xmen2p12 = {
	"md_xmen2p12", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941202)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p12RomInfo, md_xmen2p12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941203)
static struct BurnRomInfo md_xmen2p11RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 03, 1994).bin", 0x200000, 0x669b939c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p11)
STD_ROM_FN(md_xmen2p11)

struct BurnDriver BurnDrvmd_xmen2p11 = {
	"md_xmen2p11", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941203)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p11RomInfo, md_xmen2p11RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941206)
static struct BurnRomInfo md_xmen2p10RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 06, 1994).bin", 0x200000, 0x5b1d0cf5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p10)
STD_ROM_FN(md_xmen2p10)

struct BurnDriver BurnDrvmd_xmen2p10 = {
	"md_xmen2p10", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941206)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p10RomInfo, md_xmen2p10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941207)
static struct BurnRomInfo md_xmen2p09RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 07, 1994).bin", 0x200000, 0x246a30da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p09)
STD_ROM_FN(md_xmen2p09)

struct BurnDriver BurnDrvmd_xmen2p09 = {
	"md_xmen2p09", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941207)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p09RomInfo, md_xmen2p09RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941208)
static struct BurnRomInfo md_xmen2p08RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 08, 1994).bin", 0x1feedc, 0xc6d90b1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p08)
STD_ROM_FN(md_xmen2p08)

struct BurnDriver BurnDrvmd_xmen2p08 = {
	"md_xmen2p08", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941208)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p08RomInfo, md_xmen2p08RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941209)
static struct BurnRomInfo md_xmen2p07RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 09, 1994).bin", 0x200000, 0x28307b58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p07)
STD_ROM_FN(md_xmen2p07)

struct BurnDriver BurnDrvmd_xmen2p07 = {
	"md_xmen2p07", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941209)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p07RomInfo, md_xmen2p07RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941210)
static struct BurnRomInfo md_xmen2p06RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 10, 1994).bin", 0x1ffaf0, 0x73e2effe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p06)
STD_ROM_FN(md_xmen2p06)

struct BurnDriver BurnDrvmd_xmen2p06 = {
	"md_xmen2p06", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941210)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p06RomInfo, md_xmen2p06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941211-A)
static struct BurnRomInfo md_xmen2p05RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 11, 1994 - a).bin", 0x200000, 0x11415b86, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p05)
STD_ROM_FN(md_xmen2p05)

struct BurnDriver BurnDrvmd_xmen2p05 = {
	"md_xmen2p05", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941211-A)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p05RomInfo, md_xmen2p05RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941211)
static struct BurnRomInfo md_xmen2p04RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 11, 1994).bin", 0x200000, 0x51876259, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p04)
STD_ROM_FN(md_xmen2p04)

struct BurnDriver BurnDrvmd_xmen2p04 = {
	"md_xmen2p04", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941211)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p04RomInfo, md_xmen2p04RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941214)
static struct BurnRomInfo md_xmen2p03RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 14, 1994).bin", 0x200000, 0xcd662de6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p03)
STD_ROM_FN(md_xmen2p03)

struct BurnDriver BurnDrvmd_xmen2p03 = {
	"md_xmen2p03", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941214)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p03RomInfo, md_xmen2p03RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941215)
static struct BurnRomInfo md_xmen2p02RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 15, 1994).bin", 0x1ffe54, 0xa5188e30, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p02)
STD_ROM_FN(md_xmen2p02)

struct BurnDriver BurnDrvmd_xmen2p02 = {
	"md_xmen2p02", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941215)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p02RomInfo, md_xmen2p02RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941216)
static struct BurnRomInfo md_xmen2p01RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - dec 16, 1994).bin", 0x200000, 0xe8c40972, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p01)
STD_ROM_FN(md_xmen2p01)

struct BurnDriver BurnDrvmd_xmen2p01 = {
	"md_xmen2p01", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941216)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p01RomInfo, md_xmen2p01RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19940506)
static struct BurnRomInfo md_xmen2p19RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - may 06, 1994).bin", 0x200000, 0xa720ebb4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p19)
STD_ROM_FN(md_xmen2p19)

struct BurnDriver BurnDrvmd_xmen2p19 = {
	"md_xmen2p19", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19940506)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p19RomInfo, md_xmen2p19RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19940510)
static struct BurnRomInfo md_xmen2p18RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - may 10, 1994).bin", 0x200000, 0x9b5dd185, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p18)
STD_ROM_FN(md_xmen2p18)

struct BurnDriver BurnDrvmd_xmen2p18 = {
	"md_xmen2p18", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19940510)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p18RomInfo, md_xmen2p18RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941117)
static struct BurnRomInfo md_xmen2p16RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - nov 17, 1994).bin", 0x200000, 0xd90cd0de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p16)
STD_ROM_FN(md_xmen2p16)

struct BurnDriver BurnDrvmd_xmen2p16 = {
	"md_xmen2p16", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941117)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p16RomInfo, md_xmen2p16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941123)
static struct BurnRomInfo md_xmen2p15RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - nov 23, 1994).bin", 0x200000, 0x4386a381, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p15)
STD_ROM_FN(md_xmen2p15)

struct BurnDriver BurnDrvmd_xmen2p15 = {
	"md_xmen2p15", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941123)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p15RomInfo, md_xmen2p15RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941128)
static struct BurnRomInfo md_xmen2p14RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - nov 28, 1994).bin", 0x200000, 0x70383a4d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p14)
STD_ROM_FN(md_xmen2p14)

struct BurnDriver BurnDrvmd_xmen2p14 = {
	"md_xmen2p14", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941128)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p14RomInfo, md_xmen2p14RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941130)
static struct BurnRomInfo md_xmen2p13RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - nov 30, 1994).bin", 0x200000, 0x331dae0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p13)
STD_ROM_FN(md_xmen2p13)

struct BurnDriver BurnDrvmd_xmen2p13 = {
	"md_xmen2p13", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941130)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p13RomInfo, md_xmen2p13RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Prototype, 19941018)
static struct BurnRomInfo md_xmen2p17RomDesc[] = {
	{ "x-men 2 - clone wars (prototype - oct 18, 1994).bin", 0x200000, 0x52cff37d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2p17)
STD_ROM_FN(md_xmen2p17)

struct BurnDriver BurnDrvmd_xmen2p17 = {
	"md_xmen2p17", "md_xmen2", NULL, NULL, "1994",
	"X-Men 2 - Clone Wars (Prototype, 19941018)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2p17RomInfo, md_xmen2p17RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-perts (USA)
static struct BurnRomInfo md_xpertsRomDesc[] = {
	{ "x-perts (usa).bin", 0x400000, 0x57e8abfd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xperts)
STD_ROM_FN(md_xperts)

struct BurnDriver BurnDrvmd_xperts = {
	"md_xperts", NULL, NULL, NULL, "1996",
	"X-perts (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_xpertsRomInfo, md_xpertsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-perts (Prototype)
static struct BurnRomInfo md_xpertspRomDesc[] = {
	{ "x-perts (prototype).bin", 0x400000, 0x9d067249, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xpertsp)
STD_ROM_FN(md_xpertsp)

struct BurnDriver BurnDrvmd_xpertsp = {
	"md_xpertsp", "md_xperts", NULL, NULL, "1996",
	"X-perts (Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_xpertspRomInfo, md_xpertspRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// XDR - X Dazedly Ray (Japan)
static struct BurnRomInfo md_xdrRomDesc[] = {
	{ "xdr - x dazedly ray (jpn).bin", 0x080000, 0xab22d002, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xdr)
STD_ROM_FN(md_xdr)

struct BurnDriver BurnDrvmd_xdr = {
	"md_xdr", NULL, NULL, NULL, "1990",
	"XDR - X Dazedly Ray (Japan)\0", NULL, "Unipacc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_xdrRomInfo, md_xdrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xenon 2 - Megablast (Euro)
static struct BurnRomInfo md_xenon2RomDesc[] = {
	{ "mpr-15064.bin", 0x080000, 0x59abe7f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xenon2)
STD_ROM_FN(md_xenon2)

struct BurnDriver BurnDrvmd_xenon2 = {
	"md_xenon2", NULL, NULL, NULL, "1992",
	"Xenon 2 - Megablast (Euro)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_xenon2RomInfo, md_xenon2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yogi Bear's Cartoon Capers (Euro)
static struct BurnRomInfo md_yogibearRomDesc[] = {
	{ "yogi bear's cartoon capers (euro).bin", 0x100000, 0x204f97d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yogibear)
STD_ROM_FN(md_yogibear)

struct BurnDriver BurnDrvmd_yogibear = {
	"md_yogibear", NULL, NULL, NULL, "1994",
	"Yogi Bear's Cartoon Capers (Euro)\0", NULL, "Empire Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_yogibearRomInfo, md_yogibearRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Young Indiana Jones Chronicles, The (USA, Prototype)
static struct BurnRomInfo md_youngindRomDesc[] = {
	{ "young indiana jones chronicles, the (usa) (prototype).bin", 0x080000, 0x44f6be35, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_youngind)
STD_ROM_FN(md_youngind)

struct BurnDriver BurnDrvmd_youngind = {
	"md_youngind", NULL, NULL, NULL, "199?",
	"Young Indiana Jones Chronicles, The (USA, Prototype)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_youngindRomInfo, md_youngindRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ys III (USA)
static struct BurnRomInfo md_ys3RomDesc[] = {
	{ "ys iii (usa).bin", 0x100000, 0xea27976e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ys3)
STD_ROM_FN(md_ys3)

struct BurnDriver BurnDrvmd_ys3 = {
	"md_ys3", NULL, NULL, NULL, "1991",
	"Ys III (USA)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_ys3RomInfo, md_ys3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ys - Wanderers from Ys (Japan)
static struct BurnRomInfo md_ys3jRomDesc[] = {
	{ "ys - wanderers from ys (jpn).bin", 0x100000, 0x52da4e76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ys3j)
STD_ROM_FN(md_ys3j)

struct BurnDriver BurnDrvmd_ys3j = {
	"md_ys3j", "md_ys3", NULL, NULL, "1991",
	"Ys - Wanderers from Ys (Japan)\0", NULL, "Nihon Falcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_ys3jRomInfo, md_ys3jRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yu Yu Hakusho - Makyou Toitsusen (Japan)
static struct BurnRomInfo md_yuyumtRomDesc[] = {
	{ "yuu yuu hakusho - makyou toitsusen (jpn).bin", 0x300000, 0x71ceac6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yuyumt)
STD_ROM_FN(md_yuyumt)

struct BurnDriver BurnDrvmd_yuyumt = {
	"md_yuyumt", "md_yuyusf", NULL, NULL, "1994",
	"Yu Yu Hakusho - Makyou Toitsusen (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_yuyumtRomInfo, md_yuyumtRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yu Yu Hakusho - Makyou Toitsusen (Hack, English)
// https://www.romhacking.net/translations/1222/
static struct BurnRomInfo md_yuyumteRomDesc[] = {
	{ "yuu yuu hakusho - makyou toitsusen (english translation).bin", 0x300000, 0x0f041d2e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yuyumte)
STD_ROM_FN(md_yuyumte)

struct BurnDriver BurnDrvmd_yuyumte = {
	"md_yuyumte", "md_yuyusf", NULL, NULL, "2007",
	"Yu Yu Hakusho - Makyou Toitsusen (Hack, English)\0", NULL, "Jon Najar", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_yuyumteRomInfo, md_yuyumteRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yu Yu Hakusho - Sunset Fighters (Brazil)
static struct BurnRomInfo md_yuyusfRomDesc[] = {
	{ "yuu yuu hakusho - sunset fighters (bra).bin", 0x300000, 0xfe3fb8ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yuyusf)
STD_ROM_FN(md_yuyusf)

struct BurnDriver BurnDrvmd_yuyusf = {
	"md_yuyusf", NULL, NULL, NULL, "1994",
	"Yu Yu Hakusho - Sunset Fighters (Brazil)\0", NULL, "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_yuyusfRomInfo, md_yuyusfRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yu Yu Hakusho Gaiden (Japan)
static struct BurnRomInfo md_yuyugRomDesc[] = {
	{ "yuu yuu hakusho gaiden (jpn).bin", 0x200000, 0x7dc98176, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yuyug)
STD_ROM_FN(md_yuyug)

struct BurnDriver BurnDrvmd_yuyug = {
	"md_yuyug", NULL, NULL, NULL, "1994",
	"Yu Yu Hakusho Gaiden (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_yuyugRomInfo, md_yuyugRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zan Yasha Enbukyoku (Japan)
static struct BurnRomInfo md_zanyashaRomDesc[] = {
	{ "zan yasha enbukyoku (jpn).bin", 0x080000, 0x637fe8f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zanyasha)
STD_ROM_FN(md_zanyasha)

struct BurnDriver BurnDrvmd_zanyasha = {
	"md_zanyasha", NULL, NULL, NULL, "1991",
	"Zan Yasha Enbukyoku (Japan)\0", NULL, "Wolf Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_zanyashaRomInfo, md_zanyashaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zany Golf (Euro, USA)
static struct BurnRomInfo md_zanygolf1RomDesc[] = {
	{ "zany golf (euro, usa).bin", 0x080000, 0xed5d12ea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zanygolf1)
STD_ROM_FN(md_zanygolf1)

struct BurnDriver BurnDrvmd_zanygolf1 = {
	"md_zanygolf1", "md_zanygolf", NULL, NULL, "1990",
	"Zany Golf (Euro, USA)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_zanygolf1RomInfo, md_zanygolf1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero the Kamikaze Squirrel (Euro)
static struct BurnRomInfo md_zeroRomDesc[] = {
	{ "zero the kamikaze squirrel (euro).bin", 0x200000, 0x45ff0b4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zero)
STD_ROM_FN(md_zero)

struct BurnDriver BurnDrvmd_zero = {
	"md_zero", NULL, NULL, NULL, "1994",
	"Zero the Kamikaze Squirrel (Euro)\0", NULL, "SunSoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zeroRomInfo, md_zeroRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero the Kamikaze Squirrel (USA)
static struct BurnRomInfo md_zerouRomDesc[] = {
	{ "zero the kamikaze squirrel (usa).bin", 0x200000, 0x423968df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zerou)
STD_ROM_FN(md_zerou)

struct BurnDriver BurnDrvmd_zerou = {
	"md_zerou", "md_zero", NULL, NULL, "1994",
	"Zero the Kamikaze Squirrel (USA)\0", NULL, "SunSoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zerouRomInfo, md_zerouRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero Tolerance (Euro, USA)
static struct BurnRomInfo md_zerotolRomDesc[] = {
	{ "zetsg_lo_7500-00034a.u2", 0x100000, 0xb9c2d518, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000000  },
	{ "zetsg_hi_7500-00033a.u1", 0x100000, 0xaf362b8c, BRF_PRG | SEGA_MD_ROM_LOAD16_BYTE | SEGA_MD_ROM_OFFS_000001  },
};

STD_ROM_PICK(md_zerotol)
STD_ROM_FN(md_zerotol)

struct BurnDriver BurnDrvmd_zerotol = {
	"md_zerotol", NULL, NULL, NULL, "1994",
	"Zero Tolerance (Euro, USA)\0", NULL, "Accolade", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_ADV, 0,
	MegadriveGetZipName, md_zerotolRomInfo, md_zerotolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero Wing (Euro)
static struct BurnRomInfo md_zerowingRomDesc[] = {
	{ "mpr-14463.bin", 0x100000, 0x89b744a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zerowing)
STD_ROM_FN(md_zerowing)

struct BurnDriver BurnDrvmd_zerowing = {
	"md_zerowing", NULL, NULL, NULL, "1991",
	"Zero Wing (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_zerowingRomInfo, md_zerowingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero Wing (Japan)
static struct BurnRomInfo md_zerowingjRomDesc[] = {
	{ "zero wing (jpn).bin", 0x100000, 0x7e203d2b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zerowingj)
STD_ROM_FN(md_zerowingj)

struct BurnDriver BurnDrvmd_zerowingj = {
	"md_zerowingj", "md_zerowing", NULL, NULL, "1991",
	"Zero Wing (Japan)\0", NULL, "Toaplan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_zerowingjRomInfo, md_zerowingjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zhan Qi Chinese Battle Chess (Taiwan) (Unl)
static struct BurnRomInfo md_ZhanqichessRomDesc[] = {
	{ "Zhan Qi Chinese Battle Chess.md", 1048576, 0x9d3dde48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Zhanqichess)
STD_ROM_FN(md_Zhanqichess)

struct BurnDriver Burnmd_Zhanqichess = {
	"md_zhanqichess", NULL, NULL, NULL, "199?",
	"Zhan Qi Chinese Battle Chess (Taiwan) (Unl)\0", NULL, "Creaton Softech", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_ZhanqichessRomInfo, md_ZhanqichessRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zhuo Gui Da Shi - Ghost Hunter (China) (Unl)
static struct BurnRomInfo md_zhuoguRomDesc[] = {
	{ "zhuo gui da shi - ghost hunter (chi) (unl).bin", 0x080000, 0x76c62a8b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zhuogu)
STD_ROM_FN(md_zhuogu)

struct BurnDriver BurnDrvmd_zhuogu = {
	"md_zhuogu", NULL, NULL, NULL, "1994",
	"Zhuo Gui Da Shi - Ghost Hunter (China) (Unl)\0", NULL, "Shenchi Technology", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_zhuoguRomInfo, md_zhuoguRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zombie High (USA, Prototype)
static struct BurnRomInfo md_zombhighRomDesc[] = {
	{ "zombie high (usa) (prototype).bin", 0x0fa0ef, 0x7bea6194, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zombhigh)
STD_ROM_FN(md_zombhigh)

struct BurnDriver BurnDrvmd_zombhigh = {
	"md_zombhigh", NULL, NULL, NULL, "1993",
	"Zombie High (USA, Prototype)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zombhighRomInfo, md_zombhighRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zombies (Euro)
static struct BurnRomInfo md_zombiesRomDesc[] = {
	{ "zombies (euro).bin", 1048576, 0x179a1aa2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zombies)
STD_ROM_FN(md_zombies)

struct BurnDriver BurnDrvmd_zombies = {
	"md_zombies", NULL, NULL, NULL, "1993",
	"Zombies (Euro)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_zombiesRomInfo, md_zombiesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zombies Ate My Neighbors (USA)
static struct BurnRomInfo md_zombiesuRomDesc[] = {
	{ "zombies ate my neighbors (usa).bin", 1048576, 0x2bf3626f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zombiesu)
STD_ROM_FN(md_zombiesu)

struct BurnDriver BurnDrvmd_zombiesu = {
	"md_zombiesu", "md_zombies", NULL, NULL, "1994",
	"Zombies Ate My Neighbors (USA)\0", NULL, "Konami", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_zombiesuRomInfo, md_zombiesuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zombies Ate My Neighbors (USA)
static struct BurnRomInfo md_zombieswmRomDesc[] = {
	{ "Zombies Ate My Neighbors Wide Mode Hack (2023)(paul_met).bin", 1048576, 0xb05c5e95, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zombieswm)
STD_ROM_FN(md_zombieswm)

struct BurnDriver BurnDrvmd_zombieswm = {
	"md_zombieswm", "md_zombies", NULL, NULL, "2023",
	"Zombies Ate My Neighbors - Wide Mode (Hack)\0", NULL, "paul_met", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_zombieswmRomInfo, md_zombieswmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zool (Euro)
static struct BurnRomInfo md_zoolRomDesc[] = {
	{ "zool04.bin", 0x100000, 0x1ee58b03, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zool)
STD_ROM_FN(md_zool)

struct BurnDriver BurnDrvmd_zool = {
	"md_zool", NULL, NULL, NULL, "1993",
	"Zool (Euro)\0", NULL, "Electronic Arts", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zoolRomInfo, md_zoolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zool (USA)
static struct BurnRomInfo md_zooluRomDesc[] = {
	{ "zool - ninja of the 'nth' dimension (usa).bin", 0x100000, 0xcb2939f1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zoolu)
STD_ROM_FN(md_zoolu)

struct BurnDriver BurnDrvmd_zoolu = {
	"md_zoolu", "md_zool", NULL, NULL, "1993",
	"Zool (USA)\0", NULL, "GameTek", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zooluRomInfo, md_zooluRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zoop (Euro)
static struct BurnRomInfo md_zoopRomDesc[] = {
	{ "mpr-18564.bin", 0x080000, 0x2fdac6ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zoop)
STD_ROM_FN(md_zoop)

struct BurnDriver BurnDrvmd_zoop = {
	"md_zoop", NULL, NULL, NULL, "1995",
	"Zoop (Euro)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_zoopRomInfo, md_zoopRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zoop (USA)
static struct BurnRomInfo md_zoopuRomDesc[] = {
	{ "zoop (usa).bin", 0x080000, 0xa899befa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zoopu)
STD_ROM_FN(md_zoopu)

struct BurnDriver BurnDrvmd_zoopu = {
	"md_zoopu", "md_zoop", NULL, NULL, "1995",
	"Zoop (USA)\0", NULL, "Viacom New Media", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_zoopuRomInfo, md_zoopuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flux (Euro)
static struct BurnRomInfo md_fluxRomDesc[] = {
	{ "flux (euro).bin", 0x040000, 0x2a1da08c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flux)
STD_ROM_FN(md_flux)

struct BurnDriver BurnDrvmd_flux = {
	"md_flux", NULL, NULL, NULL, "199?",
	"Flux (Euro)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_fluxRomInfo, md_fluxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Anser (Japan)
static struct BurnRomInfo md_meganserRomDesc[] = {
	{ "mega anser (jpn).bin", 0x080000, 0x08ece367, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_meganser)
STD_ROM_FN(md_meganser)

struct BurnDriver BurnDrvmd_meganser = {
	"md_meganser", NULL, NULL, NULL, "1989",
	"Mega Anser (Japan)\0", "Network Tool", "SEGA", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_meganserRomInfo, md_meganserRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MegaNet (Brazil)
static struct BurnRomInfo md_meganetRomDesc[] = {
	{ "meganet (bra).bin", 0x040000, 0xfab33cc2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_meganet)
STD_ROM_FN(md_meganet)

struct BurnDriver BurnDrvmd_meganet = {
	"md_meganet", NULL, NULL, NULL, "1995",
	"MegaNet (Brazil)\0", "Network Tool", "Tec Toy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_meganetRomInfo, md_meganetRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Channel (Scientific Atlanta) (USA)
static struct BurnRomInfo md_segachnlRomDesc[] = {
	{ "sega channel (usa).bin", 0x040000, 0xbc79b6ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_segachnl)
STD_ROM_FN(md_segachnl)

struct BurnDriver BurnDrvmd_segachnl = {
	"md_segachnl", NULL, NULL, NULL, "199?",
	"Sega Channel (Scientific Atlanta) (USA)\0", NULL, "Scientific Atlanta", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_segachnlRomInfo, md_segachnlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Channel (General Instrument) (USA)
static struct BurnRomInfo md_segachnlaRomDesc[] = {
	{ "sega channel (general instruments) (usa).bin", 0x080000, 0x5df93f11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_segachnla)
STD_ROM_FN(md_segachnla)

struct BurnDriver BurnDrvmd_segachnla = {
	"md_segachnla", "md_segachnl", NULL, NULL, "199?",
	"Sega Channel (General Instrument) (USA)\0", NULL, "Scientific Atlanta", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_segachnlaRomInfo, md_segachnlaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Channel Demo (USA)
static struct BurnRomInfo md_segachdRomDesc[] = {
	{ "sega channel demo (usa).bin", 0x080000, 0x2abae889, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_segachd)
STD_ROM_FN(md_segachd)

struct BurnDriver BurnDrvmd_segachd = {
	"md_segachd", NULL, NULL, NULL, "199?",
	"Sega Channel Demo (USA)\0", NULL, "Scientific Atlanta", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_segachdRomInfo, md_segachdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// -----------------------
// Unlicensed/Pirate Games
// -----------------------

// 4 in 1 (Pirate)
static struct BurnRomInfo md_4in1pbRomDesc[] = {
	{ "4-in-1 (pirate).bin", 0x200000, 0xbe72857b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_4in1pb)
STD_ROM_FN(md_4in1pb)

struct BurnDriver BurnDrvmd_4in1pb = {
	"md_4in1pb", NULL, NULL, NULL, "199?",
	"4 in 1 (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1, GBF_MISC, 0,
	MegadriveGetZipName, md_4in1pbRomInfo, md_4in1pbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 12 in 1 (Pirate)
static struct BurnRomInfo md_12in1RomDesc[] = {
	{ "12-in-1 (unl).bin", 0x200000, 0xa98bf454, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_12in1)
STD_ROM_FN(md_12in1)

struct BurnDriver BurnDrvmd_12in1 = {
	"md_12in1", NULL, NULL, NULL, "199?",
	"12 in 1 (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1, GBF_MISC, 0,
	MegadriveGetZipName, md_12in1RomInfo, md_12in1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 13 Ma Jiang - 98 Mei Shao Nu Pian (China) (Unl)
static struct BurnRomInfo md_13mahjanRomDesc[] = {
	{ "13 mahjong 98 (unl).bin", 0x0a0000, 0x68b372f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_13mahjan)
STD_ROM_FN(md_13mahjan)

struct BurnDriver BurnDrvmd_13mahjan = {
	"md_13mahjan", NULL, NULL, NULL, "1998",
	"13 Ma Jiang - 98 Mei Shao Nu Pian (China) (Unl)\0", NULL, "BBD", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_13mahjanRomInfo, md_13mahjanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 16 Zhang Ma Jiang (China) (Unl)
static struct BurnRomInfo md_16zhanRomDesc[] = {
	{ "16 zhang ma jiang (chi) (unl).bin", 0x100000, 0x36407c82, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_16zhan)
STD_ROM_FN(md_16zhan)

struct BurnDriver BurnDrvmd_16zhan = {
	"md_16zhan", NULL, NULL, NULL, "199?",
	"16 Zhang Ma Jiang (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_16zhanRomInfo, md_16zhanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 16 Zhang Mahjong II (Taiwan) (Unl)
static struct BurnRomInfo md_16zhangmahRomDesc[] = {
	{ "16 Zhang Mahjong II (Taiwan) (Unl).md", 1048576, 0xb4f4249f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_16zhangmah)
STD_ROM_FN(md_16zhangmah)

struct BurnDriver BurnDrvmd_16zhangmah = {
	"md_16zhangmah", NULL, NULL, NULL, "199?",
	"16 Zhang Mahjong II (Taiwan) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_16ZHANG, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_16zhangmahRomInfo, md_16zhangmahRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// A Bug's Life (Taiwan) (Unl)
static struct BurnRomInfo md_bugslifeRomDesc[] = {
	{ "bug's life, a (unl).bin", 0x100000, 0x10458e09, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bugslife)
STD_ROM_FN(md_bugslife)

struct BurnDriver BurnDrvmd_bugslife = {
	"md_bugslife", NULL, NULL, NULL, "1999",
	"A Bug's Life (Taiwan) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_BUGSLIFE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bugslifeRomInfo, md_bugslifeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// A Bug's Life (Taiwan, Alt?) (Unl)
static struct BurnRomInfo md_bugslifeaRomDesc[] = {
	{ "bug's life (unl).bin", 0x100000, 0xed1c1a67, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bugslifea)
STD_ROM_FN(md_bugslifea)

struct BurnDriver BurnDrvmd_bugslifea = {
	"md_bugslifea", "md_bugslife", NULL, NULL, "1999",
	"A Bug's Life (Taiwan, Alt?) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bugslifeaRomInfo, md_bugslifeaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventurous Boy - Mao Xian Xiao Zi (China) (Unl)
static struct BurnRomInfo md_adveboyRomDesc[] = {
	{ "adventurous boy - mao xian xiao zi (chi) (unl).bin", 0x080000, 0xd4403913, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_adveboy)
STD_ROM_FN(md_adveboy)

struct BurnDriver BurnDrvmd_adveboy = {
	"md_adveboy", NULL, NULL, NULL, "1998",
	"Adventurous Boy - Mao Xian Xiao Zi (China) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_adveboyRomInfo, md_adveboyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aladdin II (Unl)
static struct BurnRomInfo md_aladdin2RomDesc[] = {
	{ "aladdin ii (unl).bin", 0x200000, 0xbe5f9397, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdin2)
STD_ROM_FN(md_aladdin2)

struct BurnDriver BurnDrvmd_aladdin2 = {
	"md_aladdin2", NULL, NULL, NULL, "1998",
	"Aladdin II (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdin2RomInfo, md_aladdin2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aq Renkan Awa (China) (Unl)
static struct BurnRomInfo md_aqrenkRomDesc[] = {
	{ "aq renkan awa (chi) (unl).bin", 0x100000, 0x2c6cbd77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aqrenk)
STD_ROM_FN(md_aqrenk)

struct BurnDriver BurnDrvmd_aqrenk = {
	"md_aqrenk", NULL, NULL, NULL, "1995",
	"Aq Renkan Awa (China) (Unl)\0", NULL, "C&E", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_QUIZ, 0,
	MegadriveGetZipName, md_aqrenkRomInfo, md_aqrenkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Assassins Creed (Russia) (Unl)
static struct BurnRomInfo md_asscreedRomDesc[] = {
	{ "assassins creed (unl).bin", 0x100000, 0x3f2d6ccc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asscreed)
STD_ROM_FN(md_asscreed)

struct BurnDriver BurnDrvmd_asscreed = {
	"md_asscreed", "md_dlair", NULL, NULL, "20??",
	"Assassins Creed (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_asscreedRomInfo, md_asscreedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Avatar (Russia) (Unl)
static struct BurnRomInfo md_avatarRomDesc[] = {
	{ "avatar.bin", 0x110000, 0xd33e0ada, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_avatar)
STD_ROM_FN(md_avatar)

struct BurnDriver BurnDrvmd_avatar = {
	"md_avatar", "md_jimpowerpiko", NULL, NULL, "201?",
	"Avatar (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_avatarRomInfo, md_avatarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bao Xiao San Guo (Taiwan) (Unl)
static struct BurnRomInfo md_BaoxiaoRomDesc[] = {
	{ "Bao Xiao San Guo.md", 1048576, 0x496eb1d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Baoxiao)
STD_ROM_FN(md_Baoxiao)

struct BurnDriver Burnmd_Baoxiao = {
	"md_baoxiao", NULL, NULL, NULL, "199?",
	"Bao Xiao San Guo (Taiwan) (Unl)\0", NULL, "C&E Inc.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_BaoxiaoRomInfo, md_BaoxiaoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barver Battle Saga - Tai Kong Zhan Shi (China) (Unl)
static struct BurnRomInfo md_barverRomDesc[] = {
	{ "Barver Battle Saga - Tai Kong Zhan Shi (China)(Unl)(1996)(Chuanpu).bin", 0x200000, 0xd37a37c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barver)
STD_ROM_FN(md_barver)

struct BurnDriver BurnDrvmd_barver = {
	"md_barver", NULL, NULL, NULL, "1996",
	"Barver Battle Saga - Tai Kong Zhan Shi (China) (Unl)\0", NULL, "Chuanpu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SQUIRRELK, GBF_RPG, 0,
	MegadriveGetZipName, md_barverRomInfo, md_barverRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brave Battle Saga - Legend of the Magic Warrior (Hack, English)
// Source : http://www.romhacking.net/translations/1467/
static struct BurnRomInfo md_barvereRomDesc[] = {
	{ "Barver Battle Saga - Tai Kong Zhan Shi (Hack, English)(2010)(Djinn).bin", 0x200000, 0x34e5445f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barvere)
STD_ROM_FN(md_barvere)

struct BurnDriver BurnDrvmd_barvere = {
	"md_barvere", "md_barver", NULL, NULL, "2010",
	"Brave Battle Saga - Legend of the Magic Warrior (Hack, English)\0", NULL, "Djinn", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_barvereRomInfo, md_barvereRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle of Red Cliffs, The - Romance of the Three Kingdoms (Taiwan) (Unl)
static struct BurnRomInfo md_redcliffRomDesc[] = {
	{ "the battle of red cliffs - romance of the three kingdoms (unl).bin", 0x200005, 0x44463492, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_redcliff)
STD_ROM_FN(md_redcliff)

struct BurnDriver BurnDrvmd_redcliff = {
	"md_redcliff", NULL, NULL, NULL, "1997",
	"Battle of Red Cliffs, The - Romance of the Three Kingdoms (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REDCL_EN, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_redcliffRomInfo, md_redcliffRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle of Red Cliffs, The - Romance of the Three Kingdoms (Taiwan) (Unl) (Hacked out Protection)
static struct BurnRomInfo md_redcliffaRomDesc[] = {
	{ "the battle of red cliffs (unl).bin", 0x200000, 0x63eca090, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_redcliffa)
STD_ROM_FN(md_redcliffa)

struct BurnDriver BurnDrvmd_redcliffa = {
	"md_redcliffa", "md_redcliff", NULL, NULL, "1997",
	"Battle of Red Cliffs, The - Romance of the Three Kingdoms (Taiwan) (Unl) (Hacked out Protection)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_redcliffaRomInfo, md_redcliffaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ben 10 (Russia) (Unl)
static struct BurnRomInfo md_ben10RomDesc[] = {
	{ "ben 10 (unl)[rus].bin", 0x100000, 0xc8be0b26, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ben10)
STD_ROM_FN(md_ben10)

struct BurnDriver BurnDrvmd_ben10 = {
	"md_ben10", NULL, NULL, NULL, "20??",
	"Ben 10 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ben10RomInfo, md_ben10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bomboy (Taiwan) (Unl)
static struct BurnRomInfo md_bomboyRomDesc[] = {
	{ "bomboy (unl).bin", 0x080000, 0x065d2019, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bomboy)
STD_ROM_FN(md_bomboy)

struct BurnDriver BurnDrvmd_bomboy = {
	"md_bomboy", NULL, NULL, NULL, "1993",
	"Bomboy (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_bomboyRomInfo, md_bomboyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Boy Soccer Team III (Japan, Pirate)
static struct BurnRomInfo md_bsteam3RomDesc[] = {
	{ "tecmo cup (jpn) (pirate).bin", 0x080000, 0xe889e218, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bsteam3)
STD_ROM_FN(md_bsteam3)

struct BurnDriver BurnDrvmd_bsteam3 = {
	"md_bsteam3", "md_tecmocup", NULL, NULL, "199?",
	"Boy Soccer Team III (Japan, Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_bsteam3RomInfo, md_bsteam3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chao Ji Da Fu Weng (Taiwan) (Unl)
static struct BurnRomInfo md_cjfuwengRomDesc[] = {
	{ "chao ji da fu weng (chi) (unl).bin", 0x100000, 0x2e2ea687, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cjfuweng)
STD_ROM_FN(md_cjfuweng)

struct BurnDriver BurnDrvmd_cjfuweng = {
	"md_cjfuweng", NULL, NULL, NULL, "1994",
	"Chao Ji Da Fu Weng (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_MISC, 0,
	MegadriveGetZipName, md_cjfuwengRomInfo, md_cjfuwengRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chao Ji Mahjong Club (Taiwan) (Unl)
static struct BurnRomInfo md_ChaojimahRomDesc[] = {
	{ "Chao Ji Mahjong Club.md", 1048576, 0x2b4b40e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Chaojimah)
STD_ROM_FN(md_Chaojimah)

struct BurnDriver Burnmd_Chaojimah = {
	"md_chaojimah", NULL, NULL, NULL, "199?",
	"Chao Ji Mahjong Club (Taiwan) (Unl)\0", NULL, "C&E Inc.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CHAOJIMJ, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_ChaojimahRomInfo, md_ChaojimahRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chao Ji Poker (Taiwan) (Unl)
static struct BurnRomInfo md_ChaojipokRomDesc[] = {
	{ "Chao Ji Poker.md", 4194304, 0xc37e6858, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Chaojipok)
STD_ROM_FN(md_Chaojipok)

struct BurnDriver Burnmd_Chaojipok = {
	"md_chaojipok", NULL, NULL, NULL, "199?",
	"Chao Ji Poker (Taiwan) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMOUSE, GBF_CASINO, 0,
	MegadriveGetZipName, md_ChaojipokRomInfo, md_ChaojipokRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chess (Russia) (Unl)
static struct BurnRomInfo md_chessRomDesc[] = {
	{ "chess (unl).bin", 0x080000, 0x47380edd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chess)
STD_ROM_FN(md_chess)

struct BurnDriver BurnDrvmd_chess = {
	"md_chess", NULL, NULL, NULL, "1998",
	"Chess (Russia) (Unl)\0", NULL, "BSComp", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_BOARD, 0,
	MegadriveGetZipName, md_chessRomInfo, md_chessRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chess (Russia, Alt) (Unl)
static struct BurnRomInfo md_chessaRomDesc[] = {
	{ "chess (unl) [rus].bin", 0x080000, 0xa5cef7b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chessa)
STD_ROM_FN(md_chessa)

struct BurnDriver BurnDrvmd_chessa = {
	"md_chessa", "md_chess", NULL, NULL, "1998",
	"Chess (Russia, Alt) (Unl)\0", NULL, "BSComp", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_BOARD, 0,
	MegadriveGetZipName, md_chessaRomInfo, md_chessaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chess (Russia, v1.05) (Unl)
static struct BurnRomInfo md_chessbRomDesc[] = {
	{ "chess (unl) [rus v1.05].bin", 0x100000, 0x10683e83, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chessb)
STD_ROM_FN(md_chessb)

struct BurnDriver BurnDrvmd_chessb = {
	"md_chessb", "md_chess", NULL, NULL, "1999",
	"Chess (Russia, v1.05) (Unl)\0", NULL, "BSComp", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_BOARD, 0,
	MegadriveGetZipName, md_chessbRomInfo, md_chessbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chinese Chess (Taiwan) (Unl)
static struct BurnRomInfo md_chinesecRomDesc[] = {
	{ "chinese chess (unl).bin", 0x080000, 0x475215a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chinesec)
STD_ROM_FN(md_chinesec)

struct BurnDriver BurnDrvmd_chinesec = {
	"md_chinesec", NULL, NULL, NULL, "199?",
	"Chinese Chess (Taiwan) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_BOARD, 0,
	MegadriveGetZipName, md_chinesecRomInfo, md_chinesecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chinese Fighter III (China) (Unl)
static struct BurnRomInfo md_chinf3RomDesc[] = {
	{ "chinese fighter iii (unl).bin", 0x200000, 0xe833bc6e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chinf3)
STD_ROM_FN(md_chinf3)

struct BurnDriver BurnDrvmd_chinf3 = {
	"md_chinf3", NULL, NULL, NULL, "1996",
	"Chinese Fighter III (China) (Unl)\0", "Imperfect Protection Emulation", "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_CHINFIGHT3, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_chinf3RomInfo, md_chinf3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chinese Fighter III (China, Unprotected?)
static struct BurnRomInfo md_chinf3aRomDesc[] = {
	{ "chinese fighter iii (unl, alt).bin", 0x200000, 0x6f98247d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chinf3a)
STD_ROM_FN(md_chinf3a)

struct BurnDriver BurnDrvmd_chinf3a = {
	"md_chinf3a", "md_chinf3", NULL, NULL, "199?",
	"Chinese Fighter III (China, Unprotected?)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_chinf3aRomInfo, md_chinf3aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Commandos (Russia) (Unl)
static struct BurnRomInfo md_commandsRomDesc[] = {
	{ "commandos.bin", 0x200000, 0x28a88d6f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_commands)
STD_ROM_FN(md_commands)

struct BurnDriver BurnDrvmd_commands = {
	"md_commands", NULL, NULL, NULL, "200?",
	"Commandos (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_commandsRomInfo, md_commandsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Counter Strike (Russia) (Unl)
static struct BurnRomInfo md_cstrikeRomDesc[] = {
	{ "counter strike.bin", 0x200000, 0x9e7b83ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cstrike)
STD_ROM_FN(md_cstrike)

struct BurnDriver BurnDrvmd_cstrike = {
	"md_cstrike", "md_lethalen", NULL, NULL, "200?",
	"Counter Strike (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_cstrikeRomInfo, md_cstrikeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crash Bandicoot (Russia) (Unl)
static struct BurnRomInfo md_crashRomDesc[] = {
	{ "crash bandicoot.bin", 0x400000, 0xe06bd944, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crash)
STD_ROM_FN(md_crash)

struct BurnDriver BurnDrvmd_crash = {
	"md_crash", "md_zero", NULL, NULL, "2008",
	"Crash Bandicoot (Russia) (Unl)\0", NULL, "BMB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crashRomInfo, md_crashRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Death Caliber (Russia) (Unl)
static struct BurnRomInfo md_deathcalRomDesc[] = {
	{ "death caliber.bin", 0x400000, 0x3cd2c797, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deathcal)
STD_ROM_FN(md_deathcal)

struct BurnDriver BurnDrvmd_deathcal = {
	"md_deathcal", NULL, NULL, NULL, "2002",
	"Death Caliber (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_deathcalRomInfo, md_deathcalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Deer Hunter (Russia) (Unl)
static struct BurnRomInfo md_deerhuntRomDesc[] = {
	{ "deer hunter.bin", 0x100000, 0xda11978b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deerhunt)
STD_ROM_FN(md_deerhunt)

struct BurnDriver BurnDrvmd_deerhunt = {
	"md_deerhunt", NULL, NULL, NULL, "2002",
	"Deer Hunter (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_deerhuntRomInfo, md_deerhuntRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Diablo (Russia) (Unl)
static struct BurnRomInfo md_diabloRomDesc[] = {
	{ "diablo.bin", 0x100000, 0xbd642da0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_diablo)
STD_ROM_FN(md_diablo)

struct BurnDriver BurnDrvmd_diablo = {
	"md_diablo", "md_fatallab", NULL, NULL, "200?",
	"Diablo (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_diabloRomInfo, md_diabloRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Domino (Russia) (Unl)
static struct BurnRomInfo md_dominoRomDesc[] = {
	{ "domino (unl).bin", 0x100000, 0xa64409be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_domino)
STD_ROM_FN(md_domino)

struct BurnDriver BurnDrvmd_domino = {
	"md_domino", NULL, NULL, NULL, "199?",
	"Domino (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_dominoRomInfo, md_dominoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Ball - Final Bout (Unl)
static struct BurnRomInfo md_DballfinalRomDesc[] = {
	{ "Dragon Ball - Final Bout.md", 2097152, 0x63847005, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_Dballfinal)
STD_ROM_FN(md_Dballfinal)

struct BurnDriver Burnmd_Dballfinal = {
	"md_dballfinal", NULL, NULL, NULL, "1998",
	"Dragon Ball - Final Bout (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_DballfinalRomInfo, md_DballfinalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Duke Nukem 3D (Pirate)
static struct BurnRomInfo md_dukenk3daRomDesc[] = {
	{ "duke_nukem_3d.bin", 0x200000, 0x13e93c0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dukenk3da)
STD_ROM_FN(md_dukenk3da)

struct BurnDriverD BurnDrvmd_dukenk3da = {
	"md_dukenk3da", "md_dukenk3d", NULL, NULL, "199?",
	"Duke Nukem 3D (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dukenk3daRomInfo, md_dukenk3daRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Earth Defense, The (USA)
static struct BurnRomInfo md_earthdefRomDesc[] = {
	{ "earth defense (usa) (unl).bin", 0x080000, 0x3519c422, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_earthdef)
STD_ROM_FN(md_earthdef)

struct BurnDriver BurnDrvmd_earthdef = {
	"md_earthdef", NULL, NULL, NULL, "1995",
	"Earth Defense, The (USA)\0", NULL, "Realtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_earthdefRomInfo, md_earthdefRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Feng Kuang Tao Hua Yuan (Taiwan) (Unl)
static struct BurnRomInfo md_fengkuanRomDesc[] = {
	{ "feng kuang tao hua yuan (chi) (unl).bin", 0x100000, 0x8d40d64f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fengkuan)
STD_ROM_FN(md_fengkuan)

struct BurnDriver BurnDrvmd_fengkuan = {
	"md_fengkuan", NULL, NULL, NULL, "1998",
	"Feng Kuang Tao Hua Yuan (Taiwan) (Unl)\0", NULL, "Creaton Softech", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 4, HARDWARE_SEGA_MEGADRIVE, GBF_BOARD, 0,
	MegadriveGetZipName, md_fengkuanRomInfo, md_fengkuanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Feng Shen Ying Jie Chuan (China) (Unl)
static struct BurnRomInfo md_fengshenRomDesc[] = {
	{ "feng shen ying jie chuan (chi) (unl).bin", 0x200000, 0x6a382b60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fengshen)
STD_ROM_FN(md_fengshen)

struct BurnDriver BurnDrvmd_fengshen = {
	"md_fengshen", NULL, NULL, NULL, "1996",
	"Feng Shen Ying Jie Chuan (China) (Unl)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_fengshenRomInfo, md_fengshenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Feng Shen Ying Jie Zhuan (China, Alt) (Unl)
static struct BurnRomInfo md_fengshenaRomDesc[] = {
	{ "unknown chinese game 1 (chi).bin", 0x200000, 0xdfacb9ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fengshena)
STD_ROM_FN(md_fengshena)

struct BurnDriver BurnDrvmd_fengshena = {
	"md_fengshena", "md_fengshen", NULL, NULL, "1996",
	"Feng Shen Ying Jie Zhuan (China, Alt) (Unl)\0", NULL, "Chuanpu Technologies", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_fengshenaRomInfo, md_fengshenaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA World Cup 2002 (Russia) (Unl)
static struct BurnRomInfo md_fifa2k2RomDesc[] = {
	{ "fifa world cup 2002 (unl).bin", 0x100000, 0x852bff8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa2k2)
STD_ROM_FN(md_fifa2k2)

struct BurnDriver BurnDrvmd_fifa2k2 = {
	"md_fifa2k2", "md_wcs2", NULL, NULL, "199?",
	"FIFA World Cup 2002 (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa2k2RomInfo, md_fifa2k2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA 2003 (Russia) (Unl)
static struct BurnRomInfo md_fifa2k3RomDesc[] = {
	{ "fifa 2003 (unl).bin", 0x200000, 0x419bcb02, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa2k3)
STD_ROM_FN(md_fifa2k3)

struct BurnDriver BurnDrvmd_fifa2k3 = {
	"md_fifa2k3", "md_fifa95", NULL, NULL, "199?",
	"FIFA 2003 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa2k3RomInfo, md_fifa2k3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA World Cup - South Africa 2010 (Russia) (Unl)
static struct BurnRomInfo md_fifa2k10RomDesc[] = {
	{ "fifa 2010 (unl).bin", 0x400000, 0x851e8411, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa2k10)
STD_ROM_FN(md_fifa2k10)

struct BurnDriver BurnDrvmd_fifa2k10 = {
	"md_fifa2k10", "md_fifa", NULL, NULL, "199?",
	"FIFA World Cup - South Africa 2010 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa2k10RomInfo, md_fifa2k10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Funny World & Balloon Boy (USA) (Unl)
static struct BurnRomInfo md_funnywldRomDesc[] = {
	{ "funny world & balloon boy (usa) (unl).bin", 0x080000, 0xa82f05f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_funnywld)
STD_ROM_FN(md_funnywld)

struct BurnDriver BurnDrvmd_funnywld = {
	"md_funnywld", NULL, NULL, NULL, "1993",
	"Funny World & Balloon Boy (USA) (Unl)\0", NULL, "Realtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC, GBF_ACTION, 0,
	MegadriveGetZipName, md_funnywldRomInfo, md_funnywldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden 10 in 1 (Incomplete Dump)
static struct BurnRomInfo md_golden10RomDesc[] = {
	{ "golden 10-in-1 (bad dump).bin", 0x100000, 0x4fa3f82b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_golden10)
STD_ROM_FN(md_golden10)

struct BurnDriver BurnDrvmd_golden10 = {
	"md_golden10", NULL, NULL, NULL, "199?",
	"Golden 10 in 1 (Incomplete Dump)\0", NULL, "<unlicensed>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_12IN1, GBF_MISC, 0,
	MegadriveGetZipName, md_golden10RomInfo, md_golden10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Harry Potter (Russia) (Unl)
static struct BurnRomInfo md_hpotterRomDesc[] = {
	{ "harry potter.bin", 0x200000, 0xa184fc76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hpotter)
STD_ROM_FN(md_hpotter)

struct BurnDriver BurnDrvmd_hpotter = {
	"md_hpotter", NULL, NULL, NULL, "200?",
	"Harry Potter (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_hpotterRomInfo, md_hpotterRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Harry Potter and the Chamber of Secrets (Russia) (Unl)
static struct BurnRomInfo md_hpotter2RomDesc[] = {
	{ "harry potter 2.bin", 0x100000, 0x1684479f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hpotter2)
STD_ROM_FN(md_hpotter2)

struct BurnDriver BurnDrvmd_hpotter2 = {
	"md_hpotter2", "md_mickmack", NULL, NULL, "199?",
	"Harry Potter and the Chamber of Secrets (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hpotter2RomInfo, md_hpotter2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hercules 2 (China) (Unl)
static struct BurnRomInfo md_herculs2RomDesc[] = {
	{ "hercules 2 (unl).bin", 0x200000, 0x292623db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_herculs2)
STD_ROM_FN(md_herculs2)

struct BurnDriver BurnDrvmd_herculs2 = {
	"md_herculs2", NULL, NULL, NULL, "1999",
	"Hercules 2 (China) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_herculs2RomInfo, md_herculs2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hua Mu Lan - Mulan (Taiwan) (Unl)
static struct BurnRomInfo md_huamulRomDesc[] = {
	{ "hua mu lan - mulan (chi) (unl).bin", 0x200000, 0x796882b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_huamul)
STD_ROM_FN(md_huamul)

struct BurnDriver BurnDrvmd_huamul = {
	"md_huamul", NULL, NULL, NULL, "2000",
	"Hua Mu Lan - Mulan (Taiwan) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MULAN, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_huamulRomInfo, md_huamulRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Huan Le Tao Qi Shu - Smart Mouse (China) (Unl)
static struct BurnRomInfo md_huanleRomDesc[] = {
	{ "huan le tao qi shu - smart mouse (chi) (unl).bin", 0x080000, 0xdecdf740, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_huanle)
STD_ROM_FN(md_huanle)

struct BurnDriver BurnDrvmd_huanle = {
	"md_huanle", NULL, NULL, NULL, "199?",
	"Huan Le Tao Qi Shu - Smart Mouse (China) (Unl)\0", NULL, "Ming Super Chip", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMOUSE, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_huanleRomInfo, md_huanleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of Fighters '98, The (Taiwan) (Unl)
static struct BurnRomInfo md_kof98RomDesc[] = {
	{ "king of fighters '98, the (unl).bin", 0x200000, 0xcbc38eea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kof98)
STD_ROM_FN(md_kof98)

struct BurnDriver BurnDrvmd_kof98 = {
	"md_kof98", NULL, NULL, NULL, "1998",
	"King of Fighters '98, The (Taiwan) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KOF98, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kof98RomInfo, md_kof98RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of Fighters '98, The (Unprotected?) (Unl)
static struct BurnRomInfo md_kof98aRomDesc[] = {
	{ "king of fighters '98, the (unl) (pirate).bin", 0x200000, 0xc79e1074, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kof98a)
STD_ROM_FN(md_kof98a)

struct BurnDriver BurnDrvmd_kof98a = {
	"md_kof98a", "md_kof98", NULL, NULL, "1998",
	"King of Fighters '98, The (Unprotected?) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kof98aRomInfo, md_kof98aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of Fighters '99, The (Taiwan) (Unl)
static struct BurnRomInfo md_kof99RomDesc[] = {
	{ "the king of fighters 99 (unl).bin", 0x300000, 0x54638c11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kof99)
STD_ROM_FN(md_kof99)

struct BurnDriver BurnDrvmd_kof99 = {
	"md_kof99", NULL, NULL, NULL, "1999",
	"King of Fighters '99, The (Taiwan) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KOF99, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kof99RomInfo, md_kof99RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of Fighters '99, The (Taiwan, Alt) (Unl)
static struct BurnRomInfo md_kof99aRomDesc[] = {
	{ "king of fighters 99 (unl).bin", 0x300000, 0xab82afbe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kof99a)
STD_ROM_FN(md_kof99a)

struct BurnDriver BurnDrvmd_kof99a = {
	"md_kof99a", "md_kof99", NULL, NULL, "1999",
	"King of Fighters '99, The (Taiwan, Alt) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KOF99, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kof99aRomInfo, md_kof99aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King of Fighters 2000, The (China) (Unl)
static struct BurnRomInfo md_kof2kRomDesc[] = {
	{ "king of fighters 2000 (unl).bin", 0x200000, 0x34cbac5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kof2k)
STD_ROM_FN(md_kof2k)

struct BurnDriver BurnDrvmd_kof2k = {
	"md_kof2k", "md_kof98", NULL, NULL, "2000",
	"King of Fighters 2000, The (China) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kof2kRomInfo, md_kof2kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Linghuan Daoshi Super Magician (China) (Unl)
static struct BurnRomInfo md_supmagicRomDesc[] = {
	{ "elf wor (chi) (unl).bin", 0x100000, 0xe24ac6b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supmagic)
STD_ROM_FN(md_supmagic)

struct BurnDriver BurnDrvmd_supmagic = {
	"md_supmagic", NULL, NULL, NULL, "1994",
	"Linghuan Daoshi Super Magician (China) (Unl)\0", NULL, "Ming Super Chip", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_ELFWOR, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_supmagicRomInfo, md_supmagicRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King II, The - Shi Zi Wang II (China) (Unl)
static struct BurnRomInfo md_lionkin2RomDesc[] = {
	{ "shi zi wang ii - the lion king ii, the (chi) (unl).bin", 0x200000, 0xaff46765, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lionkin2)
STD_ROM_FN(md_lionkin2)

struct BurnDriver BurnDrvmd_lionkin2 = {
	"md_lionkin2", NULL, NULL, NULL, "199?",
	"Lion King II, The - Shi Zi Wang II (China) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_LIONK2, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkin2RomInfo, md_lionkin2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King II, The - Shi Zi Wang II (China, Alt) (Unl)
static struct BurnRomInfo md_lionkin2aRomDesc[] = {
	{ "shi zi wang ii - the lion king ii, the (chi) (unl) (pirate).bin", 0x200000, 0x721b4981, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lionkin2a)
STD_ROM_FN(md_lionkin2a)

struct BurnDriver BurnDrvmd_lionkin2a = {
	"md_lionkin2a", "md_lionkin2", NULL, NULL, "199?",
	"Lion King II, The - Shi Zi Wang II (China, Alt) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkin2aRomInfo, md_lionkin2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King 3, The - Shi Zi Wang 3 (China) (Unl)
static struct BurnRomInfo md_lionkin3RomDesc[] = {
	{ "shi zi wang 3 - the lion king 3 (chi) (unl).bin", 0x200000, 0xc004219d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_lionkin3)
STD_ROM_FN(md_lionkin3)

struct BurnDriver BurnDrvmd_lionkin3 = {
	"md_lionkin3", NULL, NULL, NULL, "1997",
	"Lion King 3, The - Shi Zi Wang 3 (China) (Unl)\0", NULL, "X Boy - Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_LIONK3, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkin3RomInfo, md_lionkin3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King 3, The - Shi Zi Wang 3 (China, Alt) (Unl)
static struct BurnRomInfo md_lionkin3aRomDesc[] = {
	{ "lion_king_3.bin", 0x200000, 0x87e86943, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 },
};

STD_ROM_PICK(md_lionkin3a)
STD_ROM_FN(md_lionkin3a)

struct BurnDriver BurnDrvmd_lionkin3a = {
	"md_lionkin3a", "md_lionkin3", NULL, NULL, "1997",
	"Lion King 3, The - Shi Zi Wang 3 (China, Alt) (Unl)\0", NULL, "X Boy - Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkin3aRomInfo, md_lionkin3aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King 3, The - Shi Zi Wang 3 (China, Alt 2) (Unl)
static struct BurnRomInfo md_lionkin3bRomDesc[] = {
	{ "lion king 3 (unl).bin", 0x200000, 0x8e0555e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lionkin3b)
STD_ROM_FN(md_lionkin3b)

struct BurnDriver BurnDrvmd_lionkin3b = {
	"md_lionkin3b", "md_lionkin3", NULL, NULL, "1997",
	"Lion King 3, The - Shi Zi Wang 3 (China, Alt 2) (Unl)\0", NULL, "X Boy - Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkin3bRomInfo, md_lionkin3bRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magistr 16 (Russia)
static struct BurnRomInfo md_magist16RomDesc[] = {
	{ "magistr 16.bin", 0x400000, 0x2488e685, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_magist16)
STD_ROM_FN(md_magist16)

struct BurnDriver BurnDrvmd_magist16 = {
	"md_magist16", NULL, NULL, NULL, "199?",
	"Magistr 16 (Russia)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_magist16RomInfo, md_magist16RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ma Jiang Qing Ren - Ji Ma Jiang Zhi (China) (Unl)
static struct BurnRomInfo md_majianRomDesc[] = {
	{ "ma jiang qing ren - ji ma jiang zhi (chi) (unl).bin", 0x100000, 0xddd02ba4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_majian)
STD_ROM_FN(md_majian)

struct BurnDriver BurnDrvmd_majian = {
	"md_majian", NULL, NULL, NULL, "199?",
	"Ma Jiang Qing Ren - Ji Ma Jiang Zhi (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MJLOVER, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_majianRomInfo, md_majianRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ma Jiang Qing Ren - Ji Ma Jiang Zhi (China, Alt) (Unl)
static struct BurnRomInfo md_majianaRomDesc[] = {
	{ "mahjong lover (unl).bin", 0x100000, 0xf6c2cff2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_majiana)
STD_ROM_FN(md_majiana)

struct BurnDriver BurnDrvmd_majiana = {
	"md_majiana", "md_majian", NULL, NULL, "199?",
	"Ma Jiang Qing Ren - Ji Ma Jiang Zhi (China, Alt) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MJLOVER, GBF_MAHJONG, 0,
	MegadriveGetZipName, md_majianaRomInfo, md_majianaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mallet Legend's Whac-a-Critter (USA, Taiwan) (Unl)
static struct BurnRomInfo md_whacacriRomDesc[] = {
	{ "whac-a-critter (usa) (unl).bin", 0x080000, 0x1bdd02b8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whacacri)
STD_ROM_FN(md_whacacri)

struct BurnDriver BurnDrvmd_whacacri = {
	"md_whacacri", NULL, NULL, NULL, "1993",
	"Mallet Legend's Whac-a-Critter (USA, Taiwan) (Unl)\0", NULL, "Realtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_REALTEC, GBF_ACTION, 0,
	MegadriveGetZipName, md_whacacriRomInfo, md_whacacriRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pokemon Stadium (China) (Unl)
static struct BurnRomInfo md_pokestadRomDesc[] = {
	{ "pokemon stadium (unl).bin", 0x200000, 0xfe187c5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pokestad)
STD_ROM_FN(md_pokestad)

struct BurnDriver BurnDrvmd_pokestad = {
	"md_pokestad", NULL, NULL, NULL, "200?",
	"Pokemon Stadium (China) (Unl)\0", NULL, "SKOB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_KAIJU, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_pokestadRomInfo, md_pokestadRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Radica: Street Fighter Pack (Euro)
static struct BurnRomInfo md_radicasfRomDesc[] = {
	{ "radicasf.bin", 0x400000, 0x868afb44, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_radicasf)
STD_ROM_FN(md_radicasf)

struct BurnDriver BurnDrvmd_radicasf = {
	"md_radicasf", NULL, NULL, NULL, "2004",
	"Radica: Street Fighter Pack (Euro)\0", NULL, "Radica Games ~ Capcom", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_RADICA, GBF_MISC, 0,
	MegadriveGetZipName, md_radicasfRomInfo, md_radicasfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Radica: Volume 1 (USA)
static struct BurnRomInfo md_radicav1RomDesc[] = {
	{ "radicav1.bin", 0x400000, 0x3b4c8438, BRF_PRG | SEGA_MD_ROM_LOAD_NORMAL | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_radicav1)
STD_ROM_FN(md_radicav1)

struct BurnDriver BurnDrvmd_radicav1 = {
	"md_radicav1", NULL, NULL, NULL, "2004",
	"Radica: Volume 1 (USA)\0", NULL, "Radica Games ~ Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_RADICA, GBF_MISC, 0,
	MegadriveGetZipName, md_radicav1RomInfo, md_radicav1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rockman X3 (Taiwan) (Unl)
static struct BurnRomInfo md_rockmnx3RomDesc[] = {
	{ "rockman x3 (unl).bin", 0x200000, 0x3ee639f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rockmnx3)
STD_ROM_FN(md_rockmnx3)

struct BurnDriver BurnDrvmd_rockmnx3 = {
	"md_rockmnx3", NULL, NULL, NULL, "1996",
	"Rockman X3 (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_ROCKMANX3, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rockmnx3RomInfo, md_rockmnx3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ronaldinho 98 (Pirate)
static struct BurnRomInfo md_dinho98RomDesc[] = {
	{ "ronaldinho 98 (pirate).bin", 0x200000, 0xdd27c84e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinho98)
STD_ROM_FN(md_dinho98)

struct BurnDriver BurnDrvmd_dinho98 = {
	"md_dinho98", "md_issdx", NULL, NULL, "199?",
	"Ronaldinho 98 (Pirate)\0", NULL, "<unlicensed>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_dinho98RomInfo, md_dinho98RomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Jam 6 (China, Hacked) (Unl)
static struct BurnRomInfo md_sonicjam2RomDesc[] = {
	{ "sonic_6.bin", 0x200000, 0x87d86501, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicjam2)
STD_ROM_FN(md_sonicjam2)

struct BurnDriver BurnDrvmd_sonicjam2 = {
	"md_sonicjam2", "md_sonicjam", NULL, NULL, "199?",
	"Sonic Jam 6 (China, Hacked) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sonicjam2RomInfo, md_sonicjam2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soul Blade Super (China) (Unl)
static struct BurnRomInfo md_soulbladRomDesc[] = {
	{ "soul blade (unl).bin", 0x400000, 0xf26f88d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soulblad)
STD_ROM_FN(md_soulblad)

struct BurnDriver BurnDrvmd_soulblad = {
	"md_soulblad", NULL, NULL, NULL, "1997",
	"Soul Blade Super (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SOULBLAD, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_soulbladRomInfo, md_soulbladRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soul Blade Super (China, Alt) (Unl)
static struct BurnRomInfo md_soulbladaRomDesc[] = {
	{ "soul blade (unl)[p].bin", 0x300000, 0xdd1c7a79, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_soulblada)
STD_ROM_FN(md_soulblada)

struct BurnDriver BurnDrvmd_soulblada = {
	"md_soulblada", "md_soulblad", NULL, NULL, "1997",
	"Soul Blade Super (China, Alt) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_soulbladaRomInfo, md_soulbladaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soul Edge vs Samurai Spirits (Unl)
static struct BurnRomInfo md_souledgeRomDesc[] = {
	{ "soul edge vs samurai spirits (unl).bin", 0x200000, 0xb11bd611, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_souledge)
STD_ROM_FN(md_souledge)

struct BurnDriver BurnDrvmd_souledge = {
	"md_souledge", NULL, NULL, NULL, "1998",
	"Soul Edge vs Samurai Spirits (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_souledgeRomInfo, md_souledgeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Soul Edge vs Samurai Spirits (Unl, Cracked)
static struct BurnRomInfo md_souledgeaRomDesc[] = {
	{ "soul edge vs samurai spirits (unl)[f1].bin", 0x200000, 0x74a6d7a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_souledgea)
STD_ROM_FN(md_souledgea)

struct BurnDriver BurnDrvmd_souledgea = {
	"md_souledgea", "md_souledge", NULL, NULL, "1998",
	"Soul Edge vs Samurai Spirits (Unl, Cracked)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_souledgeaRomInfo, md_souledgeaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Squirrel King (Taiwan) (Unl)
static struct BurnRomInfo md_squirrelRomDesc[] = {
	{ "squirrel king (chi) (unl).bin", 0x100000, 0xb8261ff5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_squirrel)
STD_ROM_FN(md_squirrel)

struct BurnDriver BurnDrvmd_squirrel = {
	"md_squirrel", NULL, NULL, NULL, "1995",
	"Squirrel King (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SQUIRRELK, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_squirrelRomInfo, md_squirrelRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super 15 in 1 (Pirate)
static struct BurnRomInfo md_s15in1RomDesc[] = {
	{ "super 15-in-1 (pirate).bin", 0x200000, 0x6d17dfff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s15in1)
STD_ROM_FN(md_s15in1)

struct BurnDriver BurnDrvmd_s15in1 = {
	"md_s15in1", NULL, NULL, NULL, "199?",
	"Super 15 in 1 (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP15IN1, GBF_MISC, 0,
	MegadriveGetZipName, md_s15in1RomInfo, md_s15in1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super 19 in 1 (Pirate)
static struct BurnRomInfo md_s19in1RomDesc[] = {
	{ "super 19-in-1 (pirate).bin", 0x400000, 0x0ad2b342, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s19in1)
STD_ROM_FN(md_s19in1)

struct BurnDriver BurnDrvmd_s19in1 = {
	"md_s19in1", NULL, NULL, NULL, "199?",
	"Super 19 in 1 (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_MC_SUP19IN1, GBF_MISC, 0,
	MegadriveGetZipName, md_s19in1RomInfo, md_s19in1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Bubble Bobble MD (Taiwan) (Unl)
static struct BurnRomInfo md_suprbublRomDesc[] = {
	{ "super bubble bobble (chi) (unl).bin", 0x100000, 0x4820a161, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suprbubl)
STD_ROM_FN(md_suprbubl)

struct BurnDriver BurnDrvmd_suprbubl = {
	"md_suprbubl", NULL, NULL, NULL, "1995",
	"Super Bubble Bobble MD (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SBUBBOB, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_suprbublRomInfo, md_suprbublRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Donkey Kong '99 (Taiwan, Protected) (Unl)
static struct BurnRomInfo md_sdkong99RomDesc[] = {
	{ "super donkey kong 99 (unl) (protected).bin", 0x300000, 0x43be4dd5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 | SEGA_MD_ROM_RELOAD_100000_300000 },
};

STD_ROM_PICK(md_sdkong99)
STD_ROM_FN(md_sdkong99)

struct BurnDriver BurnDrvmd_sdkong99 = {
	"md_sdkong99", NULL, NULL, NULL, "1999",
	"Super Donkey Kong '99 (Taiwan, Protected) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SDK99, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sdkong99RomInfo, md_sdkong99RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Donkey Kong '99 (Taiwan, Unprotected) (Unl)
static struct BurnRomInfo md_sdkong99aRomDesc[] = {
	{ "super donkey kong 99 (unl).bin", 0x200000, 0x8e7d9177, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sdkong99a)
STD_ROM_FN(md_sdkong99a)

struct BurnDriver BurnDrvmd_sdkong99a = {
	"md_sdkong99a", "md_sdkong99", NULL, NULL, "1999",
	"Super Donkey Kong '99 (Taiwan, Unprotected) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sdkong99aRomInfo, md_sdkong99aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super King Kong '99 (Taiwan) (Unl)
static struct BurnRomInfo md_skkong99RomDesc[] = {
	{ "super king kong 99 (unl).bin", 0x200000, 0x413dfee2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000 | SEGA_MD_ROM_RELOAD_200000_200000 },
};

STD_ROM_PICK(md_skkong99)
STD_ROM_FN(md_skkong99)

struct BurnDriver BurnDrvmd_skkong99 = {
	"md_skkong99", "md_sdkong99", NULL, NULL, "1999",
	"Super King Kong '99 (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SKINGKONG, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_skkong99RomInfo, md_skkong99RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario 2 (Taiwan) (Unl)
static struct BurnRomInfo md_smario2RomDesc[] = {
	{ "super mario 2 1998 (unl).bin", 0x200000, 0xf7e1b3e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smario2)
STD_ROM_FN(md_smario2)

struct BurnDriver BurnDrvmd_smario2 = {
	"md_smario2", NULL, NULL, NULL, "1998",
	"Super Mario 2 (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMB2, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smario2RomInfo, md_smario2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario 2 (Taiwan, Alt) (Unl)
static struct BurnRomInfo md_smario2aRomDesc[] = {
	{ "super_mario_2.bin", 0x200000, 0x0da6dc4b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smario2a)
STD_ROM_FN(md_smario2a)

struct BurnDriver BurnDrvmd_smario2a = {
	"md_smario2a", "md_smario2", NULL, NULL, "1998",
	"Super Mario 2 (Taiwan, Alt) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smario2aRomInfo, md_smario2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario World ~ Super Mario Bros. (Unl)
static struct BurnRomInfo md_smbRomDesc[] = {
	{ "super mario bros. (unl).bin", 0x200000, 0x9cfa2bd8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smb)
STD_ROM_FN(md_smb)

struct BurnDriver BurnDrvmd_smb = {
	"md_smb", NULL, NULL, NULL, "199?",
	"Super Mario World ~ Super Mario Bros. (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMB, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smbRomInfo, md_smbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario World 64 (Unl)
static struct BurnRomInfo md_smario64RomDesc[] = {
	{ "super mario world 64 (unl).bin", 0x100000, 0xe7ac4161, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smario64)
STD_ROM_FN(md_smario64)

struct BurnDriver BurnDrvmd_smario64 = {
	"md_smario64", NULL, NULL, NULL, "199?",
	"Super Mario World 64 (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smario64RomInfo, md_smario64RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario World 64 (Hacked Protection) (Unl)
static struct BurnRomInfo md_smario64hRomDesc[] = {
	{ "super mario world 64 (hacked).bin", 0x100000, 0xa20f98aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smario64h)
STD_ROM_FN(md_smario64h)

struct BurnDriver BurnDrvmd_smario64h = {
	"md_smario64h", "md_smario64", NULL, NULL, "199?",
	"Super Mario World 64 (Hacked Protection)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_smario64hRomInfo, md_smario64hRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TC 2000 (Argentina) (Unl)
static struct BurnRomInfo md_tc2000RomDesc[] = {
	{ "tc2000.bin", 0x100000, 0xcef91bdb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tc2000)
STD_ROM_FN(md_tc2000)

struct BurnDriver BurnDrvmd_tc2000 = {
	"md_tc2000", NULL, NULL, NULL, "199?",
	"TC 2000 (Argentina) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_tc2000RomInfo, md_tc2000RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tetris (Unl)
static struct BurnRomInfo md_tetris1RomDesc[] = {
	{ "tetris.bin", 0x080000, 0xeb024ab2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tetris1)
STD_ROM_FN(md_tetris1)

struct BurnDriver BurnDrvmd_tetris1 = {
	"md_tetris1", NULL, NULL, NULL, "199?",
	"Tetris (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_tetris1RomInfo, md_tetris1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Top Fighter 2000 MK VIII (Taiwan) (Unl)
static struct BurnRomInfo md_topfightRomDesc[] = {
	{ "top fighter 2000 mk viii (unl).bin", 0x200000, 0xf75519dc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_topfight)
STD_ROM_FN(md_topfight)

struct BurnDriver BurnDrvmd_topfight = {
	"md_topfight", NULL, NULL, NULL, "1999",
	"Top Fighter 2000 MK VIII (Taiwan) (Unl)\0", NULL, "X Boy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_TOPFIGHTER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_topfightRomInfo, md_topfightRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Top Fighter 2005 (China) (Unl)
static struct BurnRomInfo md_topf2k5RomDesc[] = {
	{ "top fighter 2005 (unl).bin", 0x200000, 0x174defe6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_topf2k5)
STD_ROM_FN(md_topf2k5)

struct BurnDriver BurnDrvmd_topf2k5 = {
	"md_topf2k5", NULL, NULL, NULL, "200?",
	"Top Fighter 2005 (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_topf2k5RomInfo, md_topf2k5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Truco '96 (Argentina) (Unl)
static struct BurnRomInfo md_truco96RomDesc[] = {
	{ "truco96.bin", 0x100000, 0xcddbecfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_truco96)
STD_ROM_FN(md_truco96)

struct BurnDriver BurnDrvmd_truco96 = {
	"md_truco96", NULL, NULL, NULL, "1996",
	"Truco '96 (Argentina) (Unl)\0", NULL, "Miky", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CARD, 0,
	MegadriveGetZipName, md_truco96RomInfo, md_truco96RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Unknown Game 2 (Rockman-related?) (Pirate)
static struct BurnRomInfo md_unknown2RomDesc[] = {
	{ "xxx3.bin", 0x200000, 0x188da9f0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_unknown2)
STD_ROM_FN(md_unknown2)

struct BurnDriver BurnDrvmd_unknown2 = {
	"md_unknown2", NULL, NULL, NULL, "199?",
	"Unknown Game 2 (Rockman-related?) (Pirate)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_unknown2RomInfo, md_unknown2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Soccer (Euro, Prototype)
static struct BurnRomInfo md_ultsoccrpRomDesc[] = {
	{ "world soccer (prototype).bin", 0x100000, 0x9d451f72, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultsoccrp)
STD_ROM_FN(md_ultsoccrp)

struct BurnDriver BurnDrvmd_ultsoccrp = {
	"md_ultsoccrp", "md_ultsoccr", NULL, NULL, "1993",
	"Ultimate Soccer (Euro, Prototype)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_ultsoccrpRomInfo, md_ultsoccrpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Voina Irak (Unl)
static struct BurnRomInfo md_virakRomDesc[] = {
	{ "voina_irak.bin", 0x200000, 0xc7177e93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_virak)
STD_ROM_FN(md_virak)

struct BurnDriver BurnDrvmd_virak = {
	"md_virak", NULL, NULL, NULL, "199?",
	"Voina Irak (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_virakRomInfo, md_virakRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wario Land 3 (Russia) (Unl)
static struct BurnRomInfo md_wario3RomDesc[] = {
	{ "wario land 3 (unl).bin", 0x100000, 0xcd5c93a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wario3)
STD_ROM_FN(md_wario3)

struct BurnDriver BurnDrvmd_wario3 = {
	"md_wario3", "md_puggsy", NULL, NULL, "199?",
	"Wario Land 3 (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_wario3RomInfo, md_wario3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winx - Shkola Volshyebnits (Russia) (Unl)
static struct BurnRomInfo md_winxRomDesc[] = {
	{ "winx (rus).bin", 0x200000, 0x16bde3e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_winx)
STD_ROM_FN(md_winx)

struct BurnDriver BurnDrvmd_winx = {
	"md_winx", "md_valis", NULL, NULL, "200?",
	"Winx - Shkola Volshyebnits (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_winxRomInfo, md_winxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Winx 3D Volshebnoe Priklyuchenie (Russia) (Unl)
static struct BurnRomInfo md_winx3dRomDesc[] = {
	{ "winx 3d (unl).bin", 0x12a3d0, 0x933cecc9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_winx3d)
STD_ROM_FN(md_winx3d)

struct BurnDriver BurnDrvmd_winx3d = {
	"md_winx3d", "md_valis3", NULL, NULL, "200?",
	"Winx 3D Volshebnoe Priklyuchenie (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_winx3dRomInfo, md_winx3dRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xiao Monv - Magic Girl (Taiwan) (Unl)
static struct BurnRomInfo md_xiaomoRomDesc[] = {
	{ "xiao monv - magic girl (chi) (unl).bin", 0x080000, 0x8e49a92e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xiaomo)
STD_ROM_FN(md_xiaomo)

struct BurnDriver BurnDrvmd_xiaomo = {
	"md_xiaomo", NULL, NULL, NULL, "1993",
	"Xiao Monv - Magic Girl (Taiwan) (Unl)\0", NULL, "Gamtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_xiaomoRomInfo, md_xiaomoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xin Qi Gai Wang Zi (China, Alt) (Unl)
static struct BurnRomInfo md_xinqig1RomDesc[] = {
	{ "xin qi gai wang zi (chi) (alt) (unl).bin", 0x400000, 0xda5a4bfe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xinqig1)
STD_ROM_FN(md_xinqig1)

struct BurnDriver BurnDrvmd_xinqig1 = {
	"md_xinqig1", "md_xinqig", NULL, NULL, "1996",
	"Xin Qi Gai Wang Zi (China, Alt) (Unl)\0", NULL, "C&E", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_BEGGAR, GBF_RPG, 0,
	MegadriveGetZipName, md_xinqig1RomInfo, md_xinqig1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xin Qi Gai Wang Zi (China) (Unl)
static struct BurnRomInfo md_xinqigRomDesc[] = {
	{ "xin qi gai wang zi (chi) (unl).bin", 0x400000, 0xdd2f38b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xinqig)
STD_ROM_FN(md_xinqig)

struct BurnDriver BurnDrvmd_xinqig = {
	"md_xinqig", NULL, NULL, NULL, "1996",
	"Xin Qi Gai Wang Zi (China) (Unl)\0", NULL, "C&E", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_BEGGAR, GBF_RPG, 0,
	MegadriveGetZipName, md_xinqigRomInfo, md_xinqigRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ya Se Chuan Shuo (China) (Unl)
static struct BurnRomInfo md_yasechRomDesc[] = {
	{ "ya se chuan shuo (chi) (unl).bin", 0x200000, 0x095b9a15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yasech)
STD_ROM_FN(md_yasech)

struct BurnDriver BurnDrvmd_yasech = {
	"md_yasech", NULL, NULL, NULL, "1995",
	"Ya Se Chuan Shuo (China) (Unl)\0", NULL, "Ming Super Chip", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_yasechRomInfo, md_yasechRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yang Jia Jiang - Yang Warrior Family (China) (Unl)
static struct BurnRomInfo md_yangjiRomDesc[] = {
	{ "yang jia jiang - yang warrior family (chi) (unl).bin", 0x200000, 0x6604a79e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yangji)
STD_ROM_FN(md_yangji)

struct BurnDriver BurnDrvmd_yangji = {
	"md_yangji", NULL, NULL, NULL, "1990",
	"Yang Jia Jiang - Yang Warrior Family (China) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_yangjiRomInfo, md_yangjiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Command & Conquer (Prototype)
static struct BurnRomInfo md_commconqRomDesc[] = {
	{ "command & conquer (beta).bin", 0x186286, 0x747fcc62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_commconq)
STD_ROM_FN(md_commconq)

struct BurnDriver BurnDrvmd_commconq = {
	"md_commconq", NULL, NULL, NULL, "199?",
	"Command & Conquer (Prototype)\0", NULL, "Digital Distribution", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_commconqRomInfo, md_commconqRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Finding Nemo (Russia) (Unl)
static struct BurnRomInfo md_nemoRomDesc[] = {
	{ "finding nemo.bin", 0x0a0000, 0x89b92f66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nemo)
STD_ROM_FN(md_nemo)

struct BurnDriver BurnDrvmd_nemo = {
	"md_nemo", "md_jpond", NULL, NULL, "200?",
	"Finding Nemo (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_nemoRomInfo, md_nemoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Forsazh 5 Bystraya ~ Fast and the Furious 5 Quick (Russia) (Unl)
static struct BurnRomInfo md_fastfur5RomDesc[] = {
	{ "fast and the furious 5 (unl).bin", 0x10b000, 0x29f4d87a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fastfur5)
STD_ROM_FN(md_fastfur5)

struct BurnDriver BurnDrvmd_fastfur5 = {
	"md_fastfur5", "md_combatca", NULL, NULL, "201?",
	"Forsazh 5 Bystraya ~ Fast and the Furious 5 Quick (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_fastfur5RomInfo, md_fastfur5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gran Turismo 5 (Russia) (Unl)
static struct BurnRomInfo md_gt5RomDesc[] = {
	{ "gran turismo 5 (unl).bin", 0x12a0d0, 0xd4392181, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gt5)
STD_ROM_FN(md_gt5)

struct BurnDriver BurnDrvmd_gt5 = {
	"md_gt5", "md_funcar", NULL, NULL, "200?",
	"Gran Turismo 5 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_gt5RomInfo, md_gt5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ice Age (Russia) (Unl)
static struct BurnRomInfo md_iceageRomDesc[] = {
	{ "ice age.bin", 0x400000, 0x3a585408, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_iceage)
STD_ROM_FN(md_iceage)

struct BurnDriver BurnDrvmd_iceage = {
	"md_iceage", "md_awepossm", NULL, NULL, "200?",
	"Ice Age (Russia) (Unl)\0", NULL, "KDS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_iceageRomInfo, md_iceageRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ice Age 3 (Russia) (Unl)
static struct BurnRomInfo md_iceage3RomDesc[] = {
	{ "ice age 3 (unl).bin", 0x107120, 0x58fcffb3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_iceage3)
STD_ROM_FN(md_iceage3)

struct BurnDriver BurnDrvmd_iceage3 = {
	"md_iceage3", "md_chuckrck", NULL, NULL, "200?",
	"Ice Age 3 (Russia) (Unl)\0", NULL, "KDS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_iceage3RomInfo, md_iceage3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ice Age 4 (Russia) (Unl)
static struct BurnRomInfo md_iceage4RomDesc[] = {
	{ "ice age 4 (unl).bin", 0x10e620, 0x92e86cfc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_iceage4)
STD_ROM_FN(md_iceage4)

struct BurnDriver BurnDrvmd_iceage4 = {
	"md_iceage4", "md_chuckrck", NULL, NULL, "200?",
	"Ice Age 4 (Russia) (Unl)\0", NULL, "KDS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_iceage4RomInfo, md_iceage4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Incredibles, The (Russia) (Unl)
static struct BurnRomInfo md_incredibRomDesc[] = {
	{ "the incredibles (unl).bin", 0x200000, 0x31f7af7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_incredib)
STD_ROM_FN(md_incredib)

struct BurnDriver BurnDrvmd_incredib = {
	"md_incredib", "md_tick", NULL, NULL, "199?",
	"Incredibles, The (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_incredibRomInfo, md_incredibRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Indiana Jones - Koridory Vremeni (Russia) (Unl)
static struct BurnRomInfo md_indyrusRomDesc[] = {
	{ "indiana jones - corridors of time (unl).bin", 0x400000, 0x54f82c76, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_indyrus)
STD_ROM_FN(md_indyrus)

struct BurnDriver BurnDrvmd_indyrus = {
	"md_indyrus", "md_rickdang", NULL, NULL, "199?",
	"Indiana Jones - Koridory Vremeni (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_indyrusRomInfo, md_indyrusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Iraq War 2003 (Unl)
static struct BurnRomInfo md_iraqwarRomDesc[] = {
	{ "iraq war 2003 (unl).bin", 0x100000, 0x49dd6f52, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_iraqwar)
STD_ROM_FN(md_iraqwar)

struct BurnDriver BurnDrvmd_iraqwar = {
	"md_iraqwar", NULL, NULL, NULL, "199?",
	"Iraq War 2003 (Unl)\0", NULL, "Tomsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_iraqwarRomInfo, md_iraqwarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Iraq War 2003 (Alt) (Unl)
static struct BurnRomInfo md_iraqwaraRomDesc[] = {
	{ "iraq war 2003 (alt) (unl).bin", 0x100000, 0x23689237, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_iraqwara)
STD_ROM_FN(md_iraqwara)

struct BurnDriver BurnDrvmd_iraqwara = {
	"md_iraqwara", "md_iraqwar", NULL, NULL, "199?",
	"Iraq War 2003 (Alt) (Unl)\0", NULL, "Tomsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_iraqwaraRomInfo, md_iraqwaraRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kung Fu Panda 2 (Russia) (Unl)
static struct BurnRomInfo md_kfpanda2RomDesc[] = {
	{ "kung fu panda 2 (unl).bin", 0x400000, 0xa08c3b25, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kfpanda2)
STD_ROM_FN(md_kfpanda2)

struct BurnDriver BurnDrvmd_kfpanda2 = {
	"md_kfpanda2", "md_brutal", NULL, NULL, "201?",
	"Kung Fu Panda 2 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kfpanda2RomInfo, md_kfpanda2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kuzya - V Mire Dinozavrov (Russia) (Unl)
static struct BurnRomInfo md_kuzyamdRomDesc[] = {
	{ "agent hugo - in the world of dinosaurs (unl).bin", 0x200000, 0xbd0ebe1c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kuzyamd)
STD_ROM_FN(md_kuzyamd)

struct BurnDriver BurnDrvmd_kuzyamd = {
	"md_kuzyamd", "md_chukrck2", NULL, NULL, "199?",
	"Kuzya - V Mire Dinozavrov (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kuzyamdRomInfo, md_kuzyamdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kuzya - Ekologiya V Opasnosti (Russia) (Unl)
static struct BurnRomInfo md_kuzyaeoRomDesc[] = {
	{ "agent hugo - environment at risk (unl).bin", 0x200000, 0xbe32d65b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kuzyaeo)
STD_ROM_FN(md_kuzyaeo)

struct BurnDriver BurnDrvmd_kuzyaeo = {
	"md_kuzyaeo", "md_chukrck2", NULL, NULL, "199?",
	"Kuzya - Ekologiya V Opasnosti (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kuzyaeoRomInfo, md_kuzyaeoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lord of the Rings (Russia, Hack of Stormlord)
static struct BurnRomInfo md_lotrRomDesc[] = {
	{ "lord of the rings (unl).bin", 0x080000, 0xe2a2342a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lotr)
STD_ROM_FN(md_lotr)

struct BurnDriver BurnDrvmd_lotr = {
	"md_lotr", "md_strmlord", NULL, NULL, "199?",
	"Lord of the Rings (Russia, Hack of Stormlord)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_lotrRomInfo, md_lotrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lord of the Rings - The Return of the King (Russia) (Unl)
static struct BurnRomInfo md_lotrgsRomDesc[] = {
	{ "lord of the rings (unl).bin", 0x200000, 0x513ea675, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lotrgs)
STD_ROM_FN(md_lotrgs)

struct BurnDriver BurnDrvmd_lotrgs = {
	"md_lotrgs", NULL, NULL, NULL, "200?",
	"Lord of the Rings - The Return of the King (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_lotrgsRomInfo, md_lotrgsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madagascar - Operatsiya Pingvin (Russia) (Unl)
static struct BurnRomInfo md_madagoppRomDesc[] = {
	{ "madagascar.bin", 0x100000, 0x6d28ace5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madagopp)
STD_ROM_FN(md_madagopp)

struct BurnDriver BurnDrvmd_madagopp = {
	"md_madagopp", "md_magichat", NULL, NULL, "199?",
	"Madagascar - Operatsiya Pingvin (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_madagoppRomInfo, md_madagoppRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madagascar 3 (Russia) (Unl)
static struct BurnRomInfo md_madagsc3RomDesc[] = {
	{ "madagascar 3 (unl).bin", 0x100000, 0x0bd6d0a5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madagsc3)
STD_ROM_FN(md_madagsc3)

struct BurnDriver BurnDrvmd_madagsc3 = {
	"md_madagsc3", "md_dinotale", NULL, NULL, "200?",
	"Madagascar 3 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_madagsc3RomInfo, md_madagsc3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mafia (Russia) (Unl)
static struct BurnRomInfo md_mafiaRomDesc[] = {
	{ "mafia (unl).bin", 0x100000, 0xede60834, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mafia)
STD_ROM_FN(md_mafia)

struct BurnDriver BurnDrvmd_mafia = {
	"md_mafia", "md_dicktr", NULL, NULL, "2010",
	"Mafia (Russia) (Unl)\0", NULL, "BMB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mafiaRomInfo, md_mafiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mario 3 - Vokrug Sveta (Russia) (Unl)
static struct BurnRomInfo md_mario3RomDesc[] = {
	{ "mario 3 (unl).bin", 0x200000, 0x69f5b02f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mario3)
STD_ROM_FN(md_mario3)

struct BurnDriver BurnDrvmd_mario3 = {
	"md_mario3", NULL, NULL, NULL, "199?",
	"Mario 3 - Vokrug Sveta (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mario3RomInfo, md_mario3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mario 4 - Kosmicheskaya Odissyeya (Russia) (Unl)
static struct BurnRomInfo md_mario4RomDesc[] = {
	{ "mario 4 (unl).bin", 0x200000, 0x96b0ecd9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mario4)
STD_ROM_FN(md_mario4)

struct BurnDriver BurnDrvmd_mario4 = {
	"md_mario4", NULL, NULL, NULL, "199?",
	"Mario 4 - Kosmicheskaya Odissyeya (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mario4RomInfo, md_mario4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Metal Gear Solid (Russia) (Unl)
static struct BurnRomInfo md_mgsRomDesc[] = {
	{ "metal gear solid (unl).bin", 0x080000, 0xb38191eb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mgs)
STD_ROM_FN(md_mgs)

struct BurnDriver BurnDrvmd_mgs = {
	"md_mgs", "md_crkdown", NULL, NULL, "199?",
	"Metal Gear Solid (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_MAZE, 0,
	MegadriveGetZipName, md_mgsRomInfo, md_mgsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mighty Morphin Power Rangers - The Fighting Edition (Russia) (Unl)
static struct BurnRomInfo md_mmprfeRomDesc[] = {
	{ "mighty morphin power ranger - the fighting edition (unl).bin", 0x200000, 0xb53ff16c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprfe)
STD_ROM_FN(md_mmprfe)

struct BurnDriver BurnDrvmd_mmprfe = {
	"md_mmprfe", NULL, NULL, NULL, "199?",
	"Mighty Morphin Power Rangers - The Fighting Edition (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprfeRomInfo, md_mmprfeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monsters, Inc. (Russia) (Unl)
static struct BurnRomInfo md_monstincRomDesc[] = {
	{ "monsters inc. (unl).bin", 0x080000, 0x3f4657d5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_monstinc)
STD_ROM_FN(md_monstinc)

struct BurnDriver BurnDrvmd_monstinc = {
	"md_monstinc", "md_decapatt", NULL, NULL, "199?",
	"Monsters, Inc. (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_monstincRomInfo, md_monstincRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Narnia 3 (Russia) (Unl)
static struct BurnRomInfo md_narnia3RomDesc[] = {
	{ "narnia 3 (unl).bin", 0x129dc0, 0xab69bcd3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_narnia3)
STD_ROM_FN(md_narnia3)

struct BurnDriver BurnDrvmd_narnia3 = {
	"md_narnia3", "md_galahad", NULL, NULL, "200?",
	"Narnia 3 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_narnia3RomInfo, md_narnia3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Naruto (Russia) (Unl)
static struct BurnRomInfo md_narutoRomDesc[] = {
	{ "naruto (unl).bin", 0x400000, 0xb29b3503, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_naruto)
STD_ROM_FN(md_naruto)

struct BurnDriver BurnDrvmd_naruto = {
	"md_naruto", "md_3ninja", NULL, NULL, "20??",
	"Naruto (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_narutoRomInfo, md_narutoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA 2000 (Russia) (Unl)
static struct BurnRomInfo md_nba2kRomDesc[] = {
	{ "nba 2000 (unl).bin", 0x200000, 0x2cef6950, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nba2k)
STD_ROM_FN(md_nba2k)

struct BurnDriver BurnDrvmd_nba2k = {
	"md_nba2k", "md_nbaact", NULL, NULL, "2000",
	"NBA 2000 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nba2kRomInfo, md_nba2kRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NBA 2005 (Russia) (Unl)
static struct BurnRomInfo md_nba2k5RomDesc[] = {
	{ "nba 2005 (unl).bin", 0x200000, 0xe8610238, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nba2k5)
STD_ROM_FN(md_nba2k5)

struct BurnDriver BurnDrvmd_nba2k5 = {
	"md_nba2k5", "md_nbaact95", NULL, NULL, "2005",
	"NBA 2005 (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nba2k5RomInfo, md_nba2k5RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Need for Speed Undercover (Russia) (Unl)
static struct BurnRomInfo md_nfsuRomDesc[] = {
	{ "need for speed undercover (unl).bin", 0x100000, 0xbe1b8e93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nfsu)
STD_ROM_FN(md_nfsu)

struct BurnDriver BurnDrvmd_nfsu = {
	"md_nfsu", "md_toutrun", NULL, NULL, "200?",
	"Need for Speed Undercover (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_nfsuRomInfo, md_nfsuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHLPA 2003 (Russia) (Unl)
static struct BurnRomInfo md_nhlpa2k3RomDesc[] = {
	{ "nhlpa 2003 (unl).bin", 0x200000, 0x4591571b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhlpa2k3)
STD_ROM_FN(md_nhlpa2k3)

struct BurnDriver BurnDrvmd_nhlpa2k3 = {
	"md_nhlpa2k3", "md_nhl98", NULL, NULL, "200?",
	"NHLPA 2003 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_nhlpa2k3RomInfo, md_nhlpa2k3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates of the Caribbean (Russia) (Unl)
static struct BurnRomInfo md_pcaribRomDesc[] = {
	{ "pirates of the caribbean (unl).bin", 0x200000, 0x48da0bf4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pcarib)
STD_ROM_FN(md_pcarib)

struct BurnDriver BurnDrvmd_pcarib = {
	"md_pcarib", "md_unchartd", NULL, NULL, "199?",
	"Pirates of the Caribbean (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_pcaribRomInfo, md_pcaribRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Piraty Karibskogo Morya - Na Strannyh Beregah ~ Pirates of the Caribbean - On Stranger Tides (Russia) (Unl)
static struct BurnRomInfo md_pcarib2RomDesc[] = {
	{ "pirates of the caribbean - on stranger tides (unl).bin", 0x100000, 0x63c90c7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pcarib2)
STD_ROM_FN(md_pcarib2)

struct BurnDriver BurnDrvmd_pcarib2 = {
	"md_pcarib2", NULL, NULL, NULL, "20??",
	"Pirates of the Caribbean - On Stranger Tides (Russia) (Unl)\0", "Piraty Karibskogo Morya - Na Strannyh Beregah", "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_pcarib2RomInfo, md_pcarib2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pokemon Crazy Drummer (Alt) (Unl)
static struct BurnRomInfo md_pokecdaRomDesc[] = {
	{ "pokemon crazy drummer (unl) [a].bin", 0x200000, 0x84f49061, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pokecda)
STD_ROM_FN(md_pokecda)

struct BurnDriver BurnDrvmd_pokecda = {
	"md_pokecda", "md_pokecd", NULL, NULL, "2003",
	"Pokemon Crazy Drummer (Alt) (Unl)\0", NULL, "Tomsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_pokecdaRomInfo, md_pokecdaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RHL 2007 (Russia) (Unl)
static struct BurnRomInfo md_rhl2k7RomDesc[] = {
	{ "rhl 2000 (unl).bin", 0x0a0000, 0xbb7a978b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rhl2k7)
STD_ROM_FN(md_rhl2k7)

struct BurnDriver BurnDrvmd_rhl2k7 = {
	"md_rhl2k7", "md_nhlpa93", NULL, NULL, "199?",
	"RHL 2007 (Russia) (Unl)\0", NULL, "NewGame", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_rhl2k7RomInfo, md_rhl2k7RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shrek (Russia) (Unl)
static struct BurnRomInfo md_shrekRomDesc[] = {
	{ "shrek (unl).bin", 0x100000, 0x561e84b9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shrek)
STD_ROM_FN(md_shrek)

struct BurnDriver BurnDrvmd_shrek = {
	"md_shrek", "md_yogibear", NULL, NULL, "199?",
	"Shrek (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shrekRomInfo, md_shrekRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shrek 2 (Russia) (Unl)
static struct BurnRomInfo md_shrek2RomDesc[] = {
	{ "shrek 2 (unl).bin", 0x100000, 0x0ccd3651, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shrek2)
STD_ROM_FN(md_shrek2)

struct BurnDriver BurnDrvmd_shrek2 = {
	"md_shrek2", "md_ottifant", NULL, NULL, "199?",
	"Shrek 2 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shrek2RomInfo, md_shrek2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sezon Ohoty (Russia) (Unl)
static struct BurnRomInfo md_openseaRomDesc[] = {
	{ "open season (unl).bin", 0x100000, 0x06eb2472, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_opensea)
STD_ROM_FN(md_opensea)

struct BurnDriver BurnDrvmd_opensea = {
	"md_opensea", "md_rolo", NULL, NULL, "199?",
	"Sezon Ohoty (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_openseaRomInfo, md_openseaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sezon Ohoty 3 (Russia) (Unl)
static struct BurnRomInfo md_opensea3RomDesc[] = {
	{ "hunting season 3 (unl).bin", 0x090d20, 0xb433878c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_opensea3)
STD_ROM_FN(md_opensea3)

struct BurnDriver BurnDrvmd_opensea3 = {
	"md_opensea3", "md_rolo", NULL, NULL, "199?",
	"Sezon Ohoty 3 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_opensea3RomInfo, md_opensea3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Snezhnaya Koroleva (Russia) (Unl)
static struct BurnRomInfo md_snezkoroRomDesc[] = {
	{ "snow queen (unl).bin", 0x200000, 0xe6c07946, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_snezkoro)
STD_ROM_FN(md_snezkoro)

struct BurnDriver BurnDrvmd_snezkoro = {
	"md_snezkoro", "md_mickmack", NULL, NULL, "199?",
	"Snezhnaya Koroleva (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_snezkoroRomInfo, md_snezkoroRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sponge Bob (Russia) (Unl)
static struct BurnRomInfo md_spongbobRomDesc[] = {
	{ "sponge bob.bin", 0x100000, 0xc5437496, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spongbob)
STD_ROM_FN(md_spongbob)

struct BurnDriver BurnDrvmd_spongbob = {
	"md_spongbob", "md_coolspot", NULL, NULL, "20??",
	"Sponge Bob (Russia) (Unl)\0", NULL, "KDS", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spongbobRomInfo, md_spongbobRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spy Kids 4 - All The Time In The World (Russia) (Unl)
static struct BurnRomInfo md_spykids4RomDesc[] = {
	{ "spy kids 4.bin", 0x200000, 0x9a045ea3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spykids4)
STD_ROM_FN(md_spykids4)

struct BurnDriver BurnDrvmd_spykids4 = {
	"md_spykids4", "md_dinotale", NULL, NULL, "199?",
	"Spy Kids 4 - All The Time In The World (Russia) (Unl)\0", NULL, "<unlicensed>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spykids4RomInfo, md_spykids4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Wars (Russia) (Unl)
static struct BurnRomInfo md_starwarsRomDesc[] = {
	{ "star wars (unl).bin", 0x100000, 0x94af8d44, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starwars)
STD_ROM_FN(md_starwars)

struct BurnDriver BurnDrvmd_starwars = {
	"md_starwars", "md_elimdown", NULL, NULL, "199?",
	"Star Wars (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_starwarsRomInfo, md_starwarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Wars Jedi (Russia) (Unl)
static struct BurnRomInfo md_starjediRomDesc[] = {
	{ "star wars jedi (unl).bin", 0x12a0d0, 0x48c5bf60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starjedi)
STD_ROM_FN(md_starjedi)

struct BurnDriver BurnDrvmd_starjedi = {
	"md_starjedi", "md_wolfchld", NULL, NULL, "199?",
	"Star Wars Jedi (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_starjediRomInfo, md_starjediRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Mario Bros. + Battle City (Russia) (Unl)
static struct BurnRomInfo md_smbbcRomDesc[] = {
	{ "mario & battle city (unl).bin", 0x080000, 0x568f7994, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smbbc)
STD_ROM_FN(md_smbbc)

struct BurnDriver BurnDrvmd_smbbc = {
	"md_smbbc", NULL, NULL, NULL, "199?",
	"Super Mario Bros. + Battle City (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_04000, GBF_PLATFORM | GBF_SHOOT, 0,
	MegadriveGetZipName, md_smbbcRomInfo, md_smbbcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Robot Wars (Russia) (Unl)
static struct BurnRomInfo md_srobowrsRomDesc[] = {
	{ "super robot wars (unl).bin", 0x080000, 0xcfae2614, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_srobowrs)
STD_ROM_FN(md_srobowrs)

struct BurnDriver BurnDrvmd_srobowrs = {
	"md_srobowrs", "md_trgearth", NULL, NULL, "199?",
	"Super Robot Wars (Russia) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_srobowrsRomInfo, md_srobowrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T3 - The Arcade Game (Russia) (Unl)
static struct BurnRomInfo md_t3agRomDesc[] = {
	{ "t3 - the arcade game (unl).bin", 0x100000, 0xd2b5ef77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_t3ag)
STD_ROM_FN(md_t3ag)

struct BurnDriver BurnDrvmd_t3ag = {
	"md_t3ag", "md_t2ag", NULL, NULL, "199?",
	"T3 - The Arcade Game (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_t3agRomInfo, md_t3agRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tachki (Russia) (Unl)
static struct BurnRomInfo md_carsRomDesc[] = {
	{ "disney's cars (r).bin", 0x200000, 0x6c5f2530, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cars)
STD_ROM_FN(md_cars)

struct BurnDriver BurnDrvmd_cars = {
	"md_cars", "md_sskid", NULL, NULL, "199?",
	"Tachki (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_carsRomInfo, md_carsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tachki 2 (Russia) (Unl)
static struct BurnRomInfo md_cars2RomDesc[] = {
	{ "cars 2 (unl).bin", 0x200000, 0x4fd4d967, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cars2)
STD_ROM_FN(md_cars2)

struct BurnDriver BurnDrvmd_cars2 = {
	"md_cars2", "md_cproam", NULL, NULL, "199?",
	"Tachki 2 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_cars2RomInfo, md_cars2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tanki 2011 (Russia) (Unl)
static struct BurnRomInfo md_tank2011RomDesc[] = {
	{ "tank 2011 (unl).bin", 0x080000, 0x03739820, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tank2011)
STD_ROM_FN(md_tank2011)

struct BurnDriver BurnDrvmd_tank2011 = {
	"md_tank2011", NULL, NULL, NULL, "199?",
	"Tanki 2011 (Russia)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_tank2011RomInfo, md_tank2011RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures 3 (Taiwan) (Unl)
static struct BurnRomInfo md_ttoon3RomDesc[] = {
	{ "tiny toon adventures 3 (unl).bin", 0x100000, 0xd65d83d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttoon3)
STD_ROM_FN(md_ttoon3)

struct BurnDriver BurnDrvmd_ttoon3 = {
	"md_ttoon3", NULL, NULL, NULL, "199?",
	"Tiny Toon Adventures 3 (Taiwan) (Unl)\0", NULL, "Gamtec?", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SQUIRRELK, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ttoon3RomInfo, md_ttoon3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - Vozvrashchenie Legendy (Russia) (Unl)
static struct BurnRomInfo md_tmntruRomDesc[] = {
	{ "tmnt (unl).bin", 0x100000, 0x7fb1356e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmntru)
STD_ROM_FN(md_tmntru)

struct BurnDriver BurnDrvmd_tmntru = {
	"md_tmntru", NULL, NULL, NULL, "199?",
	"Teenage Mutant Ninja Turtles - Vozvrashchenie Legendy (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tmntruRomInfo, md_tmntruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Transformers 3 (Russia) (Unl)
static struct BurnRomInfo md_transf3RomDesc[] = {
	{ "transformers 3 (unl).bin", 0x110d20, 0x8632246d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_transf3)
STD_ROM_FN(md_transf3)

struct BurnDriver BurnDrvmd_transf3 = {
	"md_transf3", "md_mazinwar", NULL, NULL, "199?",
	"Transformers 3 (Russia) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_transf3RomInfo, md_transf3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// --------------------

// Action Replay (Euro)
static struct BurnRomInfo md_arRomDesc[] = {
	{ "action replay (euro).bin", 0x008000, 0x95ff7c3e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ar)
STD_ROM_FN(md_ar)

struct BurnDriver BurnDrvmd_ar = {
	"md_ar", NULL, NULL, NULL, "199?",
	"Action Replay (Euro)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_arRomInfo, md_arRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Game Genie (Euro, USA, Rev. A)
static struct BurnRomInfo md_ggenieRomDesc[] = {
	{ "sgr001-a+sgr002-a.bin", 0x008000, 0x14dbce4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ggenie)
STD_ROM_FN(md_ggenie)

struct BurnDriver BurnDrvmd_ggenie = {
	"md_ggenie", NULL, NULL, NULL, "199?",
	"Game Genie (Euro, USA, Rev. A)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_ggenieRomInfo, md_ggenieRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Game Genie (Euro, USA)
static struct BurnRomInfo md_ggenie1RomDesc[] = {
	{ "sgr001+sgr002.bin", 0x008000, 0x5f293e4c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ggenie1)
STD_ROM_FN(md_ggenie1)

struct BurnDriver BurnDrvmd_ggenie1 = {
	"md_ggenie1", "md_ggenie", NULL, NULL, "199?",
	"Game Genie (Euro, USA)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_ggenie1RomInfo, md_ggenie1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pro Action Replay (Euro)
static struct BurnRomInfo md_parRomDesc[] = {
	{ "pro action replay (euro).bin", 0x020000, 0x17255224, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_par)
STD_ROM_FN(md_par)

struct BurnDriver BurnDrvmd_par = {
	"md_par", NULL, NULL, NULL, "199?",
	"Pro Action Replay (Euro)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_parRomInfo, md_parRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pro Action Replay 2 (Euro)
static struct BurnRomInfo md_par2RomDesc[] = {
	{ "pro action replay 2 (euro).bin", 0x010000, 0xa73abd27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_par2)
STD_ROM_FN(md_par2)

struct BurnDriver BurnDrvmd_par2 = {
	"md_par2", NULL, NULL, NULL, "199?",
	"Pro Action Replay 2 (Euro)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_par2RomInfo, md_par2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pro Action Replay 2 (Euro, Alt)
static struct BurnRomInfo md_par2aRomDesc[] = {
	{ "pro action replay 2 (euro) (alt).bin", 0x010000, 0xe6669a61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_par2a)
STD_ROM_FN(md_par2a)

struct BurnDriver BurnDrvmd_par2a = {
	"md_par2a", "md_par2", NULL, NULL, "199?",
	"Pro Action Replay 2 (Euro, Alt)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_par2aRomInfo, md_par2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Racing (Euro)
static struct BurnRomInfo md_vrRomDesc[] = {
	{ "mpr-16420.bin", 0x200000, 0x9624d4ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vr)
STD_ROM_FN(md_vr)

struct BurnDriverD BurnDrvmd_vr = {
	"md_vr", NULL, NULL, NULL, "1994",
	"Virtua Racing (Euro)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_vrRomInfo, md_vrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Racing (Japan)
static struct BurnRomInfo md_vrjRomDesc[] = {
	{ "mpr-16389.bin", 0x200000, 0x53a293b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vrj)
STD_ROM_FN(md_vrj)

struct BurnDriverD BurnDrvmd_vrj = {
	"md_vrj", "md_vr", NULL, NULL, "1994",
	"Virtua Racing (Japan)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_vrjRomInfo, md_vrjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Racing (USA)
static struct BurnRomInfo md_vruRomDesc[] = {
	{ "virtua racing (usa).bin", 0x200000, 0x7e1a324a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vru)
STD_ROM_FN(md_vru)

struct BurnDriverD BurnDrvmd_vru = {
	"md_vru", "md_vr", NULL, NULL, "1994",
	"Virtua Racing (USA)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_vruRomInfo, md_vruRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GEMS v2.8
static struct BurnRomInfo md_gemsRomDesc[] = {
	{ "gems.bin", 0x040000, 0x98ebb058, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gems)
STD_ROM_FN(md_gems)

struct BurnDriver BurnDrvmd_gems = {
	"md_gems", NULL, NULL, NULL, "199?",
	"GEMS v2.8\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_gemsRomInfo, md_gemsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sound Tool v2.2?
static struct BurnRomInfo md_sndtoolRomDesc[] = {
	{ "sndtool.bin", 0x040000, 0xee41b452, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sndtool)
STD_ROM_FN(md_sndtool)

struct BurnDriver BurnDrvmd_sndtool = {
	"md_sndtool", NULL, NULL, NULL, "1991",
	"Sound Tool v2.2?\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_sndtoolRomInfo, md_sndtoolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art Tool
static struct BurnRomInfo md_arttoolRomDesc[] = {
	{ "arttool.bin", 0x040000, 0x5353f532, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arttool)
STD_ROM_FN(md_arttool)

struct BurnDriver BurnDrvmd_arttool = {
	"md_arttool", NULL, NULL, NULL, "199?",
	"Art Tool\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_arttoolRomInfo, md_arttoolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles + Sonic the Hedgehog (World)
static struct BurnRomInfo md_sks1RomDesc[] = {
	{ "mpr-16910-u.ic1", 0x200000, 0x0658f691, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
	{ "mpr-13913.ic1", 0x080000, 0xf9394e97, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_200000  },
};

STD_ROM_PICK(md_sks1)
STD_ROM_FN(md_sks1)

struct BurnDriver BurnDrvmd_sks1 = {
	"md_sks1", NULL, NULL, NULL, "1994 + 1991",
	"Sonic & Knuckles + Sonic the Hedgehog (World)\0", "Lock-On Technology", "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sks1RomInfo, md_sks1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles + Sonic the Hedgehog 2 (World)
static struct BurnRomInfo md_sks2RomDesc[] = {
	{ "mpr-16910-u.ic1", 0x200000, 0x0658f691, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
	{ "mpr-16911-s.ic2", 0x040000, 0x4dcfd55c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_300000  },
	{ "mpr-15000a.bin", 0x100000, 0x7b905383, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_200000  },
};

STD_ROM_PICK(md_sks2)
STD_ROM_FN(md_sks2)

struct BurnDriver BurnDrvmd_sks2 = {
	"md_sks2", NULL, NULL, NULL, "1994 + 1992",
	"Sonic & Knuckles + Sonic the Hedgehog 2 (World)\0", "Lock-On Technology", "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sks2RomInfo, md_sks2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic & Knuckles + Sonic the Hedgehog 3 (World)
static struct BurnRomInfo md_sks3RomDesc[] = {
	{ "mpr-16910-u.ic1", 0x200000, 0x0658f691, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
	{ "sonic the hedgehog 3 (usa).bin", 0x200000, 0x9bc192ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_200000  },
};

STD_ROM_PICK(md_sks3)
STD_ROM_FN(md_sks3)

struct BurnDriver BurnDrvmd_sks3 = {
	"md_sks3", NULL, NULL, NULL, "1994 + 1994",
	"Sonic & Knuckles + Sonic the Hedgehog 3 (World)\0", "Lock-On Technology", "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sks3RomInfo, md_sks3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// RobertCop 2 Full Edition (Unl)
static struct BurnRomInfo md_robertcop2RomDesc[] = {
	{ "RobertCop 2 Full Edition (Unl)(199X).bin", 2097152, 0xfc88d889, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robertcop2)
STD_ROM_FN(md_robertcop2)

struct BurnDriver BurnDrvmd_robertcop2 = {
	"md_robertcop2", NULL, NULL, NULL, "199?",
	"RobertCop 2 Full Edition (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robertcop2RomInfo, md_robertcop2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pac-Man
static struct BurnRomInfo md_pacmanRomDesc[] = {
	{ "Pac-Man (2018)(BNEI).bin", 262144, 0x0e75af51, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pacman)
STD_ROM_FN(md_pacman)

struct BurnDriver BurnDrvmd_pacman = {
	"md_pacman", NULL, NULL, NULL, "2018",
	"Pac-Man\0", NULL, "BNEI", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_MAZE, 0,
	MegadriveGetZipName, md_pacmanRomInfo, md_pacmanRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devi and Pii (Japan) (Mega Drive Mini 2 Edition)
static struct BurnRomInfo md_devinpiiRomDesc[] = {
	{ "Devi and Pii (2022)(Mega Drive Mini 2 Ed.).bin", 524288, 0x425e9e31, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devinpii)
STD_ROM_FN(md_devinpii)

struct BurnDriver BurnDrvmd_devinpii = {
	"md_devinpii", NULL, NULL, NULL, "2022",
	"Devi and Pii (Japan) (Mega Drive Mini 2 Edition)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BREAKOUT | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_devinpiiRomInfo, md_devinpiiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fantasy Zone (Mega Drive Mini 2 Edition)
static struct BurnRomInfo md_fantazoneRomDesc[] = {
	{ "Fantasy Zone (2022)(Mega Drive Mini 2 Ed.).bin", 2621440, 0xda31f3ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fantazone)
STD_ROM_FN(md_fantazone)

struct BurnDriver BurnDrvmd_fantazone = {
	"md_fantazone", NULL, NULL, NULL, "2022",
	"Fantasy Zone (Mega Drive Mini 2 Edition)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_fantazoneRomInfo, md_fantazoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spatter (Mega Drive Mini 2 Edition)
static struct BurnRomInfo md_spatterRomDesc[] = {
	{ "Spatter (2022)(Mega Drive Mini 2 Ed.).bin", 524288, 0x84081204, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spatter)
STD_ROM_FN(md_spatter)

struct BurnDriver BurnDrvmd_spatter = {
	"md_spatter", NULL, NULL, NULL, "2022",
	"Spatter (Mega Drive Mini 2 Edition)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_MAZE, 0,
	MegadriveGetZipName, md_spatterRomInfo, md_spatterRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Mobile (Mega Drive Mini 2 Edition)
static struct BurnRomInfo md_starmobileRomDesc[] = {
	{ "Star Mobile (2022)(Mega Drive Mini 2 Ed.).bin", 262144, 0x39466559, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starmobile)
STD_ROM_FN(md_starmobile)

struct BurnDriver BurnDrvmd_starmobile = {
	"md_starmobile", NULL, NULL, NULL, "2022",
	"Star Mobile (Mega Drive Mini 2 Edition)\0", NULL, "Mindware", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_starmobileRomInfo, md_starmobileRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Locomotive (Mega Drive Mini 2 Edition)
static struct BurnRomInfo md_suplocoRomDesc[] = {
	{ "Super Locomotive (2022)(Mega Drive Mini 2 Ed.).bin", 262144, 0xc2840b00, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_suploco)
STD_ROM_FN(md_suploco)

struct BurnDriver BurnDrvmd_suploco = {
	"md_suploco", NULL, NULL, NULL, "2022",
	"Super Locomotive (Mega Drive Mini 2 Edition)\0", NULL, "Sega", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_suplocoRomInfo, md_suplocoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// --------------------------
// Homebrew/Aftermarket Games
// --------------------------

// 16-Bit Rhythm Land (HB)
static struct BurnRomInfo md_16bitrhythmldRomDesc[] = {
	{ "16-Bit Rhythm Land (2018)(Columbus Circle).bin", 3145728, 0x67271302, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_16bitrhythmld)
STD_ROM_FN(md_16bitrhythmld)

struct BurnDriver BurnDrvmd_16bitrhythmld = {
	"md_16bitrhythmld", NULL, NULL, NULL, "2018",
	"16-Bit Rhythm Land (HB)\0", NULL, "Columbus Circle", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_16bitrhythmldRomInfo, md_16bitrhythmldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// 240p Test Suite (HB, v1.23)
// https://artemiourbina.itch.io/240p-test-suite
static struct BurnRomInfo md_testsuite240pRomDesc[] = {
	{ "240pSuite-1.23.bin", 262144, 0x439fe2f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_testsuite240p)
STD_ROM_FN(md_testsuite240p)

struct BurnDriver BurnDrvmd_testsuite240p = {
	"md_testsuite240p", NULL, NULL, NULL, "2022",
	"240p Test Suite (HB, v1.23)\0", NULL, "Artemio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_testsuite240pRomInfo, md_testsuite240pRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Abyssal Infants (HB)
static struct BurnRomInfo md_abyssalRomDesc[] = {
	{ "Abyssal Infants (2021)(kakoeimon).bin", 845624, 0xb893bea7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_abyssal)
STD_ROM_FN(md_abyssal)

struct BurnDriver BurnDrvmd_abyssal = {
	"md_abyssal", NULL, NULL, NULL, "2021",
	"Abyssal Infants (HB)\0", NULL, "kakoeimon", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_abyssalRomInfo, md_abyssalRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alice Sisters (HB)
static struct BurnRomInfo md_alicesistersRomDesc[] = {
	{ "Alice Sisters (2022)(PixelHeart).bin", 4194304, 0xd5b794ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alicesisters)
STD_ROM_FN(md_alicesisters)

struct BurnDriver BurnDrvmd_alicesisters = {
	"md_alicesisters", NULL, NULL, NULL, "2022",
	"Alice Sisters (HB)\0", NULL, "PixelHeart", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alicesistersRomInfo, md_alicesistersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Cat 2 (HB)
static struct BurnRomInfo md_aliencat2RomDesc[] = {
	{ "Alien Cat 2 (2020)(PSCD Games).bin", 1310720, 0x01010466, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aliencat2)
STD_ROM_FN(md_aliencat2)

struct BurnDriver BurnDrvmd_aliencat2 = {
	"md_aliencat2", NULL, NULL, NULL, "2020",
	"Alien Cat 2 (HB)\0", NULL, "PSCD Games, Repa Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_aliencat2RomInfo, md_aliencat2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// AlterEgo Remastered (HB)
static struct BurnRomInfo md_alteregoRomDesc[] = {
	{ "AlterEgo Remastered (2020)(RetroSouls).bin", 786432, 0x3be95745, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alterego)
STD_ROM_FN(md_alterego)

struct BurnDriver BurnDrvmd_alterego = {
	"md_alterego", NULL, NULL, NULL, "2020",
	"AlterEgo Remastered (HB)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_alteregoRomInfo, md_alteregoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Amshay (HB)
static struct BurnRomInfo md_amshayRomDesc[] = {
	{ "Amshay (2022)(BankBank).bin", 1048576, 0x79e57b7f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_amshay)
STD_ROM_FN(md_amshay)

struct BurnDriver BurnDrvmd_amshay = {
	"md_amshay", NULL, NULL, NULL, "2022",
	"Amshay (HB)\0", NULL, "BankBank", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_amshayRomInfo, md_amshayRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arapuca (HB)
static struct BurnRomInfo md_arapucaRomDesc[] = {
	{ "Arapuca (2020)(Manganga Team).bin", 917504, 0xb28a64ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arapuca)
STD_ROM_FN(md_arapuca)

struct BurnDriver BurnDrvmd_arapuca = {
	"md_arapuca", NULL, NULL, NULL, "2020",
	"Arapuca (HB)\0", NULL, "Manganga Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_arapucaRomInfo, md_arapucaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arkagis Revolution - https://arkagis.itch.io/arkagis-revolution
static struct BurnRomInfo md_arkagisrRomDesc[] = {
	{ "Arkagis Revolution (2019)(Sik).bin", 4194304, 0xa9bdc71b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arkagisr)
STD_ROM_FN(md_arkagisr)

struct BurnDriver BurnDrvmd_arkagisr = {
	"md_arkagisr", NULL, NULL, NULL, "2019",
	"Arkagis Revolution (HB)\0", NULL, "Sik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_arkagisrRomInfo, md_arkagisrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ASAP Plz (HB)
static struct BurnRomInfo md_asapplzRomDesc[] = {
	{ "ASAP Plz (2020)(YRS Truly).bin", 524288, 0x6f65bbf5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asapplz)
STD_ROM_FN(md_asapplz)

struct BurnDriver BurnDrvmd_asapplz = {
	"md_asapplz", NULL, NULL, NULL, "2020",
	"ASAP Plz (HB)\0", NULL, "YRS Truly", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_asapplzRomInfo, md_asapplzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Astebros (HB)
static struct BurnRomInfo md_astebrosRomDesc[] = {
	{ "Astebros (2023)(NeoFID Studios).bin", 15466496, 0x0833390c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_astebros)
STD_ROM_FN(md_astebros)

struct BurnDriver BurnDrvmd_astebros = {
	"md_astebros", NULL, NULL, NULL, "2023",
	"Astebros (HB)\0", NULL, "NeoFID Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2 | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ADV | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_astebrosRomInfo, md_astebrosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Attack of the Petscii Robots (HB)
static struct BurnRomInfo md_atkpetsciiRomDesc[] = {
	{ "Attack of the Petscii Robots (2022)(The 8-bit Guy).bin", 2097152, 0xa7004964, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atkpetscii)
STD_ROM_FN(md_atkpetscii)

struct BurnDriver BurnDrvmd_atkpetscii = {
	"md_atkpetscii", NULL, NULL, NULL, "2022",
	"Attack of the Petscii Robots (HB)\0", NULL, "The 8-bit Guy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_atkpetsciiRomInfo, md_atkpetsciiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bad Apple (HB, Tech-Demo)
static struct BurnRomInfo md_badappleRomDesc[] = {
	{ "Bad Apple (full).bin", 8202512, 0x37f676e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_badapple)
STD_ROM_FN(md_badapple)

struct BurnDriver BurnDrvmd_badapple = {
	"md_badapple", NULL, NULL, NULL, "2012",
	"Bad Apple (HB, Tech-Demo)\0", "64 Mbit (8MB) cartridge", "Stef_D", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_DEMO | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_badappleRomInfo, md_badappleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbarian - Amiga (HB)

static struct BurnRomInfo md_barbarianamiRomDesc[] = {
	{ "Barbarian AMIGA (2017)(F.L).bin", 1031574, 0x4fc515f5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianami)
STD_ROM_FN(md_barbarianami)

struct BurnDriver BurnDrvmd_barbarianami = {
	"md_barbarianami", NULL, NULL, NULL, "2017",
	"Barbarian the Ultimate Warrior - Amiga (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbarianamiRomInfo, md_barbarianamiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbarian - Atari ST (HB)

static struct BurnRomInfo md_barbarianstRomDesc[] = {
	{ "Barbarian Atari ST (2014)(F.L).bin", 2487416, 0xfec97705, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianst)
STD_ROM_FN(md_barbarianst)

struct BurnDriver BurnDrvmd_barbarianst = {
	"md_barbarianst", "md_barbarianami", NULL, NULL, "2014",
	"Barbarian the Ultimate Warrior - Atari ST (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbarianstRomInfo, md_barbarianstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbarian - C64 (HB)

static struct BurnRomInfo md_barbarianc64RomDesc[] = {
	{ "Barbarian C64 (2014)(F.L).bin", 3028428, 0xd37f9af0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianc64)
STD_ROM_FN(md_barbarianc64)

struct BurnDriver BurnDrvmd_barbarianc64 = {
	"md_barbarianc64", "md_barbarianami", NULL, NULL, "2014",
	"Barbarian the Ultimate Warrior - C64 (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbarianc64RomInfo, md_barbarianc64RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbarian - ZX Spectrum (HB)

static struct BurnRomInfo md_barbarianzxsRomDesc[] = {
	{ "Barbarian ZX Spectrum (2015)(F.L).bin", 1432448, 0x5360129d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianzxs)
STD_ROM_FN(md_barbarianzxs)

struct BurnDriver BurnDrvmd_barbarianzxs = {
	"md_barbarianzxs", "md_barbarianami", NULL, NULL, "2015",
	"Barbarian the Ultimate Warrior - ZX Spectrum (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbarianzxsRomInfo, md_barbarianzxsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbarian - Amstrad CPC (HB)

static struct BurnRomInfo md_barbariancpcRomDesc[] = {
	{ "Barbarian Amstrad CPC (2014)(F.L).bin", 2296122, 0xd63f8446, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbariancpc)
STD_ROM_FN(md_barbariancpc)

struct BurnDriver BurnDrvmd_barbariancpc = {
	"md_barbariancpc", "md_barbarianami", NULL, NULL, "2014",
	"Barbarian the Ultimate Warrior - Amstrad CPC (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbariancpcRomInfo, md_barbariancpcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Death Sword - Apple II (HB)

static struct BurnRomInfo md_barbarianap2RomDesc[] = {
	{ "Death Sword Apple II (2014)(F.L).bin", 425616, 0x12a01f70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianap2)
STD_ROM_FN(md_barbarianap2)

struct BurnDriver BurnDrvmd_barbarianap2 = {
	"md_barbarianap2", "md_barbarianami", NULL, NULL, "2014",
	"Death Sword - Apple II (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbarianap2RomInfo, md_barbarianap2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Death Sword - PC CGA (HB)

static struct BurnRomInfo md_barbarianpcRomDesc[] = {
	{ "Death Sword PC CGA (2014)(F.L).bin", 446380, 0xaaeaeb87, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianpc)
STD_ROM_FN(md_barbarianpc)

struct BurnDriver BurnDrvmd_barbarianpc = {
	"md_barbarianpc", "md_barbarianami", NULL, NULL, "2014",
	"Death Sword - PC CGA (HB)\0", "raw conversion - no improvements", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_barbarianpcRomInfo, md_barbarianpcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barbarian Remake (HB)
static struct BurnRomInfo md_barbarianrkRomDesc[] = {
	{ "Barbarian Remake (2019)(Z-Team).bin", 2621440, 0xa887d287, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_barbarianrk)
STD_ROM_FN(md_barbarianrk)

struct BurnDriver BurnDrvmd_barbarianrk = {
	"md_barbarianrk", NULL, NULL, NULL, "2019",
	"Barbarian Remake (HB)\0", "Remake from Amiga-Atari ST game", "Z-Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_barbarianrkRomInfo, md_barbarianrkRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// BCD Verifier by Flamewing (HB, Test)
static struct BurnRomInfo md_bcdverifierRomDesc[] = {
	{ "bcd-verifier-u1.bin", 0x101bca, 0x0f9bbe9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bcdverifier)
STD_ROM_FN(md_bcdverifier)

struct BurnDriver BurnDrvmd_bcdverifier = {
	"md_bcdverifier", NULL, NULL, NULL, "2016",
	"BCD Verifier (HB, Test)\0", NULL, "Flamewing", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_bcdverifierRomInfo, md_bcdverifierRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Big's Fishing Derby (HB)
static struct BurnRomInfo md_bigfdRomDesc[] = {
	{ "Big's Fishing Derby (2014)(Flamewing).bin", 0x100000, 0xe1448457, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bigfd)
STD_ROM_FN(md_bigfd)

struct BurnDriver BurnDrvmd_bigfd = {
	"md_bigfd", NULL, NULL, NULL, "2014",
	"Big's Fishing Derby (HB)\0", NULL, "Flamewing", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_bigfdRomInfo, md_bigfdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Block'em Sock'em (HB)
static struct BurnRomInfo md_blkemsckemRomDesc[] = {
	{ "Block'em Sock'em (2022)(2nd Dimension).bin", 237312, 0x2f1a1655, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_blkemsckem)
STD_ROM_FN(md_blkemsckem)

struct BurnDriver BurnDrvmd_blkemsckem = {
	"md_blkemsckem", NULL, NULL, NULL, "2022",
	"Block'em Sock'em (HB)\0", NULL, "Second Dimension", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_blkemsckemRomInfo, md_blkemsckemRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blow'em Out (HB)
static struct BurnRomInfo md_blowemoutRomDesc[] = {
	{ "Blow'em Out (2017)(2nd Dimension).bin", 227136, 0x26f26c34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_blowemout)
STD_ROM_FN(md_blowemout)

struct BurnDriver BurnDrvmd_blowemout = {
	"md_blowemout", NULL, NULL, NULL, "2017",
	"Blow'em Out (HB)\0", NULL, "Second Dimension", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_blowemoutRomInfo, md_blowemoutRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bomb on Basic City (HB, v2.06)
static struct BurnRomInfo md_bobc206RomDesc[] = {
	{ "Bomb on Basic City v2.06 (2016)(Studio Vetea).bin", 0x1160a6, 0x8f4ac700, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bobc206)
STD_ROM_FN(md_bobc206)

struct BurnDriver BurnDrvmd_bobc206 = {
	"md_bobc206", NULL, NULL, NULL, "2016",
	"Bomb on Basic City (HB, v2.06)\0", NULL, "Studio Vetea", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bobc206RomInfo, md_bobc206RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bomb on Basic City SE (HB)
static struct BurnRomInfo md_bobcseRomDesc[] = {
	{ "Bomb on Basic City SE (2018)(Studio Vetea).bin", 3231410, 0x076232fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bobcse)
STD_ROM_FN(md_bobcse)

struct BurnDriver BurnDrvmd_bobcse = {
	"md_bobcse", NULL, NULL, NULL, "2018",
	"Bomb on Basic City Special Edition (HB)\0", "Included a demo of Papi Commando Tennis", "Studio Vetea", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bobcseRomInfo, md_bobcseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bone Marrow (HB)
static struct BurnRomInfo md_bonemarrowRomDesc[] = {
	{ "Bone Marrow (2021)(PSCD Games).bin", 2359296, 0xcde9ea8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonemarrow)
STD_ROM_FN(md_bonemarrow)

struct BurnDriver BurnDrvmd_bonemarrow = {
	"md_bonemarrow", NULL, NULL, NULL, "2021",
	"Bone Marrow (HB)\0", NULL, "PSCD Games, Hugepixel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_bonemarrowRomInfo, md_bonemarrowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bone Marrow Rebirth (HB, Demo v2)
static struct BurnRomInfo md_bmarrowdmRomDesc[] = {
	{ "Bone Marrow Rebirth Demo v2 (2021)(PSCD Games).bin", 1966080, 0x6428449c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bmarrowdm)
STD_ROM_FN(md_bmarrowdm)

struct BurnDriver BurnDrvmd_bmarrowdm = {
	"md_bmarrowdm", NULL, NULL, NULL, "2021",
	"Bone Marrow Rebirth (HB, Demo v2)\0", NULL, "PSCD Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_bmarrowdmRomInfo, md_bmarrowdmRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Brave Battle Saga - Legend of the Magic Warrior (World)
static struct BurnRomInfo md_bravebtlRomDesc[] = {
	{ "Brave Battle Saga - Legend of the Magic Warrior (World)(2017)(Piko Int.).bin", 2097152, 0xf4554624, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bravebtl)
STD_ROM_FN(md_bravebtl)

struct BurnDriver BurnDrvmd_bravebtl = {
	"md_bravebtl", NULL, NULL, NULL, "2017",
	"Brave Battle Saga - Legend of the Magic Warrior (World)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_bravebtlRomInfo, md_bravebtlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bug Hunt (HB)
static struct BurnRomInfo md_bughuntRomDesc[] = {
	{ "Bug Hunt (2015)(The AfroMonkeys).bin", 393216, 0x20175de8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bughunt)
STD_ROM_FN(md_bughunt)

struct BurnDriver BurnDrvmd_bughunt = {
	"md_bughunt", NULL, NULL, NULL, "2015",
	"Bug Hunt (HB)\0", NULL, "The AfroMonkeys", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_bughuntRomInfo, md_bughuntRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Canon - Legend of the New Gods (HB)
static struct BurnRomInfo md_canonRomDesc[] = {
	{ "Canon - Legend of the New Gods (2015)(Piko Interactive).bin", 2097152, 0xf85dd66d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_canon)
STD_ROM_FN(md_canon)

struct BurnDriver BurnDrvmd_canon = {
	"md_canon", NULL, NULL, NULL, "2015",
	"Canon - Legend of the New Gods (HB)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_canonRomInfo, md_canonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cannon Fire Chaos - Triple Threat (HB)
static struct BurnRomInfo md_cannonfireRomDesc[] = {
	{ "Cannon Fire Chaos - Triple Threat.bin", 1572864, 0xe6d6b7e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cannonfire)
STD_ROM_FN(md_cannonfire)

struct BurnDriver BurnDrvmd_cannonfire = {
	"md_cannonfire", NULL, NULL, NULL, "2018",
	"Cannon Fire Chaos - Triple Threat (HB)\0", NULL, "Good Deal Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_cannonfireRomInfo, md_cannonfireRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Capoeira Boy (HB)
static struct BurnRomInfo md_capoeiraRomDesc[] = {
	{ "Capoeira Boy (2020)(Manganga Team).bin", 655360, 0x2ac1f6ba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_capoeira)
STD_ROM_FN(md_capoeira)

struct BurnDriver BurnDrvmd_capoeira = {
	"md_capoeira", NULL, NULL, NULL, "2020",
	"Capoeira Boy (HB)\0", NULL, "Manganga Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_capoeiraRomInfo, md_capoeiraRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cascade (HB) (Unl)
static struct BurnRomInfo md_cascadeRomDesc[] = {
	{ "Cascade (Unl)(2015)(Super Fighter Team).md", 524288, 0xe7b287fe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cascade)
STD_ROM_FN(md_cascade)

struct BurnDriver BurnDrvmd_cascade = {
	"md_cascade", NULL, NULL, NULL, "2015",
	"Cascade (HB) (Unl)\0", NULL, "Super Fighter Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_cascadeRomInfo, md_cascadeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cave Story Doukutsu (HB, en, v0.8.0)
// https://github.com/andwn/cave-story-md/releases/tag/v0.8.0
static struct BurnRomInfo md_cavestoryRomDesc[] = {
	{ "Cave Story Doukutsu (HB, en, v0.8.0).bin", 0x400000, 0xd476a108, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cavestory)
STD_ROM_FN(md_cavestory)

struct BurnDriver BurnDrvmd_cavestory = {
	"md_cavestory", NULL, NULL, NULL, "2022-02",
	"Cave Story Doukutsu (HB, English, v0.8.0)\0", NULL, "Studio Pixel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_cavestoryRomInfo, md_cavestoryRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cave Story Doukutsu (HB, es, v0.8.0)
static struct BurnRomInfo md_cavestorysRomDesc[] = {
	{ "Cave Story Doukutsu (HB, es, v0.8.0).bin", 0x400000, 0x06405697, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cavestorys)
STD_ROM_FN(md_cavestorys)

struct BurnDriver BurnDrvmd_cavestorys = {
	"md_cavestorys", "md_cavestory", NULL, NULL, "2022-02",
	"Cave Story Doukutsu (HB, Spanish, v0.8.0)\0", NULL, "Studio Pixel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_cavestorysRomInfo, md_cavestorysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cave Story Doukutsu (HB, it, v0.8.0)
static struct BurnRomInfo md_cavestoryiRomDesc[] = {
	{ "Cave Story Doukutsu (HB, it, v0.8.0).bin", 0x400000, 0x8ec855f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cavestoryi)
STD_ROM_FN(md_cavestoryi)

struct BurnDriver BurnDrvmd_cavestoryi = {
	"md_cavestoryi", "md_cavestory", NULL, NULL, "2022-02",
	"Cave Story Doukutsu (HB, Italian, v0.8.0)\0", NULL, "Studio Pixel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_cavestoryiRomInfo, md_cavestoryiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cave Story Doukutsu (HB, ja, v0.8.0)
static struct BurnRomInfo md_cavestoryjRomDesc[] = {
	{ "Cave Story Doukutsu (HB, ja, v0.8.0).bin", 0x400000, 0x21acbe48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cavestoryj)
STD_ROM_FN(md_cavestoryj)

struct BurnDriver BurnDrvmd_cavestoryj = {
	"md_cavestoryj", "md_cavestory", NULL, NULL, "2022-02",
	"Cave Story Doukutsu (HB, Japanese, v0.8.0)\0", NULL, "Studio Pixel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_cavestoryjRomInfo, md_cavestoryjRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cave Story Doukutsu (HB, zh, v0.8.0)
static struct BurnRomInfo md_doukutsucRomDesc[] = {
	{ "Cave Story Doukutsu (HB, zh, v0.8.0).bin", 0x400000, 0x0c1517fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_doukutsuc)
STD_ROM_FN(md_doukutsuc)

struct BurnDriver BurnDrvmd_doukutsuc = {
	"md_cavestoryc", "md_cavestory", NULL, NULL, "2022-02",
	"Cave Story Doukutsu (HB, Chinese, v0.8.0)\0", NULL, "Studio Pixel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_doukutsucRomInfo, md_doukutsucRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chase (HB, v2.00)
static struct BurnRomInfo md_chaseRomDesc[] = {
	{ "Chase (v2.00).bin", 0x60000, 0x0b3426ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chase)
STD_ROM_FN(md_chase)

struct BurnDriver BurnDrvmd_chase = {
	"md_chase", NULL, NULL, NULL, "2014",
	"Chase (HB, v2.00)\0", NULL, "Jack Nolddor & Davidian", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_MAZE, 0,
	MegadriveGetZipName, md_chaseRomInfo, md_chaseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chip's Challenge (HB, v1.4)
static struct BurnRomInfo md_chipschRomDesc[] = {
	{ "chipschallenge_v14.bin", 1310720, 0xc57188bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chipsch)
STD_ROM_FN(md_chipsch)

struct BurnDriver BurnDrvmd_chipsch = {
	"md_chipsch", NULL, NULL, NULL, "2020",
	"Chip's Challenge (HB, v1.4)\0", NULL, "PortableDev", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_chipschRomInfo, md_chipschRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Citadel of Chaos, The (HB, v2.1)
static struct BurnRomInfo md_citadelRomDesc[] = {
	{ "Citadel of Chaos, The v2.1 (2021)(Studio Vetea).bin", 3807254, 0xbfe255e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_citadel)
STD_ROM_FN(md_citadel)

struct BurnDriver BurnDrvmd_citadel = {
	"md_citadel", NULL, NULL, NULL, "2021",
	"Citadel of Chaos, The (HB, v2.1)\0", NULL, "Studio Vetea", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_citadelRomInfo, md_citadelRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// City Connection (HB)
static struct BurnRomInfo md_cityconnectionRomDesc[] = {
	{ "City Connection (J)(2023)(Habit Soft).bin", 524288, 0x5d21d023, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cityconnection)
STD_ROM_FN(md_cityconnection)

struct BurnDriver BurnDrvmd_cityconnection = {
	"md_cityconnection", NULL, NULL, NULL, "2023",
	"City Connection (HB)\0", NULL, "Habit Soft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_cityconnectionRomInfo, md_cityconnectionRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Clan of Heroes - Generals of the Yang Family (HB)
static struct BurnRomInfo md_clanofheroesRomDesc[] = {
	{ "Clan of Heroes - Generals of the Yang Family (2018)(Piko Interactive).md", 2097152, 0xaeb3c10c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_clanofheroes)
STD_ROM_FN(md_clanofheroes)

struct BurnDriver BurnDrvmd_clanofheroes = {
	"md_clanofheroes", NULL, NULL, NULL, "2018",
	"Clan of Heroes - Generals of the Yang Family (HB)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_clanofheroesRomInfo, md_clanofheroesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Coffee Crisis (HB)
static struct BurnRomInfo md_coffeecrisisRomDesc[] = {
	{ "Coffee Crisis (HB).bin", 4194304, 0x8534ed7c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coffeecrisis)
STD_ROM_FN(md_coffeecrisis)

struct BurnDriver BurnDrvmd_coffeecrisis = {
	"md_coffeecrisis", NULL, NULL, NULL, "2017",
	"Coffee Crisis (HB)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_coffeecrisisRomInfo, md_coffeecrisisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Crazy Cars (HB)
static struct BurnRomInfo md_crazycarsRomDesc[] = {
	{ "Crazy Cars (2013)(F.L).bin", 101994, 0x52367ce9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crazycars)
STD_ROM_FN(md_crazycars)

struct BurnDriver BurnDrvmd_crazycars = {
	"md_crazycars", NULL, NULL, NULL, "2013",
	"Crazy Cars (HB)\0", "raw conversion of Amstrad CPC version", "F.L", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_crazycarsRomInfo, md_crazycarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Criatura (HB)
static struct BurnRomInfo md_criaturaRomDesc[] = {
	{ "Criatura (2023)(Manganga Team).bin", 1179648, 0x91d31b0f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_criatura)
STD_ROM_FN(md_criatura)

struct BurnDriver BurnDrvmd_criatura = {
	"md_criatura", NULL, NULL, NULL, "2023",
	"Criatura (HB)\0", NULL, "Manganga Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_criaturaRomInfo, md_criaturaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cursed Knight, The (HB)
static struct BurnRomInfo md_cuknightRomDesc[] = {
	{ "Cursed Knight, The (2022)(Broke Studio).bin", 4194304, 0x52c6ef0f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cuknight)
STD_ROM_FN(md_cuknight)

struct BurnDriver BurnDrvmd_cuknight = {
	"md_cuknight", NULL, NULL, NULL, "2022",
	"Cursed Knight, The (HB)\0", NULL, "Broke Studio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_cuknightRomInfo, md_cuknightRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Curse of Illmoore Bay, the (HB)
static struct BurnRomInfo md_curseibayRomDesc[] = {
	{ "Curse of Illmoore Bay, the (2021)(2nd Dimension).bin", 4189440, 0x7ad106c0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_curseibay)
STD_ROM_FN(md_curseibay)

struct BurnDriver BurnDrvmd_curseibay = {
	"md_curseibay", NULL, NULL, NULL, "2021",
	"Curse of Illmoore Bay, the (HB)\0", NULL, "Second Dimension", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_curseibayRomInfo, md_curseibayRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Custodian MD (HB) (Unl)
static struct BurnRomInfo md_custodianRomDesc[] = {
	{ "Custodian (Japan, USA, Europe) (Unl).bin", 1048576, 0x0712856b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_custodian)
STD_ROM_FN(md_custodian)

struct BurnDriver BurnDrvmd_custodian = {
	"md_custodian", NULL, NULL, NULL, "2018",
	"Custodian MD (HB) (Unl)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_custodianRomInfo, md_custodianRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Darius Extra Version (HB)
static struct BurnRomInfo md_dariusevRomDesc[] = {
	{ "Darius Extra Version (2020)(Strictly Limited Games).bin", 4194304, 0x7fdc6236, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dariusev)
STD_ROM_FN(md_dariusev)

struct BurnDriver BurnDrvmd_dariusev = {
	"md_dariusev", NULL, NULL, NULL, "2020",
	"Darius Extra Version (HB)\0", NULL, "Taito - Strictly Limited Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_dariusevRomInfo, md_dariusevRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Debtor (HB)
static struct BurnRomInfo md_debtorRomDesc[] = {
	{ "Debtor (2020)(PSCD Games).bin", 2228224, 0xc16c2aa4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_debtor)
STD_ROM_FN(md_debtor)

struct BurnDriver BurnDrvmd_debtor = {
	"md_debtor", NULL, NULL, NULL, "2020",
	"Debtor (HB)\0", NULL, "PSCD Games, SharkGame", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_debtorRomInfo, md_debtorRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Deflektor (HB, v1.1)
static struct BurnRomInfo md_deflektorRomDesc[] = {
	{ "deflektor_v11.bin", 655360, 0x36a58102, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deflektor)
STD_ROM_FN(md_deflektor)

struct BurnDriver BurnDrvmd_deflektor = {
	"md_deflektor", NULL, NULL, NULL, "2019",
	"Deflektor (HB, v1.1)\0", NULL, "PortableDev", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_deflektorRomInfo, md_deflektorRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Demons of Asteborg (HB, v1.1)
static struct BurnRomInfo md_asteborgRomDesc[] = {
	{ "Demons of Asteborg v1.1 (2021)(NEOfit Studios).bin", 15335424, 0xaacb216e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asteborg)
STD_ROM_FN(md_asteborg)

struct BurnDriver BurnDrvmd_asteborg = {
	"md_asteborg", NULL, NULL, NULL, "2021",
	"Demons of Asteborg (HB, v1.1)\0", NULL, "NeoFID Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2 | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_asteborgRomInfo, md_asteborgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Demons of Asteborg (HB, v1.0)
static struct BurnRomInfo md_asteborg10RomDesc[] = {
	{ "Demons of Asteborg v1.0 (2021)(NEOfit Studios).bin", 15397620, 0x67283fbe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asteborg10)
STD_ROM_FN(md_asteborg10)

struct BurnDriver BurnDrvmd_asteborg10 = {
	"md_asteborg10", "md_asteborg", NULL, NULL, "2021",
	"Demons of Asteborg (HB, v1.0)\0", NULL, "NeoFID Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2 | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_asteborg10RomInfo, md_asteborg10RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Demons of Asteborg (HB, Demo)
static struct BurnRomInfo md_asteborgdRomDesc[] = {
	{ "Demons of Asteborg DEMO (2020)(Neofid Studios).bin", 3407872, 0x8163415e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_asteborgd)
STD_ROM_FN(md_asteborgd)

struct BurnDriver BurnDrvmd_asteborgd = {
	"md_asteborgd", "md_asteborg", NULL, NULL, "2020",
	"Demons of Asteborg (HB, Demo)\0", NULL, "NeoFID Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_asteborgdRomInfo, md_asteborgdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devwill Too (HB)
static struct BurnRomInfo md_devwilltooRomDesc[] = {
	{ "Devwill Too.bin", 4194304, 0x34031793, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devwilltoo)
STD_ROM_FN(md_devwilltoo)

struct BurnDriver BurnDrvmd_devwilltoo = {
	"md_devwilltoo", NULL, NULL, NULL, "2020",
	"Devwill Too (HB, English)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_devwilltooRomInfo, md_devwilltooRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devwill Too (Portuguese) (HB)
static struct BurnRomInfo md_devwilltooptRomDesc[] = {
	{ "Devwill Too MD (Pt-BR) (2020)(Mega Cat Studios).bin", 3538944, 0xc14fc0d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devwilltoopt)
STD_ROM_FN(md_devwilltoopt)

struct BurnDriver BurnDrvmd_devwilltoopt = {
	"md_devwilltoopt", "md_devwilltoo", NULL, NULL, "2020",
	"Devwill Too (HB, Portuguese)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_devwilltooptRomInfo, md_devwilltooptRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Devwill Too Prologue (HB)
static struct BurnRomInfo md_devwillproRomDesc[] = {
	{ "Devwill Too Prologue (2022)(Amaweks).bin", 3168608, 0x736a07e2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devwillpro)
STD_ROM_FN(md_devwillpro)

struct BurnDriver BurnDrvmd_devwillpro = {
	"md_devwillpro", NULL, NULL, NULL, "2022",
	"Devwill Too Prologue (HB)\0", NULL, "Amaweks - Manganga Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_devwillproRomInfo, md_devwillproRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Diamond Thieves (HB)
static struct BurnRomInfo md_diathievesRomDesc[] = {
	{ "Diamond Thieves (2022)(Mega Cat Studios).bin", 2097152, 0xb66fa98f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_diathieves)
STD_ROM_FN(md_diathieves)

struct BurnDriver BurnDrvmd_diathieves = {
	"md_diathieves", NULL, NULL, NULL, "2022",
	"Diamond Thieves (HB)\0", NULL, "Manganga Team - Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_diathievesRomInfo, md_diathievesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Doroppu (HB)
static struct BurnRomInfo md_doroppuRomDesc[] = {
	{ "doroppu (2015)(repixel8).bin", 127420, 0xbb1eaeda, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_doroppu)
STD_ROM_FN(md_doroppu)

struct BurnDriver BurnDrvmd_doroppu = {
	"md_doroppu", NULL, NULL, NULL, "2015",
	"Doroppu (HB)\0", NULL, "Repixel8", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_doroppuRomInfo, md_doroppuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape 2042 (M4) (HB)
static struct BurnRomInfo md_escape2042RomDesc[] = {
	{ "Escape 2042 (HB).bin", 4194304, 0x0d81511c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_escape2042)
STD_ROM_FN(md_escape2042)

struct BurnDriver BurnDrvmd_escape2042 = {
	"md_escape2042", NULL, NULL, NULL, "2018",
	"Escape 2042 (M4) (HB)\0", NULL, "OrionSoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_escape2042RomInfo, md_escape2042RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape 2042 (HB, Hack Portuguese v1.1)
static struct BurnRomInfo md_escape2042ptRomDesc[] = {
	{ "Escape 2042 PT v1.1 (2022)(Afsblood).bin", 4194304, 0xf6fc656a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_escape2042pt)
STD_ROM_FN(md_escape2042pt)

struct BurnDriver BurnDrvmd_escape2042pt = {
	"md_escape2042pt", "md_escape2042", NULL, NULL, "2022",
	"Escape 2042 (HB, Hack Portuguese v1.1)\0", NULL, "Afsblood", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_escape2042ptRomInfo, md_escape2042ptRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Escape 2042 (HB, Hack Portuguese + Graphics v1.1)
static struct BurnRomInfo md_escape2042ptgRomDesc[] = {
	{ "cape 2042 PT v1.1 Hack Color (2022)(Afsblood).bin", 4194304, 0x0a51eccc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_escape2042ptg)
STD_ROM_FN(md_escape2042ptg)

struct BurnDriver BurnDrvmd_escape2042ptg = {
	"md_escape2042ptg", "md_escape2042", NULL, NULL, "2022",
	"Escape 2042 (HB, Hack Portuguese + Graphics v1.1)\0", "Hack Color: portas e cartoes coloridos", "Afsblood", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_escape2042ptgRomInfo, md_escape2042ptgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Eyra the Crow Maiden (HB)
static struct BurnRomInfo md_eyraRomDesc[] = {
	{ "Eyra the Crow Maiden (2021)(2nd Dimension).bin", 2083840, 0xd48289e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eyra)
STD_ROM_FN(md_eyra)

struct BurnDriver BurnDrvmd_eyra = {
	"md_eyra", NULL, NULL, NULL, "2021",
	"Eyra the Crow Maiden (HB)\0", NULL, "Second Dimension", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_eyraRomInfo, md_eyraRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Smarties (HB)
static struct BurnRomInfo md_fatalsmartiesRomDesc[] = {
	{ "fatalsmarties.bin", 0x56000, 0x79d461b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatalsmarties)
STD_ROM_FN(md_fatalsmarties)

struct BurnDriver BurnDrvmd_fatalsmarties = {
	"md_fatalsmarties", NULL, NULL, NULL, "2016",
	"Fatal Smarties (HB)\0", NULL, "Global Game Jam", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_fatalsmartiesRomInfo, md_fatalsmartiesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fight for Vengeance - Tournament Edition (HB)
static struct BurnRomInfo md_fightvengtRomDesc[] = {
	{ "Fight for Vengeance - Tournament Edition (2022)(Genesis Fight Engine).bin", 4194304, 0x813a61a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fightvengt)
STD_ROM_FN(md_fightvengt)

struct BurnDriver BurnDrvmd_fightvengt = {
	"md_fightvengt", NULL, NULL, NULL, "2022",
	"Fight for Vengeance - Tournament Edition (HB)\0", NULL, "Genesis Fight Engine", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fightvengtRomInfo, md_fightvengtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fight for Vengeance (HB)
static struct BurnRomInfo md_fightvengRomDesc[] = {
	{ "Fight for Vengeance (2021)(PSCD Games).bin", 4194304, 0x7db61291, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fightveng)
STD_ROM_FN(md_fightveng)

struct BurnDriver BurnDrvmd_fightveng = {
	"md_fightveng", "md_fightvengt", NULL, NULL, "2021",
	"Fight for Vengeance (HB)\0", NULL, "PSCD Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fightvengRomInfo, md_fightvengRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fix It Felix Jr. (HB)
static struct BurnRomInfo md_fixitfelixRomDesc[] = {
	{ "FixItFelixJr_AirwalkStudios.bin", 0x92f0e, 0x424ff451, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fixitfelix)
STD_ROM_FN(md_fixitfelix)

struct BurnDriver BurnDrvmd_fixitfelix = {
	"md_fixitfelixjr", NULL, NULL, NULL, "2014",
	"Fix It Felix Jr. (HB)\0", NULL, "TOBIKOMI / Airwalkstudios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ACTION, 0,
	MegadriveGetZipName, md_fixitfelixRomInfo, md_fixitfelixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Foxy Land (HB)
static struct BurnRomInfo md_foxylandRomDesc[] = {
	{ "Foxy Land (2020)(PSCD-Bug Studio).bin", 3014656, 0xba322eee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_foxyland)
STD_ROM_FN(md_foxyland)

struct BurnDriver BurnDrvmd_foxyland = {
	"md_foxyland", NULL, NULL, NULL, "2020",
	"Foxy Land (HB)\0", NULL, "PSCD Games, Bug Studio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_foxylandRomInfo, md_foxylandRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ghosts'n Goblins (HB, Ver.2021-11-01) (Unl)
// https://twitter.com/Fabio_16bits/status/1401829359980326912
static struct BurnRomInfo md_gnghbRomDesc[] = {
	{ "Ghosts'n Goblins (HB, Ver. 2021-11-01).bin", 0x4dd00, 0xfa4da29a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gnghb)
STD_ROM_FN(md_gnghb)

struct BurnDriver BurnDrvmd_gnghb = {
	"md_gnghb", NULL, NULL, NULL, "2021",
	"Ghosts'n Goblins (HB, Ver.2021-11-01) (Unl)\0", NULL, "Fabrice Fernandez", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gnghbRomInfo, md_gnghbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GLUF (HB)
static struct BurnRomInfo md_glufRomDesc[] = {
	{ "glufPD.bin", 0x100000, 0xce5afac9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gluf)
STD_ROM_FN(md_gluf)

struct BurnDriver BurnDrvmd_gluf = {
	"md_gluf", NULL, NULL, NULL, "2020",
	"GLUF (HB)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_glufRomInfo, md_glufRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// GraviBots (HB)
static struct BurnRomInfo md_gravibotsRomDesc[] = {
	{ "gravibots (2021)(retrosouls).bin", 1441792, 0x0d66d022, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gravibots)
STD_ROM_FN(md_gravibots)

struct BurnDriver BurnDrvmd_gravibots = {
	"md_gravibots", NULL, NULL, NULL, "2021",
	"GraviBots (HB)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gravibotsRomInfo, md_gravibotsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Griel's Quest for the Holy Porron (HB)
static struct BurnRomInfo md_grielqstRomDesc[] = {
	{ "Griel's Quest for the Holy Porron.bin", 2359296, 0xe1c3e75c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_grielqst)
STD_ROM_FN(md_grielqst)

struct BurnDriver BurnDrvmd_grielqst = {
	"md_grielqst", NULL, NULL, NULL, "2017",
	"Griel's Quest for the Holy Porron (HB)\0", NULL, "Oook!Lab", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_grielqstRomInfo, md_grielqstRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Handy Harvy (HB)
static struct BurnRomInfo md_handyharvyRomDesc[] = {
	{ "Handy Harvy (2018)(2nd Dimension).bin", 932864, 0xceb61752, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_handyharvy)
STD_ROM_FN(md_handyharvy)

struct BurnDriver BurnDrvmd_handyharvy = {
	"md_handyharvy", NULL, NULL, NULL, "2018",
	"Handy Harvy (HB)\0", NULL, "Second Dimension", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_handyharvyRomInfo, md_handyharvyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hellfire Saga - Sonic (GlobalHack)
static struct BurnRomInfo md_hellfiresagaRomDesc[] = {
	{ "Hellfire Saga - GlobalHack (2023)(Red Miso Studios).bin", 3911106, 0xa09a9c31, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hellfiresaga)
STD_ROM_FN(md_hellfiresaga)

struct BurnDriver BurnDrvmd_hellfiresaga = {
	"md_hellfiresaga", NULL, NULL, NULL, "2023",
	"Hellfire Saga - Sonic (GlobalHack)\0", NULL, "Red Miso Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hellfiresagaRomInfo, md_hellfiresagaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hunter Girls (HB)
static struct BurnRomInfo md_huntergirlsRomDesc[] = {
	{ "Hunter Girls (2023)(PSCD Games).bin", 3014656, 0xad9c96d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_huntergirls)
STD_ROM_FN(md_huntergirls)

struct BurnDriver BurnDrvmd_huntergirls = {
	"md_huntergirls", NULL, NULL, NULL, "2023",
	"Hunter Girls (HB)\0", NULL, "PSCD Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_huntergirlsRomInfo, md_huntergirlsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// INKtober (HB)
static struct BurnRomInfo md_inktoberRomDesc[] = {
	{ "inktober (brunni)(2019).bin", 917504, 0x09c7bb37, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_inktober)
STD_ROM_FN(md_inktober)

struct BurnDriver BurnDrvmd_inktober = {
	"md_inktober", NULL, NULL, NULL, "2019",
	"INKtober (HB)\0", NULL, "Brunni", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_inktoberRomInfo, md_inktoberRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Insane Pain (HB)
static struct BurnRomInfo md_insanepainRomDesc[] = {
	{ "Insane Pain (2022)(Blast Process Games).bin", 4194304, 0xe5487539, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_insanepain)
STD_ROM_FN(md_insanepain)

struct BurnDriver BurnDrvmd_insanepain = {
	"md_insanepain", NULL, NULL, NULL, "2022",
	"Insane Pain (HB)\0", NULL, "Blast Process Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_insanepainRomInfo, md_insanepainRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// International Karate plus Deluxe (HB)
static struct BurnRomInfo md_ikplusdxRomDesc[] = {
	{ "IK+ deluxe (2019)(Z-Team).bin", 2883584, 0xbf949018, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ikplusdx)
STD_ROM_FN(md_ikplusdx)

struct BurnDriver BurnDrvmd_ikplusdx = {
	"md_ikplusdx", NULL, NULL, NULL, "2019",
	"International Karate plus Deluxe (HB)\0", "Improved version of Amiga-Atari ST game", "Z-Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ikplusdxRomInfo, md_ikplusdxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jim Power - The Lost Dimension in 3D (HB)
static struct BurnRomInfo md_jimpowerpikoRomDesc[] = {
	{ "Jim Power - The Lost Dimension in 3D (2014)(Piko Int.).md", 1048576, 0xf9cd7079, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jimpowerpiko)
STD_ROM_FN(md_jimpowerpiko)

struct BurnDriver BurnDrvmd_jimpowerpiko = {
	"md_jimpowerpiko", NULL, NULL, NULL, "2014",
	"Jim Power - The Lost Dimension in 3D (HB)\0", "Originally developed by Loricel", "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_jimpowerpikoRomInfo, md_jimpowerpikoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Journey to Oblivion (HB, v0.2.7.2)
// source: https://mega-studios-jto.itch.io/journey-to-oblivion
static struct BurnRomInfo md_jtoblivionRomDesc[] = {
	{ "Journey to Oblivion HB v0.2.7.2 (2021)(Mega Studios).bin",3860224, 0x4db77bc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jtoblivion)
STD_ROM_FN(md_jtoblivion)

struct BurnDriver BurnDrvmd_jtoblivion = {
	"md_jtoblivion", NULL, NULL, NULL, "2021",
	"Journey to Oblivion (HB, v0.2.7.2)\0", NULL, "Mega Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_jtoblivionRomInfo, md_jtoblivionRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kromasphere (HB)
static struct BurnRomInfo md_kromasphereRomDesc[] = {
	{ "Kromasphere (2019)(2nd Dimension).bin", 944886, 0x9dab89e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kromasphere)
STD_ROM_FN(md_kromasphere)

struct BurnDriver BurnDrvmd_kromasphere = {
	"md_kromasphere", NULL, NULL, NULL, "2019",
	"Kromasphere (HB)\0", "Copyright 2017 CMC", "Second Dimension", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kromasphereRomInfo, md_kromasphereRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// L'Abbaye des Morts (HB)
static struct BurnRomInfo md_labbayeRomDesc[] = {
	{ "20170907 - AbbayeMD.bin", 0x3c0000, 0x8865ee24, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_labbaye)
STD_ROM_FN(md_labbaye)

struct BurnDriver BurnDrvmd_labbaye = {
	"md_labbaye", NULL, NULL, NULL, "2010",
	"L'Abbaye des Morts (HB)\0", NULL, "2010 Locomalito and Gryzor", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_labbayeRomInfo, md_labbayeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lethal Wedding (HB, build 0446)
static struct BurnRomInfo md_lweddingRomDesc[] = {
	{ "Lethal Wedding (build 0446)(2020)(Mega Cat Studios).bin", 3014656, 0x6d372fe4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lwedding)
STD_ROM_FN(md_lwedding)

struct BurnDriver BurnDrvmd_lwedding = {
	"md_lwedding", NULL, NULL, NULL, "2020",
	"Lethal Wedding (HB, build 0446)\0", "beta version, unreleased game", "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW | BDF_PROTOTYPE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_lweddingRomInfo, md_lweddingRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Life on Earth - Reimagined (HB)
static struct BurnRomInfo md_lifeonearthRomDesc[] = {
	{ "Life on Earth - Reimagined (2023)(Kai Magazine).bin", 4194304, 0x0c194b63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lifeonearth)
STD_ROM_FN(md_lifeonearth)

struct BurnDriver BurnDrvmd_lifeonearth = {
	"md_lifeonearth", NULL, NULL, NULL, "2023",
	"Life on Earth - Reimagined (HB)\0", NULL, "Kai Magazine Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lifeonearthRomInfo, md_lifeonearthRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Life on Mars (HB)
static struct BurnRomInfo md_lifeonmarsRomDesc[] = {
	{ "Life on Mars (2022)(Kai Magazine).bin", 4194304, 0xb256f14a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lifeonmars)
STD_ROM_FN(md_lifeonmars)

struct BurnDriver BurnDrvmd_lifeonmars = {
	"md_lifeonmars", NULL, NULL, NULL, "2022",
	"Life on Mars (HB)\0", NULL, "Kai Magazine Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lifeonmarsRomInfo, md_lifeonmarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lyle in Cube Sector (HB, v1.01)
static struct BurnRomInfo md_lylecsRomDesc[] = {
	{ "Lyle in Cube Sector v1.01 (2024)(Moftsoft).bin", 2097152, 0xc1c50812, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lylecs)
STD_ROM_FN(md_lylecs)

struct BurnDriver BurnDrvmd_lylecs = {
	"md_lylecs", NULL, NULL, NULL, "2024",
	"Lyle in Cube Sector (HB, v1.01)\0", NULL, "Moftsoft", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lylecsRomInfo, md_lylecsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Little Medusa (HB)
static struct BurnRomInfo md_littlemedusaRomDesc[] = {
	{ "Little Medusa (2018)(Mega Cat Studios).bin", 2097152, 0x931dd919, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_littlemedusa)
STD_ROM_FN(md_littlemedusa)

struct BurnDriver BurnDrvmd_littlemedusa = {
	"md_littlemedusa", NULL, NULL, NULL, "2018",
	"Little Medusa (HB)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_littlemedusaRomInfo, md_littlemedusaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mad Stalker - Full Metal Forth
static struct BurnRomInfo md_madstalkerRomDesc[] = {
	{ "Mad Stalker - Full Metal Forth.bin", 2097152, 0x64e7f1cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madstalker)
STD_ROM_FN(md_madstalker)

struct BurnDriver BurnDrvmd_madstalker = {
	"md_madstalker", NULL, NULL, NULL, "2020",
	"Mad Stalker - Full Metal Forth\0", NULL, "Columbus Circle", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_madstalkerRomInfo, md_madstalkerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic Pockets (HB)
static struct BurnRomInfo md_magicpocketsRomDesc[] = {
	{ "Magic Pockets (2018)(The Bitmap Brothers).bin", 3407872, 0xcdfc764f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_magicpockets)
STD_ROM_FN(md_magicpockets)

struct BurnDriver BurnDrvmd_magicpockets = {
	"md_magicpockets", NULL, NULL, NULL, "2018",
	"Magic Pockets (HB)\0", NULL, "The Bitmap Brothers", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_magicpocketsRomInfo, md_magicpocketsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Masiaka (HB, Tech-Demo)
static struct BurnRomInfo md_masiakaRomDesc[] = {
	{ "Masiaka Tech-Demo (2017)(Resistance).bin", 0x300000, 0xd237b970, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_masiaka)
STD_ROM_FN(md_masiaka)

struct BurnDriver BurnDrvmd_masiaka = {
	"md_masiaka", NULL, NULL, NULL, "2017",
	"Masiaka (HB, Tech-Demo)\0", NULL, "Resistance", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_DEMO | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_masiakaRomInfo, md_masiakaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega 3D Noah's Ark (HB)
static struct BurnRomInfo md_m3dnoahRomDesc[] = {
	{ "Mega 3D Noah's Ark (2017)(Piko Interactive).md", 2097152, 0x409165c2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_m3dnoah)
STD_ROM_FN(md_m3dnoah)

struct BurnDriver BurnDrvmd_m3dnoah = {
	"md_m3dnoah", NULL, NULL, NULL, "2017",
	"Mega 3D Noah's Ark (HB)\0", "Original game by Wisdom Tree", "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_MAZE, 0,
	MegadriveGetZipName, md_m3dnoahRomInfo, md_m3dnoahRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Casanova (HB, v1.3)
static struct BurnRomInfo md_casanovaRomDesc[] = {
	{ "Mega Casanova (W)(REV02)(2016)(TLT - Tomahomae).bin", 1890898, 0xc03fd6a1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_casanova)
STD_ROM_FN(md_casanova)

struct BurnDriver BurnDrvmd_casanova = {
	"md_casanova", NULL, NULL, NULL, "2016",
	"Mega Casanova (HB, v1.3)\0", "Adult game", "TLT, Tomahomae", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_casanovaRomInfo, md_casanovaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Casanova 2 (HB, v1.0)
static struct BurnRomInfo md_casanova2RomDesc[] = {
	{ "Mega Casanova 2 (W)(REV01)(2021)(TLT - Tomahomae).bin", 1788570, 0x6e570d41, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_casanova2)
STD_ROM_FN(md_casanova2)

struct BurnDriver BurnDrvmd_casanova2 = {
	"md_casanova2", NULL, NULL, NULL, "2021",
	"Mega Casanova 2 (HB, v1.0)\0", "Adult game", "TLT, Tomahomae", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_casanova2RomInfo, md_casanova2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Casanova 3 (HB, v1.0)
static struct BurnRomInfo md_casanova3RomDesc[] = {
	{ "Mega Casanova 3 (W)(REV00)(2022)(TLT - Tomahomae).bin", 1341556, 0xb1bfedf9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_casanova3)
STD_ROM_FN(md_casanova3)

struct BurnDriver BurnDrvmd_casanova3 = {
	"md_casanova3", NULL, NULL, NULL, "2022",
	"Mega Casanova 3 (HB, v1.0)\0", "Adult game", "TLT, Tomahomae", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_casanova3RomInfo, md_casanova3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Cheril Perils (HB)
static struct BurnRomInfo md_cperilsRomDesc[] = {
	{ "Mega Cheril Perils (2016)(The Mojon Twins).bin", 0x1fdf80, 0x77afa0b1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cperils)
STD_ROM_FN(md_cperils)

struct BurnDriver BurnDrvmd_cperils = {
	"md_cperils", NULL, NULL, NULL, "2016",
	"Mega Cheril Perils (HB)\0", NULL, "The Mojon Twins", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_cperilsRomInfo, md_cperilsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Man The Sequel Wars - Episode Red (HB)
static struct BurnRomInfo md_megamanswredRomDesc[] = {
	{ "Mega Man The Sequel Wars - Episode Red v1.1 (2023)(Woodfrog).bin", 4194304, 0x9c6433ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megamanswred)
STD_ROM_FN(md_megamanswred)

struct BurnDriver BurnDrvmd_megamanswred = {
	"md_megamanswred", NULL, NULL, NULL, "2023",
	"Mega Man The Sequel Wars - Episode Red (HB, v1.1)\0", NULL, "Woodfrog", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megamanswredRomInfo, md_megamanswredRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Marble World (HB, v1.90)
static struct BurnRomInfo md_mmworldRomDesc[] = {
	{ "Mega Marble World v1.9 (2018)(Mega Cat Studios).bin", 2621440, 0x438c7511, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmworld)
STD_ROM_FN(md_mmworld)

struct BurnDriver BurnDrvmd_mmworld = {
	"md_mmworld", NULL, NULL, NULL, "2018",
	"Mega Marble World (HB, v1.90)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_mmworldRomInfo, md_mmworldRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Marble World 2 (HB, v1.03)
static struct BurnRomInfo md_mmworld2RomDesc[] = {
	{ "Mega Marble World 2 v1.03 (2021)(T-Arts Studios).bin", 1507328, 0x68222004, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmworld2)
STD_ROM_FN(md_mmworld2)

struct BurnDriver BurnDrvmd_mmworld2 = {
	"md_mmworld2", NULL, NULL, NULL, "2021",
	"Mega Marble World 2 (HB, v1.03)\0", NULL, "T-Arts Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_mmworld2RomInfo, md_mmworld2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Mindtris (HB, v1.2)
static struct BurnRomInfo md_mindtrisRomDesc[] = {
	{ "megamindtris (2018)(1985 alternativo)(v1.2).bin", 1114112, 0xbef5482f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mindtris)
STD_ROM_FN(md_mindtris)

struct BurnDriver BurnDrvmd_mindtris = {
	"md_mindtris", NULL, NULL, NULL, "2018",
	"Mega Mindtris (HB, v1.2)\0", NULL, "1985 Alternativo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_mindtrisRomInfo, md_mindtrisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Q-Bert (HB, v1.2)
static struct BurnRomInfo md_megaqbert12RomDesc[] = {
	{ "Mega Qbert v1.2 (2016)(Jaklub).bin", 0x80000, 0x8e48002d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaqbert12)
STD_ROM_FN(md_megaqbert12)

struct BurnDriver BurnDrvmd_megaqbert12 = {
	"md_megaqbert12", NULL, NULL, NULL, "2016",
	"Mega Q-Bert (HB, v1.2)\0", NULL, "Jaklub", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_megaqbert12RomInfo, md_megaqbert12RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Queen Journey, The (HB)
static struct BurnRomInfo md_queenjourRomDesc[] = {
	{ "Mega Queen Journey, The (2019)(DnWn).bin", 4170516, 0x3c8f21e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_queenjour)
STD_ROM_FN(md_queenjour)

struct BurnDriver BurnDrvmd_queenjour = {
	"md_queenjour", NULL, NULL, NULL, "2019",
	"Mega Queen Journey, The (HB)\0", NULL, "DnWn", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW | BDF_DEMO, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_queenjourRomInfo, md_queenjourRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Slow Mole (HB, v0.8)
static struct BurnRomInfo md_megasmoleRomDesc[] = {
	{ "Mega Slow Mole v0.8 (2024)(Slow Mole Studio).bin", 2621440, 0x0c53cda2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megasmole)
STD_ROM_FN(md_megasmole)

struct BurnDriver BurnDrvmd_megasmole = {
	"md_megasmole", NULL, NULL, NULL, "2024",
	"Mega Slow Mole (HB, v0.8)\0", NULL, "Slow Mole Studio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megasmoleRomInfo, md_megasmoleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega Turrican - Director's Cut (HB)
static struct BurnRomInfo md_megaturrdcRomDesc[] = {
	{ "Mega Turrican - Director's Cut (2021)(Strictly Limited Games).smd", 5242880, 0x3226ec36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaturrdc)
STD_ROM_FN(md_megaturrdc)

struct BurnDriver BurnDrvmd_megaturrdc = {
	"md_megaturrdc", NULL, NULL, NULL, "2021",
	"Mega Turrican - Director's Cut (HB)\0", NULL, "Factor 5 - Strictly Limited Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megaturrdcRomInfo, md_megaturrdcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MegaXmas (HB)
static struct BurnRomInfo md_megaxmasRomDesc[] = {
	{ "MegaXmas (2020)(Nekojita).bin", 393216, 0x50348291, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaxmas)
STD_ROM_FN(md_megaxmas)

struct BurnDriver BurnDrvmd_megaxmas = {
	"md_megaxmas", NULL, NULL, NULL, "2020",
	"MegaXmas (HB)\0", NULL, "Nekojita", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_megaxmasRomInfo, md_megaxmasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Metal Blast 2277 (HB)
static struct BurnRomInfo md_mb2277RomDesc[] = {
	{ "Metal Blast 2277 (rev01-2019)(T-Arts Studio).bin", 2647322, 0xdfd4fe49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mb2277)
STD_ROM_FN(md_mb2277)

struct BurnDriver BurnDrvmd_mb2277 = {
	"md_mb2277", NULL, NULL, NULL, "2019",
	"Metal Blast 2277 (HB)\0", NULL, "T-Arts Studio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_mb2277RomInfo, md_mb2277RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Metal Dragon (HB)
static struct BurnRomInfo md_metaldragonRomDesc[] = {
	{ "Metal Dragon (2021)(Kai Magazine Software).bin", 4194304, 0x96cb4ef2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_metaldragon)
STD_ROM_FN(md_metaldragon)

struct BurnDriver BurnDrvmd_metaldragon = {
	"md_metaldragon", NULL, NULL, NULL, "2021-22",
	"Metal Dragon (HB)\0", NULL, "Kai Magazine Software", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_metaldragonRomInfo, md_metaldragonRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// MeteoRain (HB)
static struct BurnRomInfo md_meteorainRomDesc[] = {
	{ "MeteoRain (2019)(Dr. Ludus).bin", 262144, 0xffb5154e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_meteorain)
STD_ROM_FN(md_meteorain)

struct BurnDriver BurnDrvmd_meteorain = {
	"md_meteorain", NULL, NULL, NULL, "2019",
	"MeteoRain (HB)\0", NULL, "Dr. Ludus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_meteorainRomInfo, md_meteorainRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mikeyeldey95 (HB)
static struct BurnRomInfo md_mikeyeldey95RomDesc[] = {
	{ "Mikeyeldey95 (2022)(Mikey Eldey).bin", 4194304, 0x4cb9078f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mikeyeldey95)
STD_ROM_FN(md_mikeyeldey95)

struct BurnDriver BurnDrvmd_mikeyeldey95 = {
	"md_mikeyeldey95", NULL, NULL, NULL, "2022",
	"Mikeyeldey95 (HB)\0", NULL, "Mikey Eldey", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_mikeyeldey95RomInfo, md_mikeyeldey95RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mikeyeldey the album (HB)
static struct BurnRomInfo md_mikeyeldeyRomDesc[] = {
	{ "Mikeyeldey the album (2022)(Mikey Eldey).bin", 4063232, 0xf3db5f3a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mikeyeldey)
STD_ROM_FN(md_mikeyeldey)

struct BurnDriver BurnDrvmd_mikeyeldey = {
	"md_mikeyeldey", NULL, NULL, NULL, "2022",
	"Mikeyeldey the album (HB)\0", NULL, "Mikey Eldey", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_mikeyeldeyRomInfo, md_mikeyeldeyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Miniplanets (HB, Rev03)
static struct BurnRomInfo md_miniplanetsRomDesc[] = {
	{ "Miniplanets (2017)(Sik)(Rev3).bin", 262144, 0x8ea40d2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_miniplanets)
STD_ROM_FN(md_miniplanets)

struct BurnDriver BurnDrvmd_miniplanets = {
	"md_miniplanets", NULL, NULL, NULL, "2016-17",
	"Miniplanets (HB, Rev03)\0", NULL, "Sik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ACTION, 0,
	MegadriveGetZipName, md_miniplanetsRomInfo, md_miniplanetsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Miniplanets Remix (HB, Rev04)
static struct BurnRomInfo md_miniplanrmxRomDesc[] = {
	{ "Miniplanets Remix (2022)(Sik)(Rev4).bin", 524288, 0x6c531b9d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_miniplanrmx)
STD_ROM_FN(md_miniplanrmx)

struct BurnDriver BurnDrvmd_miniplanrmx = {
	"md_miniplanrmx", NULL, NULL, NULL, "2022",
	"Miniplanets Remix (HB, Rev04)\0", NULL, "Sik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ACTION, 0,
	MegadriveGetZipName, md_miniplanrmxRomInfo, md_miniplanrmxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Misplaced (HB, English)
// https://retrosouls.itch.io/misplaced
static struct BurnRomInfo md_misplacedRomDesc[] = {
	{ "Misplaced EN (2019)(RetroSouls).bin", 0x0e0000, 0xd79fd3ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_misplaced)
STD_ROM_FN(md_misplaced)

struct BurnDriver BurnDrvmd_misplaced = {
	"md_misplaced", NULL, NULL, NULL, "2019",
	"Misplaced (HB, English)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_misplacedRomInfo, md_misplacedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Misplaced (HB, Russian)
// https://retrosouls.itch.io/misplaced
static struct BurnRomInfo md_misplacedrRomDesc[] = {
	{ "Misplaced RU (2019)(RetroSouls).bin", 0x0e0000, 0x1997b949, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_misplacedr)
STD_ROM_FN(md_misplacedr)

struct BurnDriver BurnDrvmd_misplacedr = {
	"md_misplacedr", "md_misplaced", NULL, NULL, "2019",
	"Misplaced (HB, Russian)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_misplacedrRomInfo, md_misplacedrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NavaBarone (HB)
static struct BurnRomInfo md_navabaroneRomDesc[] = {
	{ "NavaBarone (2017)(neko800, kunukunu777).bin", 524288, 0xa4dc99ac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_navabarone)
STD_ROM_FN(md_navabarone)

struct BurnDriver BurnDrvmd_navabarone = {
	"md_navabarone", NULL, NULL, NULL, "2017",
	"NavaBarone (HB)\0", NULL, "neko800 and kunukunu777", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_navabaroneRomInfo, md_navabaroneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Odeio Carros (HB)
static struct BurnRomInfo md_odecarrosRomDesc[] = {
	{ "Odeio Carros (2020)(Menos Playstation).bin", 917504, 0x770969b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_odecarros)
STD_ROM_FN(md_odecarros)

struct BurnDriver BurnDrvmd_odecarros = {
	"md_odecarros", NULL, NULL, NULL, "2020",
	"Odeio Carros (HB)\0", NULL, "Menos Playstation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_odecarrosRomInfo, md_odecarrosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Oh Mummy (HB)
static struct BurnRomInfo md_ohmummyRomDesc[] = {
	{ "Oh Mummy (2013)(1985 Alternativo).bin", 0x100000, 0xb7f68b29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ohmummy)
STD_ROM_FN(md_ohmummy)

struct BurnDriver BurnDrvmd_ohmummy = {
	"md_ohmummy", NULL, NULL, NULL, "2013",
	"Oh Mummy (HB)\0", NULL, "1985 Alternativo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE, 0,
	MegadriveGetZipName, md_ohmummyRomInfo, md_ohmummyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Old Towers (HB, v1.2)
static struct BurnRomInfo md_oldtowersRomDesc[] = {
	{ "Old Towers v1.2 (2019)(RetroSouls).bin", 0xc0000, 0xd875e97d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_oldtowers)
STD_ROM_FN(md_oldtowers)

struct BurnDriver BurnDrvmd_oldtowers = {
	"md_oldtowers", NULL, NULL, NULL, "2019",
	"Old Towers (HB, v1.2)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_oldtowersRomInfo, md_oldtowersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Omega Blast (HB, v0.9)
static struct BurnRomInfo md_omeblastRomDesc[] = {
	{ "Omega Blast v0.9 (2018)(Nendo).bin", 524288, 0x62cbb56c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_omeblast)
STD_ROM_FN(md_omeblast)

struct BurnDriver BurnDrvmd_omeblast = {
	"md_omeblast", NULL, NULL, NULL, "2018",
	"Omega Blast (HB, v0.9)\0", NULL, "Nendo", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_omeblastRomInfo, md_omeblastRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// P.O.D. Proof Of Destruction (GlobalHack)
static struct BurnRomInfo md_podRomDesc[] = {
	{ "P.O.D. Proof Of Destruction GlobalHack (2021)(FUTURA).bin", 2097152, 0xbd233cdf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pod)
STD_ROM_FN(md_pod)

struct BurnDriver BurnDrvmd_pod = {
	"md_pod", NULL, NULL, NULL, "2021",
	"P.O.D. Proof Of Destruction (GlobalHack)\0", "GlobalHack of Lotus II RECS", "FUTURA", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_podRomInfo, md_podRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Papi Commando MD (HB)
static struct BurnRomInfo md_papiRomDesc[] = {
	{ "Papi Commando MD (2015)(Studio Vetea).bin", 0x34e564, 0xec16d540, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_papi)
STD_ROM_FN(md_papi)

struct BurnDriver BurnDrvmd_papi = {
	"md_papi", NULL, NULL, NULL, "2015",
	"Papi Commando MD (HB)\0", NULL, "Studio Vetea", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_papiRomInfo, md_papiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Papi Commando Remix MD (HB)
static struct BurnRomInfo md_papirmxRomDesc[] = {
	{ "Papi Commando Remix MD (2018)(Studio Vetea).bin", 3698576, 0xd15c6391, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_papirmx)
STD_ROM_FN(md_papirmx)

struct BurnDriver BurnDrvmd_papirmx = {
	"md_papirmx", "md_papi", NULL, NULL, "2018",
	"Papi Commando Remix MD (HB)\0", NULL, "Studio Vetea", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_papirmxRomInfo, md_papirmxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Papi Commando - Second Blood (HB)
static struct BurnRomInfo md_papi2RomDesc[] = {
	{ "Papi Commando - Second Blood (2020)(Studio Vetea).bin", 2898250, 0xbe7716af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_papi2)
STD_ROM_FN(md_papi2)

struct BurnDriver BurnDrvmd_papi2 = {
	"md_papi2", NULL, NULL, NULL, "2020",
	"Papi Commando - Second Blood (HB)\0", NULL, "Studio Vetea", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_papi2RomInfo, md_papi2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

static INT32 PsolarInit()
{
	psolarmode = 1;

	return MegadriveInit();
}

// Pier Solar and the Great Architects (World) (En,Es,Pt) (Rev C) (HB)
static struct BurnRomInfo md_psolarRomDesc[] = {
	{ "Pier Solar and the Great Architects (World) (En,Es,Pt) (Rev C) (Unl).md", 0x800000, 0xDFB94F1B, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psolar)
STD_ROM_FN(md_psolar)

struct BurnDriver BurnDrvmd_psolar = {
	"md_psolar", NULL, NULL, NULL, "2010",
	"Pier Solar and the Great Architects (World) (En,Es,Pt) (Rev C) (HB)\0", "64 Mbit (8MB) cartridge", "WaterMelon", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_psolarRomInfo, md_psolarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	PsolarInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pringles the Game (HB)
static struct BurnRomInfo md_pringlesRomDesc[] = {
	{ "Pringles the Game (2009)(Future Drive).bin", 457064, 0xa397bc66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pringles)
STD_ROM_FN(md_pringles)

struct BurnDriver BurnDrvmd_pringles = {
	"md_pringles", NULL, NULL, NULL, "2009",
	"Pringles the Game (HB)\0", NULL, "Future Drive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pringlesRomInfo, md_pringlesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Project MD (HB)
static struct BurnRomInfo md_projmdRomDesc[] = {
	{ "Project MD (2012-04-29)(Sik).bin", 786432, 0xb193e549, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_projmd)
STD_ROM_FN(md_projmd)

struct BurnDriver BurnDrvmd_projmd = {
	"md_projmd", NULL, NULL, NULL, "2012",
	"Project MD (HB)\0", NULL, "Sik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_projmdRomInfo, md_projmdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Puzzli (HB, v1.1)
static struct BurnRomInfo md_puzzliRomDesc[] = {
	{ "Puzzli v1.1 (2020)(PortableDev).bin", 1179648, 0x53eca258, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puzzli)
STD_ROM_FN(md_puzzli)

struct BurnDriver BurnDrvmd_puzzli = {
	"md_puzzli", NULL, NULL, NULL, "2020",
	"Puzzli (HB, v1.1)\0", NULL, "PortableDev - Alekmaul", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puzzliRomInfo, md_puzzliRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// PuzzuL SwaP (HB, Final Beta)
static struct BurnRomInfo md_puzzulswapRomDesc[] = {
	{ "PuzzuL SwaP - final beta (2023)(GF64).bin", 288320, 0x22072371, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puzzulswap)
STD_ROM_FN(md_puzzulswap)

struct BurnDriver BurnDrvmd_puzzulswap = {
	"md_puzzulswap", NULL, NULL, NULL, "2023",
	"PuzzuL SwaP (HB, Final Beta)\0", NULL, "GF64", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puzzulswapRomInfo, md_puzzulswapRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rick Dangerous (HB, Russia)
static struct BurnRomInfo md_rickdangRomDesc[] = {
	{ "Rick Dangerous (Unl)(2011)(Foxy and Pascal).bin", 0x3e0000, 0x545cbbe4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rickdang)
STD_ROM_FN(md_rickdang)

struct BurnDriver BurnDrvmd_rickdang = {
	"md_rickdang", NULL, NULL, NULL, "2011",
	"Rick Dangerous (HB, Russia)\0", NULL, "Foxy and Pascal", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rickdangRomInfo, md_rickdangRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rick Dangerous 2 (HB, v1.1)
static struct BurnRomInfo md_rickdang2RomDesc[] = {
	{ "Rick Dangerous 2 v1.1 - FrameCounterFix (2018)(PortableDev).bin", 1310720, 0xcc8de65e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rickdang2)
STD_ROM_FN(md_rickdang2)

struct BurnDriver BurnDrvmd_rickdang2 = {
	"md_rickdang2", NULL, NULL, NULL, "2018",
	"Rick Dangerous 2 (HB, v1.1)\0", NULL, "PortableDev - Alekmaul", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rickdang2RomInfo, md_rickdang2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rocket Panda - Into the Unknown (HB, v4)
static struct BurnRomInfo md_rpunknownRomDesc[] = {
	{ "Rocket Panda Into the Unknown v4 (2022)(SpacePants Games).bin", 2097152, 0x70d33705, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rpunknown)
STD_ROM_FN(md_rpunknown)

struct BurnDriver BurnDrvmd_rpunknown = {
	"md_rpunknown", NULL, NULL, NULL, "2021-22",
	"Rocket Panda: Into the Unknown (HB, v4)\0", NULL, "SpacePants Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_rpunknownRomInfo, md_rpunknownRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Romeow and Julicat (HB)
static struct BurnRomInfo md_romeowRomDesc[] = {
	{ "Romeow and Julicat (2020)(Mega Cat Studio).bin", 2097152, 0x46f895d5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_romeow)
STD_ROM_FN(md_romeow)

struct BurnDriver BurnDrvmd_romeow = {
	"md_romeow", NULL, NULL, NULL, "2020",
	"Romeow and Julicat (HB)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_romeowRomInfo, md_romeowRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Runes (HB)
static struct BurnRomInfo md_runesRomDesc[] = {
	{ "Runes (2020)(Cannibal Cat).bin", 524288, 0x848256d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_runes)
STD_ROM_FN(md_runes)

struct BurnDriver BurnDrvmd_runes = {
	"md_runes", NULL, NULL, NULL, "2020",
	"Runes (HB)\0", NULL, "Cannibal Cat", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_runesRomInfo, md_runesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Master System Brawl (HB)
// source: https://bonaf.itch.io/master-system-brawl
static struct BurnRomInfo md_smsbrawlRomDesc[] = {
	{ "Sega Master System Brawl (2021)(Bonaf).bin", 0x2a52e8, 0x8ad82cf6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smsbrawl)
STD_ROM_FN(md_smsbrawl)

struct BurnDriver BurnDrvmd_smsbrawl = {
	"md_smsbrawl", NULL, NULL, NULL, "2021",
	"Sega Master System Brawl (HB)\0", NULL, "Bonaf", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_smsbrawlRomInfo, md_smsbrawlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shylax (HB, v0.1)
static struct BurnRomInfo md_shylaxRomDesc[] = {
	{ "Shylax v0.1 (2023)(manu2097).bin", 1310720, 0xb29cf25d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shylax)
STD_ROM_FN(md_shylax)

struct BurnDriver BurnDrvmd_shylax = {
	"md_shylax", NULL, NULL, NULL, "2023",
	"Shylax (HB, v0.1)\0", NULL, "manu2097", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_shylaxRomInfo, md_shylaxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Smart Mouse (HB)
static struct BurnRomInfo md_smartmouseRomDesc[] = {
	{ "Smart Mouse (2017)(Piko Interactive).bin", 524288, 0xfb01c832, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smartmouse)
STD_ROM_FN(md_smartmouse)

struct BurnDriver BurnDrvmd_smartmouse = {
	"md_smartmouse", "md_huanle", NULL, NULL, "2017",
	"Smart Mouse (HB)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MAZE | GBF_ACTION, 0,
	MegadriveGetZipName, md_smartmouseRomInfo, md_smartmouseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Flies Attack (HB)
static struct BurnRomInfo md_sfattackRomDesc[] = {
	{ "Space Flies Attack (2021)(Timber Studio).bin", 1376256, 0x8ebed810, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sfattack)
STD_ROM_FN(md_sfattack)

struct BurnDriver BurnDrvmd_sfattack = {
	"md_sfattack", NULL, NULL, NULL, "2021",
	"Space Flies Attack (HB)\0", NULL, "Timber Studio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_sfattackRomInfo, md_sfattackRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Space Invaders (HB, v1.6)
static struct BurnRomInfo md_spaceinvRomDesc[] = {
	{ "Space Invaders v1.6 (2022)(SplinterGU).bin", 262144, 0x23402deb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spaceinv)
STD_ROM_FN(md_spaceinv)

struct BurnDriver BurnDrvmd_spaceinv = {
	"md_spaceinv", NULL, NULL, NULL, "2022",
	"Space Invaders (HB, v1.6)\0", NULL, "SplinterGU", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_spaceinvRomInfo, md_spaceinvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spax (HB)
static struct BurnRomInfo md_spaxRomDesc[] = {
	{ "Spax (2022)(Nomad Natan).bin", 842240, 0xaf859ad5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spax)
STD_ROM_FN(md_spax)

struct BurnDriver BurnDrvmd_spax = {
	"md_spax", NULL, NULL, NULL, "2022",
	"Spax (HB)\0", NULL, "Nomad Natan", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spaxRomInfo, md_spaxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Star Chaser (HB)
static struct BurnRomInfo md_starchaserRomDesc[] = {
	{ "Star Chaser (2014-07-05)(Sik).bin", 0x00b240, 0xfadd25a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_starchaser)
STD_ROM_FN(md_starchaser)

struct BurnDriver BurnDrvmd_starchaser = {
	"md_starchaser", NULL, NULL, NULL, "2014",
	"Star Chaser (HB)\0", NULL, "Sik", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_starchaserRomInfo, md_starchaserRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
 	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
 	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Stone Protectors (HB)
static struct BurnRomInfo md_stonprotpikoRomDesc[] = {
	{ "Stone Protectors (2022)(Piko Int.).bin", 2097152, 0x43709ea7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_stonprotpiko)
STD_ROM_FN(md_stonprotpiko)

struct BurnDriver BurnDrvmd_stonprotpiko = {
	"md_stonprotpiko", NULL, NULL, NULL, "2022",
	"Stone Protectors (HB)\0", "Original title by Vic Tokai", "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_stonprotpikoRomInfo, md_stonprotpikoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Submarine Canyon Bomber vs Marine Aliens (HB)
static struct BurnRomInfo md_subvsaliensRomDesc[] = {
	{ "Submarine Canyon Bomber vs Marine Aliens (2017)(Hideki Konishi).bin", 393216, 0x85b3a408, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subvsaliens)
STD_ROM_FN(md_subvsaliens)

struct BurnDriver BurnDrvmd_subvsaliens = {
	"md_subvsaliens", NULL, NULL, NULL, "2017",
	"Submarine Canyon Bomber vs Marine Aliens (HB)\0", NULL, "Hideki Konishi", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subvsaliensRomInfo, md_subvsaliensRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sumo Slam (HB)
static struct BurnRomInfo md_sumoslamRomDesc[] = {
	{ "Sumo Slam (2013)(Segaman Prod.).bin", 131072, 0xb3501317, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sumoslam)
STD_ROM_FN(md_sumoslam)

struct BurnDriver BurnDrvmd_sumoslam = {
	"md_sumoslam", NULL, NULL, NULL, "2013",
	"Sumo Slam (HB)\0", NULL, "Segaman Production", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 4, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_sumoslamRomInfo, md_sumoslamRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Heavy Duty (HB)
static struct BurnRomInfo md_shdutyRomDesc[] = {
	{ "Super Heavy Duty (2020)(Playnautic).md", 4194304, 0x81f8e890, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shduty)
STD_ROM_FN(md_shduty)

struct BurnDriver BurnDrvmd_shduty = {
	"md_shduty", NULL, NULL, NULL, "2020",
	"Super Heavy Duty (HB)\0", NULL, "Playnautic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_shdutyRomInfo, md_shdutyRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Maximum Overkill (HB)
static struct BurnRomInfo md_smoverkillRomDesc[] = {
	{ "Super Maximum Overkill v1.0 (2022)(Space Pants Games).bin", 912072, 0x95e07e04, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smoverkill)
STD_ROM_FN(md_smoverkill)

struct BurnDriver BurnDrvmd_smoverkill = {
	"md_smoverkill", NULL, NULL, NULL, "2022",
	"Super Maximum Overkill (HB)\0", NULL, "Space Pants Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_smoverkillRomInfo, md_smoverkillRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Switch Blade MD (HB)
static struct BurnRomInfo md_switchbladRomDesc[] = {
	{ "Switch Blade MD (2018)(Piko Interactive).bin", 1048576, 0x53dd2706, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_switchblad)
STD_ROM_FN(md_switchblad)

struct BurnDriver BurnDrvmd_switchblad = {
	"md_switchblad", NULL, NULL, NULL, "2018",
	"Switch Blade MD (HB)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_switchbladRomInfo, md_switchbladRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tanglewood (HB, v1.0)
static struct BurnRomInfo md_tnglwdRomDesc[] = {
	{ "TangleWood v1.0 (2018)(Big Evil Corp.).md", 0x400000, 0x1a91c419, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnglwd)
STD_ROM_FN(md_tnglwd)

struct BurnDriver BurnDrvmd_tnglwd = {
	"md_tnglwd", NULL, NULL, NULL, "2018",
	"Tanglewood (HB, v1.0)\0", NULL, "Big Evil Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tnglwdRomInfo, md_tnglwdRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
 	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
 	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tanglewood (HB, Demo)
static struct BurnRomInfo md_tnglwddRomDesc[] = {
	{ "TangleWood Demo (2018)(Big Evil Corp.).md", 0x200000, 0x9cc94381, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnglwdd)
STD_ROM_FN(md_tnglwdd)

struct BurnDriver BurnDrvmd_tnglwdd = {
	"md_tnglwdd", "md_tnglwd", NULL, NULL, "2018",
	"Tanglewood (HB, Demo)\0", NULL, "Big Evil Corp.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tnglwddRomInfo, md_tnglwddRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
 	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
 	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tanzer (HB)
static struct BurnRomInfo md_tanzerRomDesc[] = {
	{ "Tanzer (2019)(Mega Cat Studios).bin", 4063232, 0x33e80d0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tanzer)
STD_ROM_FN(md_tanzer)

struct BurnDriver BurnDrvmd_tanzer = {
	"md_tanzer", NULL, NULL, NULL, "2019",
	"Tanzer (HB)\0", NULL, "Mega Cat Studios", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_tanzerRomInfo, md_tanzerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Queen The Demo (HB)
static struct BurnRomInfo md_teenqueenRomDesc[] = {
	{ "teenage queen demo (2006)(spoutnick team).bin", 393216, 0xf0971d8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_teenqueen)
STD_ROM_FN(md_teenqueen)

struct BurnDriver BurnDrvmd_teenqueen = {
	"md_teenqueen", NULL, NULL, NULL, "2006",
	"Teenage Queen The Demo (HB)\0", NULL, "Spoutnick Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_CARD, 0,
	MegadriveGetZipName, md_teenqueenRomInfo, md_teenqueenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Telethugs (HB)
static struct BurnRomInfo md_telehugsRomDesc[] = {
	{ "Telethugs (2020)(Menos Playstation).bin", 1310720, 0x742da49f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_telehugs)
STD_ROM_FN(md_telehugs)

struct BurnDriver BurnDrvmd_telehugs = {
	"md_telehugs", NULL, NULL, NULL, "2020",
	"Telethugs (HB)\0", NULL, "Menos Playstation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_telehugsRomInfo, md_telehugsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TGUN II (HB)
static struct BurnRomInfo md_tguniiRomDesc[] = {
	{ "TGUN II (2015-05-30 FINALDRAFT002)(2015)(TooManyGames).bin", 0xc0000, 0xc842b4d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tgunii)
STD_ROM_FN(md_tgunii)

struct BurnDriver BurnDrvmd_tgunii = {
	"md_tgunii", NULL, NULL, NULL, "2015",
	"T*GUN II (HB)\0", NULL, "TooManyGames", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_tguniiRomInfo, md_tguniiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Paw (HB)
static struct BurnRomInfo md_thundpawRomDesc[] = {
	{ "Thunder Paw (2021)(PSCD Games).bin", 3014656, 0x81858c5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thundpaw)
STD_ROM_FN(md_thundpaw)

struct BurnDriver BurnDrvmd_thundpaw = {
	"md_thundpaw", NULL, NULL, NULL, "2021",
	"Thunder Paw (HB)\0", NULL, "PSCD Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_thundpawRomInfo, md_thundpawRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tourmaline (HB)
static struct BurnRomInfo md_tourmalineRomDesc[] = {
	{ "Tourmaline (2021)(RetroSouls).bin", 786432, 0x437aeb56, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tourmaline)
STD_ROM_FN(md_tourmaline)

struct BurnDriver BurnDrvmd_tourmaline = {
	"md_tourmaline", NULL, NULL, NULL, "2021",
	"Tourmaline (HB)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_tourmalineRomInfo, md_tourmalineRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tro-Now (HB)
static struct BurnRomInfo md_tronowRomDesc[] = {
	{ "Tro-Now (2015)(1985 Alternativo).bin", 0x50000, 0xf484fa21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tronow)
STD_ROM_FN(md_tronow)

struct BurnDriver BurnDrvmd_tronow = {
	"md_tronow", NULL, NULL, NULL, "2015",
	"Tro-Now (HB)\0", NULL, "1985 Alternativo - bitbitJAM", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 4, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_tronowRomInfo, md_tronowRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultracore 2019 (HB)
static struct BurnRomInfo md_ultracoreRomDesc[] = {
	{ "Ultracore (2019)(Digital Illusions).bin", 0x200000, 0x97ed4b2a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultracore)
STD_ROM_FN(md_ultracore)

struct BurnDriver BurnDrvmd_ultracore = {
	"md_ultracore", NULL, NULL, NULL, "2019",
	"Ultracore (HB, USA)\0", NULL, "Digital Illusions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ultracoreRomInfo, md_ultracoreRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Unstoppable Knight (HB)
static struct BurnRomInfo md_uspknightRomDesc[] = {
	{ "Unstoppable Knight (2021)(Rafagars).bin", 262144, 0x25f7d7a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_uspknight)
STD_ROM_FN(md_uspknight)

struct BurnDriver BurnDrvmd_uspknight = {
	"md_uspknight", NULL, NULL, NULL, "2021",
	"Unstoppable Knight (HB)\0", NULL, "Rafagars", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_uspknightRomInfo, md_uspknightRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Uwol Quest for Money (HB)
static struct BurnRomInfo md_uwolRomDesc[] = {
	{ "Uwol Quest for Money (2010)(The Mojon Twins).bin", 0x010000, 0x6fa88172, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_uwol)
STD_ROM_FN(md_uwol)

struct BurnDriver BurnDrvmd_uwol = {
	"md_uwol", NULL, NULL, NULL, "2010",
	"UWOL Quest for Money (HB)\0", NULL, "The Mojon Twins", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_uwolRomInfo, md_uwolRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kolobok ~ Pyramid (Russia) (Unl)
static struct BurnRomInfo md_kolobokRomDesc[] = {
	{ "Kolobok - Pyramid ((201x)(Kudos).bin", 0x020000, 0xc4c55bab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kolobok)
STD_ROM_FN(md_kolobok)

struct BurnDriver BurnDrvmd_kolobok = {
	"md_kolobok", "md_uwol", NULL, NULL, "201?",
	"Kolobok ~ Pyramid (Russia) (Unl)\0", NULL, "Kudos", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kolobokRomInfo, md_kolobokRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Water Margin - A Tale of Clouds and Wind (USA) (HB)
static struct BurnRomInfo md_wmarginRomDesc[] = {
	{ "Water Margin - A Tale of Clouds and Wind (U)(2015)(Piko Interactive).bin", 2097152, 0x7f93b916, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wmargin)
STD_ROM_FN(md_wmargin)

struct BurnDriver BurnDrvmd_wmargin = {
	"md_wmargin", NULL, NULL, NULL, "2015",
	"Water Margin - A Tale of Clouds and Wind (USA) (HB)\0", NULL, "Piko Interactive", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_wmarginRomInfo, md_wmarginRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wolfenstein 3D (HB, fv11 fix)
static struct BurnRomInfo md_wolfstn3dRomDesc[] = {
	{ "Wolfenstein 3D (fv11 fix)(2015)(gasega68k).bin", 1638590, 0x3bad2015, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wolfstn3d)
STD_ROM_FN(md_wolfstn3d)

struct BurnDriver BurnDrvmd_wolfstn3d = {
	"md_wolfstn3d", NULL, NULL, NULL, "2015",
	"Wolfenstein 3D (HB, fv11 fix)\0", NULL, "gasega68k", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_wolfstn3dRomInfo, md_wolfstn3dRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xeno Crisis (HB, World)
static struct BurnRomInfo md_xenocrisisRomDesc[] = {
	{ "Xeno Crisis (2019)(Bitmap Bureau).bin", 0x400000, 0xac5f4cca, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xenocrisis)
STD_ROM_FN(md_xenocrisis)

struct BurnDriver BurnDrvmd_xenocrisis = {
	"md_xenocrisis", NULL, NULL, NULL, "2019",
	"Xeno Crisis (HB, World)\0", "Multi-Language", "Bitmap Bureau", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_xenocrisisRomInfo, md_xenocrisisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xiaomei and the Flame Dragon's Fist (HB, Japan)
static struct BurnRomInfo md_xiaomeiRomDesc[] = {
	{ "Xiaomei and the Flame Dragon's Fist (J)(2023)(Pixel Co.).bin", 4194304, 0xd7dd3791, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xiaomei)
STD_ROM_FN(md_xiaomei)

struct BurnDriver BurnDrvmd_xiaomei = {
	"md_xiaomei", NULL, NULL, NULL, "2023",
	"Xiaomei and the Flame Dragon's Fist (HB, Japan)\0", NULL, "Pixel Co.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_xiaomeiRomInfo, md_xiaomeiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xump 2 (HB, rev2017)
static struct BurnRomInfo md_xump2RomDesc[] = {
	{ "Xump 2 rev2017 (2017)(Retroguru).bin", 655360, 0xf61d26e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xump2)
STD_ROM_FN(md_xump2)

struct BurnDriver BurnDrvmd_xump2 = {
	"md_xump2", "md_xump2rv", NULL, NULL, "2017",
	"Xump 2 (HB, rev2017)\0", NULL, "Retroguru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_xump2RomInfo, md_xump2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xump 2 - Back to Space (HB, Retail Version)
static struct BurnRomInfo md_xump2rvRomDesc[] = {
	{ "Xump 2 - Back to Space (2020)(Retroguru).bin", 1441792, 0x3bc0b742, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xump2rv)
STD_ROM_FN(md_xump2rv)

struct BurnDriver BurnDrvmd_xump2rv = {
	"md_xump2rv", NULL, NULL, NULL, "2020",
	"Xump 2 - Back to Space (HB, Retail Version)\0", NULL, "Retroguru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_xump2rvRomInfo, md_xump2rvRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yazzie (HB)
static struct BurnRomInfo md_yazzieRomDesc[] = {
	{ "Yazzie (2020)(RetroSouls).bin", 0xa0000, 0x93d5ad8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yazzie)
STD_ROM_FN(md_yazzie)

struct BurnDriver BurnDrvmd_yazzie = {
	"md_yazzie", NULL, NULL, NULL, "2020",
	"Yazzie (HB)\0", NULL, "RetroSouls", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_yazzieRomInfo, md_yazzieRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yie Ar Kung-Fu (HB) (Unl)
static struct BurnRomInfo md_yiearkfRomDesc[] = {
	{ "Yie Ar Kung-Fu SMD-Port (2007)(Evgeny, Shiru).bin", 206368, 0xf4ec4cc3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yiearkf)
STD_ROM_FN(md_yiearkf)

struct BurnDriver BurnDrvmd_yiearkf = {
	"md_yiearkf", NULL, NULL, NULL, "2007",
	"Yie Ar Kung-Fu (HB) (Unl)\0", NULL, "Evgeny & Shiru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_yiearkfRomInfo, md_yiearkfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zooming Secretary (HB)
static struct BurnRomInfo md_zoomsecrRomDesc[] = {
	{ "Zooming Secretary MD (2017)(The AfroMonkeys).bin", 655360, 0x8243dce5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zoomsecr)
STD_ROM_FN(md_zoomsecr)

struct BurnDriver BurnDrvmd_zoomsecr = {
	"md_zoomsecr", NULL, NULL, NULL, "2017",
	"Zooming Secretary (HB)\0", NULL, "The AfroMonkeys", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_zoomsecrRomInfo, md_zoomsecrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ------------------------------
// -- Sonic Hacks from Combone --
// ------------------------------

// Sonic the Hedgehog 3 in 1 (Compilation By vladikcomper)
static struct BurnRomInfo md_sonic31RomDesc[] = {
	{ "Sonic the Hedgehog 3 in 1.bin", 0x398D82, 0x2D169E08, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic31)
STD_ROM_FN(md_sonic31)

struct BurnDriver BurnDrvmd_sonic31 = {
	"md_sonic31", NULL, NULL, NULL, "2011",
	"Sonic the Hedgehog 3 in 1 (Hack)\0", NULL, "vladikcomper", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic31RomInfo, md_sonic31RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Megamix (Hack By Team Megamix V3.0)
static struct BurnRomInfo md_sonicmmixRomDesc[] = {
	{ "Sonic Megamix V3.0 (Hack By Team Megamix).bin", 0x139498, 0x66ECB4F4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicmmix)
STD_ROM_FN(md_sonicmmix)

struct BurnDriver BurnDrvmd_sonicmmix = {
	"md_sonicmmix", "md_sonic", NULL, NULL, "2007",
	"Sonic Megamix (Hack, v3.0)\0", NULL, "Team Megamix", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicmmixRomInfo, md_sonicmmixRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Metal Sonic Hyperdrive (Hack By Darkon)
static struct BurnRomInfo md_msonichdRomDesc[] = {
	{ "Metal Sonic Hyperdrive (V4.2) (Hack By Darkon).bin", 0x100000, 0x195219E0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_msonichd)
STD_ROM_FN(md_msonichd)

struct BurnDriver BurnDrvmd_msonichd = {
	"md_msonichd", "md_sonic", NULL, NULL, "2014",
	"Metal Sonic Hyperdrive (Hack, v4.2)\0", NULL, "Darkon", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_msonichdRomInfo, md_msonichdRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// S Factor, The - Sonia And Silver (Hack By Aquaslash & Pals)
static struct BurnRomInfo md_tsfssRomDesc[] = {
	{ "The S Factor - Sonia And Silver (Hack By Aquaslash & Pals).bin", 0x13D655, 0x366E8CD4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tsfss)
STD_ROM_FN(md_tsfss)

struct BurnDriver BurnDrvmd_tsfss = {
	"md_tsfss", "md_sonic", NULL, NULL, "2013",
	"S Factor, The - Sonia And Silver (Hack)\0", NULL, "Aquaslash & Pals", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_tsfssRomInfo, md_tsfssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mobius Evolution V3.6 (Hack By Abyssal Leopard)
static struct BurnRomInfo md_mevoRomDesc[] = {
	{ "Mobius Evolution V3.6 (Hack By Abyssal Leopard).bin", 0x1B8900, 0xF2A974F4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mevo)
STD_ROM_FN(md_mevo)

struct BurnDriver BurnDrvmd_mevo = {
	"md_mevo", "md_sonic", NULL, NULL, "2015",
	"Mobius Evolution (Hack, v3.6)\0", NULL, "Abyssal Leopard", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_mevoRomInfo, md_mevoRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Somari The Adventurer (Hack by Darkon360, Lone Devil)
static struct BurnRomInfo md_somaritaRomDesc[] = {
	{ "Somari The Adventurer (Hack).bin", 0x100000, 0x6AB80FCA, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_somarita)
STD_ROM_FN(md_somarita)

struct BurnDriver BurnDrvmd_somarita = {
	"md_somarita", "md_sonic", NULL, NULL, "2015",
	"Somari The Adventurer (Hack, v1.1)\0", NULL, "Darkon360, Lone Devil", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_somaritaRomInfo, md_somaritaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Classic Heroes (Hack by flamewing, ColinC10)
static struct BurnRomInfo md_scheroesRomDesc[] = {
	{ "Sonic Classic Heroes.bin", 0x400000, 0xC27093DA, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_scheroes)
STD_ROM_FN(md_scheroes)

struct BurnDriver BurnDrvmd_scheroes = {
	"md_scheroes", "md_sonic2", NULL, NULL, "2013",
	"Sonic Classic Heroes (Hack)\0", NULL, "Flamewing, ColinC10", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_scheroesRomInfo, md_scheroesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Bash V2 (Hack by redhotsonic)
static struct BurnRomInfo md_sbashRomDesc[] = {
	{ "Sonic Bash V2.bin", 0x80000, 0x627D1CA8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sbash)
STD_ROM_FN(md_sbash)

struct BurnDriver BurnDrvmd_sbash = {
	"md_sbash", "md_sonic2", NULL, NULL, "2016",
	"Sonic Bash (Hack, v2)\0", NULL, "redhotsonic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sbashRomInfo, md_sbashRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 2 XL (Onion Ring Hack)
static struct BurnRomInfo md_sonic2xlRomDesc[] = {
	{ "sonic2xl.bin", 0x400000, 0x9459fbfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2xl)
STD_ROM_FN(md_sonic2xl)

struct BurnDriver BurnDrvmd_sonic2xl = {
	"md_sonic2xl", "md_sonic2", NULL, NULL, "2016",
	"Sonic the Hedgehog 2 XL - Onion Ring (Hack)\0", NULL, "Captain Bozo, Ranger", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2xlRomInfo, md_sonic2xlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 2 Battle Race (Hack by ColinC10)
static struct BurnRomInfo md_sonic2brcRomDesc[] = {
	{ "Sonic2BattleRace.bin", 0x200000, 0xBE6D9178, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic2brc)
STD_ROM_FN(md_sonic2brc)

struct BurnDriver BurnDrvmd_sonic2brc = {
	"md_sonic2brc", "md_sonic2", NULL, NULL, "2012",
	"Sonic 2 Battle Race (Hack)\0", NULL, "ColinC10", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonic2brcRomInfo, md_sonic2brcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 2 Recreation - Part One (Hack By redhotsonic)
static struct BurnRomInfo md_s2rpt1RomDesc[] = {
	{ "Sonic 2 Recreation - Part One.bin", 0x222628, 0x771FD4EA, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s2rpt1)
STD_ROM_FN(md_s2rpt1)

struct BurnDriver BurnDrvmd_s2rpt1 = {
	"md_s2rpt1", "md_sonic2", NULL, NULL, "2013",
	"Sonic 2 Recreation - Part One (Hack, Contest Build)\0", NULL, "redhotsonic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_s2rpt1RomInfo, md_s2rpt1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yoshi in Sonic The Hedgehog 2 (Beta) (Hack By Xenowhirl)
static struct BurnRomInfo md_ysonic2RomDesc[] = {
	{ "Yoshi_Sonic2beta.bin", 0x100000, 0x5F19712A, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ysonic2)
STD_ROM_FN(md_ysonic2)

struct BurnDriver BurnDrvmd_ysonic2 = {
	"md_ysonic2", "md_sonic2", NULL, NULL, "2017",
	"Yoshi in Sonic the Hedgehog 2 (Hack, Beta)\0", NULL, "Xenowhirl", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_ysonic2RomInfo, md_ysonic2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Winter Adventures (Hack By vladikcomper)
static struct BurnRomInfo md_sonicwaRomDesc[] = {
	{ "Sonic Winter Adventures (Hack).bin", 0xE8000, 0x795D6603, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicwa)
STD_ROM_FN(md_sonicwa)

struct BurnDriver BurnDrvmd_sonicwa = {
	"md_sonicwa", "md_sonic", NULL, NULL, "2013",
	"Sonic Winter Adventures (Hack)\0", NULL, "vladikcomper", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicwaRomInfo, md_sonicwaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Pixel Perfect (Ultimate Version) (Hack By JcFerggy,NovaWizard/2013 Jk.Fox)
static struct BurnRomInfo md_sonicppuRomDesc[] = {
	{ "Sonic Pixel Perfect (Ultimate Version).bin", 0xC26D4, 0x6D776301, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonicppu)
STD_ROM_FN(md_sonicppu)

struct BurnDriver BurnDrvmd_sonicppu = {
	"md_sonicppu", "md_sonic", NULL, NULL, "2013",
	"Sonic Pixel Perfect (Hack, Ultimate Version)\0", NULL, "JcFerggy, NovaWizard, Jk.Fox", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonicppuRomInfo, md_sonicppuRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog - The Lost Worlds (Hack By ExecByte)
static struct BurnRomInfo md_sonictlwRomDesc[] = {
	{ "Sonic the Hedgehog - The Lost Worlds.bin", 0x100000, 0x47004E22, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonictlw)
STD_ROM_FN(md_sonictlw)

struct BurnDriver BurnDrvmd_sonictlw = {
	"md_sonictlw", "md_sonic", NULL, NULL, "2009",
	"Sonic the Hedgehog - The Lost Worlds (Hack)\0", NULL, "ExecByte", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sonictlwRomInfo, md_sonictlwRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// South Island Adventure V0.3 (Hack By Hivebrain)
static struct BurnRomInfo md_southiaRomDesc[] = {
	{ "South Island Adventure V0.3.bin", 0x8CED0, 0xCED56180, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_southia)
STD_ROM_FN(md_southia)

struct BurnDriver BurnDrvmd_southia = {
	"md_southia", "md_sonic", NULL, NULL, "2004",
	"South Island Adventure (Hack, v0.3)\0", NULL, "Hivebrain", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_southiaRomInfo, md_southiaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Knuckles the Echidna in Sonic the Hedgehog (Hack by Stealth)
static struct BurnRomInfo md_ktesonicRomDesc[] = {
	{ "ktesonic.bin", 0x9FF80, 0x57A6DDB3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ktesonic)
STD_ROM_FN(md_ktesonic)

struct BurnDriver BurnDrvmd_ktesonic = {
	"md_ktesonic", "md_sonic", NULL, NULL, "2005",
	"Knuckles the Echidna in Sonic the Hedgehog (Hack)\0", NULL, "Stealth", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_ktesonicRomInfo, md_ktesonicRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic Boom (Hack by snkenjoi, iojnekns)
static struct BurnRomInfo md_sboomRomDesc[] = {
	{ "Sonic Boom (Hack).bin", 0x16FDA0, 0xAA903C50, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sboom)
STD_ROM_FN(md_sboom)

struct BurnDriver BurnDrvmd_sboom = {
	"md_sboom", "md_sonic2", NULL, NULL, "2009",
	"Sonic Boom (Hack)\0", NULL, "snkenjoi, iojnekns", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_sboomRomInfo, md_sboomRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 2 SMTP (Hack by SMTP)
static struct BurnRomInfo md_s2smtpRomDesc[] = {
	{ "s2smtp_v0.5.bin", 0x1fa42a, 0xd116fef0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s2smtp)
STD_ROM_FN(md_s2smtp)

struct BurnDriver BurnDrvmd_s2smtp = {
	"md_s2smtp", "md_sonic2", NULL, NULL, "2007",
	"Sonic 2 SMTP (Hack, v0.5)\0", NULL, "SMTP", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_s2smtpRomInfo, md_s2smtpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 2 Delta (Hack by Esrael)
static struct BurnRomInfo md_s2deltaRomDesc[] = {
	{ "Sonic2Cl.bin", 0x200000, 0x74abb0af, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s2delta)
STD_ROM_FN(md_s2delta)

struct BurnDriver BurnDrvmd_s2delta = {
	"md_s2delta", "md_sonic2", NULL, NULL, "2015",
	"Sonic 2 Delta (Hack, v0.25a)\0", NULL, "Esrael", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_s2deltaRomInfo, md_s2deltaRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic 3 & Knuckles - The Challenges (Hack By ColinC10)
static struct BurnRomInfo md_s3ktcRomDesc[] = {
	{ "S3K_TheChallenges.bin", 0x400000, 0x04179928, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s3ktc)
STD_ROM_FN(md_s3ktc)

struct BurnDriver BurnDrvmd_s3ktc = {
	"md_s3ktc", "md_sks3", NULL, NULL, "2009",
	"Sonic 3 & Knuckles - The Challenges (Hack)\0", "Lock-On Technology", "ColinC10", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_s3ktcRomInfo, md_s3ktcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 Complete (Hack)
// https://www.romhacking.net/hacks/1056/
static struct BurnRomInfo md_s3compRomDesc[] = {
	{ "S3Complete.bin", 0x3C0000, 0x2BD564B1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s3comp)
STD_ROM_FN(md_s3comp)

struct BurnDriver BurnDrvmd_s3comp = {
	"md_s3comp", "md_sks3", NULL, NULL, "2013",
	"Sonic the Hedgehog 3 Complete (Hack)\0", NULL, "Tiddles", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_s3compRomInfo, md_s3compRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sonic the Hedgehog 3 Complete - Emerald Safari (Hack)
// https://www.romhacking.net/hacks/8242/
static struct BurnRomInfo md_s3compesRomDesc[] = {
	{ "Sonic 3 Complete - Emerald Safari (2023)(BillyTime! Games).bin", 3932160, 0xaf6088b1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_s3compes)
STD_ROM_FN(md_s3compes)

struct BurnDriver BurnDrvmd_s3compes = {
	"md_s3compes", "md_sks3", NULL, NULL, "2023",
	"Sonic the Hedgehog 3 Complete - Emerald Safari (Hack)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_FRAM, GBF_PLATFORM, FBF_SONIC,
	MegadriveGetZipName, md_s3compesRomInfo, md_s3compesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};


// ----------------------------------------------
// -- Unl. Prototypes, Imp. Hacks and Bootlegs --
// ----------------------------------------------


// Alien³ - Kinoppi version (Hack)
// https://www.romhacking.net/reviews/11881
static struct BurnRomInfo md_alien3hRomDesc[] = {
	{ "Alien3 - Kinoppi version (2024)(Vikfield).bin", 524288, 0x477b634b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alien3h)
STD_ROM_FN(md_alien3h)

struct BurnDriver BurnDrvmd_alien3h = {
	"md_alien3h", "md_alien3", NULL, NULL, "2024",
	"Alien3 - Kinoppi version (Hack)\0", "Survivor Mod + No Time", "Vikfield", "Sega Megadrive",
	L"Alien\u00b3 - Kinoppi version (Hack)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alien3hRomInfo, md_alien3hRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art of Fighting (Hack, Enhanced Colors)
// http://www.romhacking.net/hacks/2394/
static struct BurnRomInfo md_aofecRomDesc[] = {
	{ "art of fighting (enhanced colors).md", 2097152, 0xf28b2502, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aofec)
STD_ROM_FN(md_aofec)

struct BurnDriver BurnDrvmd_aofec = {
	"md_aofec", "md_aof", NULL, NULL, "2015",
	"Art of Fighting (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aofecRomInfo, md_aofecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art of Fighting Upgrade (Hack)
// https://www.romhacking.net/hacks/8085/
static struct BurnRomInfo md_aofupgRomDesc[] = {
	{ "Art of Fighting Upgrade (2023)(BillyTime! Games).bin", 2097152, 0x912d59ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aofupg)
STD_ROM_FN(md_aofupg)

struct BurnDriver BurnDrvmd_aofupg = {
	"md_aofupg", "md_aof", NULL, NULL, "2023",
	"Art of Fighting Upgrade (Hack)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aofupgRomInfo, md_aofupgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Back to the Future Part III (Hack, Color Fix)
// https://www.romhacking.net/hacks/4792/
static struct BurnRomInfo md_backtof3cfRomDesc[] = {
	{ "back to the future part iii (color fix).md", 524288, 0x51f67e2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_backtof3cf)
STD_ROM_FN(md_backtof3cf)

struct BurnDriver BurnDrvmd_backtof3cf = {
	"md_backtof3cf", "md_backtof3", NULL, NULL, "2019",
	"Back to the Future Part III (Hack, Color Fix)\0", NULL, "Greg Kennedy", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_backtof3cfRomInfo, md_backtof3cfRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bahamut Senki (Hack, English)
// https://www.romhacking.net/translations/5574/
static struct BurnRomInfo md_bahamutseRomDesc[] = {
	{ "bahamut senki (j)(t-eng).bin", 1048576, 0x89383a55, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bahamutse)
STD_ROM_FN(md_bahamutse)

struct BurnDriver BurnDrvmd_bahamutse = {
	"md_bahamutse", "md_bahamuts", NULL, NULL, "2020",
	"Bahamut Senki (Hack, English)\0", NULL, "Supper", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_bahamutseRomInfo, md_bahamutseRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle III (Hack By Twilight Translations)
// Source: https://www.romhacking.net/translations/1375/
static struct BurnRomInfo md_bk3eRomDesc[] = {
	{ "bare knuckle iii (english translation).bin", 0x300000, 0x68917751, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bk3e)
STD_ROM_FN(md_bk3e)

struct BurnDriver BurnDrvmd_bk3e = {
	"md_bk3e", "md_sor3", NULL, NULL, "2009",
	"Bare Knuckle III (Hack, English)\0", NULL, "Twilight Transaltions", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_bk3eRomInfo, md_bk3eRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beggar Prince - English Version (World, rev1) (Unl)
static struct BurnRomInfo md_begprinceRomDesc[] = {
	{ "beggar prince (world) (rev 1) (unl).md", 4194304, 0x6332edcc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_begprince)
STD_ROM_FN(md_begprince)

struct BurnDriver BurnDrvmd_begprince = {
	"md_begprince", NULL, NULL, NULL, "2005",
	"Beggar Prince - English Version (World, rev1) (Unl)\0", NULL, "Super Fighter Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_begprinceRomInfo, md_begprinceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bill's Tomato Game (Prototype) (Unl)
static struct BurnRomInfo md_btomatogRomDesc[] = {
	{ "bill's tomato game (unl)(2017)(psygnosis).bin", 1048576, 0x0e1f263f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btomatog)
STD_ROM_FN(md_btomatog)

struct BurnDriver BurnDrvmd_btomatog = {
	"md_btomatog", NULL, NULL, NULL, "1994-2017",
	"Bill's Tomato Game (Prototype) (Unl)\0", "originally planned for 1994", "Psygnosis", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_btomatogRomInfo, md_btomatogRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Cadash (Hack, Arcade Colors)
// http://www.romhacking.net/hacks/3905/
static struct BurnRomInfo md_cadashacRomDesc[] = {
	{ "cadash (arcade colors).md", 524288, 0x84480043, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cadashac)
STD_ROM_FN(md_cadashac)

struct BurnDriver BurnDrvmd_cadashac = {
	"md_cadashac", "md_cadash", NULL, NULL, "2018",
	"Cadash (Hack, Arcade Colors)\0", NULL, "Taito - Tor Landeel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_RPG, 0,
	MegadriveGetZipName, md_cadashacRomInfo, md_cadashacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Captain America and the Avengers (Hack, Enhanced Colors)
// http://www.romhacking.net/hacks/2283/
static struct BurnRomInfo md_captavenecRomDesc[] = {
	{ "captain america and the avengers (enhanced colors).md", 1048576, 0x23109899, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captavenec)
STD_ROM_FN(md_captavenec)

struct BurnDriver BurnDrvmd_captavenec = {
	"md_captavenec", "md_captaven", NULL, NULL, "2015",
	"Captain America and the Avengers (Hack, Enhanced Colors)\0", NULL, "Data East - Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_captavenecRomInfo, md_captavenecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Castlevania - Bloodlines (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2121/
static struct BurnRomInfo md_cvaniaecRomDesc[] = {
	{ "castlevania - bloodlines (hack - enhanced colors).md", 1048576, 0x5ffdffa7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cvaniaec)
STD_ROM_FN(md_cvaniaec)

struct BurnDriver BurnDrvmd_cvaniaec = {
	"md_cvaniaec", "md_cvania", NULL, NULL, "2014",
	"Castlevania - Bloodlines (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cvaniaecRomInfo, md_cvaniaecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chaos Engine, The - Amiga Colors and Sound Fix (Hack, v1.01)
// http://www.romhacking.net/hacks/2754/
static struct BurnRomInfo md_chaosengcsRomDesc[] = {
	{ "chaos engine, the (amiga colors - music speed fix v1.01).md", 1572864, 0x65887f32, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chaosengcs)
STD_ROM_FN(md_chaosengcs)

struct BurnDriver BurnDrvmd_chaosengcs = {
	"md_chaosengcs", "md_chaoseng", NULL, NULL, "2016",
	"Chaos Engine, The - Amiga Colors and Sound Fix (Hack, v1.01)\0", NULL, "fusaru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_chaosengcsRomInfo, md_chaosengcsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Chiki Chiki Boys (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2888/
static struct BurnRomInfo md_chikiecRomDesc[] = {
	{ "chiki chiki boys (hack - enhanced colors).bin", 1048576, 0xf63e7e92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chikiec)
STD_ROM_FN(md_chikiec)

struct BurnDriver BurnDrvmd_chikiec = {
	"md_chikiec", "md_chiki", NULL, NULL, "2016",
	"Chiki Chiki Boys (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chikiecRomInfo, md_chikiecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Darius II (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2747/
static struct BurnRomInfo md_darius2ecRomDesc[] = {
	{ "darius ii (enhanced colors).md", 1048576, 0x021faa21, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_darius2ec)
STD_ROM_FN(md_darius2ec)

struct BurnDriver BurnDrvmd_darius2ec = {
	"md_darius2ec", "md_sagaia", NULL, NULL, "2016",
	"Darius II (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_darius2ecRomInfo, md_darius2ecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Double Dragon (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2378/
static struct BurnRomInfo md_ddragonecRomDesc[] = {
	{ "double dragon (hack - enhanced colors).md", 524288, 0xdb8416cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragonec)
STD_ROM_FN(md_ddragonec)

struct BurnDriver BurnDrvmd_ddragonec = {
	"md_ddragonec", "md_ddragon", NULL, NULL, "2015",
	"Double Dragon (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragonecRomInfo, md_ddragonecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dyno Blaze (Early Prototype)
static struct BurnRomInfo md_dynoblazRomDesc[] = {
	{ "dyno blaze (proto).bin", 0x1711c6, 0xd625e584, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dynoblaz)
STD_ROM_FN(md_dynoblaz)

struct BurnDriver BurnDrvmd_dynoblaz = {
	"md_dynoblaz", NULL, NULL, NULL, "199?",
	"Dyno Blaze (Early Prototype)\0", NULL, "Virgin Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dynoblazRomInfo, md_dynoblazRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fatal Fury 2 (Hack, Enhanced Colors v4.0)
// http://www.romhacking.net/hacks/2323/
static struct BurnRomInfo md_fatfury2ecRomDesc[] = {
	{ "fatal fury 2 (enhanced colors v4.0).md", 3145728, 0xeb433a36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatfury2ec)
STD_ROM_FN(md_fatfury2ec)

struct BurnDriver BurnDrvmd_fatfury2ec = {
	"md_fatfury2ec", "md_fatfury2", NULL, NULL, "2015",
	"Fatal Fury 2 (Hack, Enhanced Colors v4.0)\0", NULL, "Takara - Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fatfury2ecRomInfo, md_fatfury2ecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FIFA Soccer 2020 (Hack, v2.3)
// http://www.romhacking.net/hacks/5285
static struct BurnRomInfo md_fifa2020RomDesc[] = {
	{ "FIFA Soccer 2020 v2.3.bin", 2173824, 0x2ee94b2e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fifa2020)
STD_ROM_FN(md_fifa2020)

struct BurnDriver BurnDrvmd_fifa2020 = {
	"md_fifa2020", "md_fifa95", NULL, NULL, "2020",
	"FIFA Soccer 2020 (Hack, v2.3)\0", NULL, "TA Marcos", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_fifa2020RomInfo, md_fifa2020RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// FX Unit Yuki - the Henshin Engine (World) (Unl)
static struct BurnRomInfo md_fxunyukiRomDesc[] = {
	{ "fx unit yuki - the henshin engine (world) (unl).bin", 6291456, 0x2906876b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fxunyuki)
STD_ROM_FN(md_fxunyuki)

struct BurnDriver BurnDrvmd_fxunyuki = {
	"md_fxunyuki", NULL, NULL, NULL, "2018",
	"FX Unit Yuki - the Henshin Engine (World) (Unl)\0", "48 Mbit (6MB) cartridge", "Sarupro", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_fxunyukiRomInfo, md_fxunyukiRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe II (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2104/
static struct BurnRomInfo md_goldnax2ecRomDesc[] = {
	{ "golden axe ii (enhanced colors).md", 524288, 0x696caae2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax2ec)
STD_ROM_FN(md_goldnax2ec)

struct BurnDriver BurnDrvmd_goldnax2ec = {
	"md_goldnax2ec", "md_goldnax2", NULL, NULL, "2014",
	"Golden Axe II (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax2ecRomInfo, md_goldnax2ecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Golden Axe III - New Character (Ver. 9) (Hack By Ti)
// Gryphon Hack
// http://www.romhacking.net/hacks/5202/
static struct BurnRomInfo md_goldnax3ncRomDesc[] = {
	{ "GoldenAxeIII_New Character_Hack.bin", 0x200000, 0x29a27509, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax3nc)
STD_ROM_FN(md_goldnax3nc)

struct BurnDriver BurnDrvmd_goldnax3nc = {
	"md_goldnax3nc", "md_goldnax3", NULL, NULL, "2020",
	"Golden Axe III - New Character (Hack, v9)\0", NULL, "Ti", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax3ncRomInfo, md_goldnax3ncRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gouketsuji Ichizoku (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/8306/
static struct BurnRomInfo md_gouketsuecRomDesc[] = {
	{ "Gouketsuji Ichizoku Enhanced Colors (2023)(Dolsilwa).bin", 3145728, 0x019b11f2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gouketsuec)
STD_ROM_FN(md_gouketsuec)

struct BurnDriver BurnDrvmd_gouketsuec = {
	"md_gouketsuec", "md_gouketsu", NULL, NULL, "2023",
	"Gouketsuji Ichizoku (Hack, Enhanced Colors)\0", NULL, "Dolsilwa", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_gouketsuecRomInfo, md_gouketsuecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Incredible Hulk DX, The (Hack)
// https://www.romhacking.net/hacks/8302/
static struct BurnRomInfo md_hulkdxRomDesc[] = {
	{ "Incredible Hulk DX, The(2023)(BillyTime! Games).bin", 2097152, 0xb332051d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hulkdx)
STD_ROM_FN(md_hulkdx)

struct BurnDriver BurnDrvmd_hulkdx = {
	"md_hulkdx", "md_hulk", NULL, NULL, "2023",
	"Incredible Hulk DX, The (Hack)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hulkdxRomInfo, md_hulkdxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// International Superstar Soccer Deluxe - Real Names + Extras (Hack by Sprill)
static struct BurnRomInfo md_issdxrneRomDesc[] = {
	{ "issdx_real_hack.bin", 0x200000, 0xAD08D78E, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_issdxrne)
STD_ROM_FN(md_issdxrne)

struct BurnDriver BurnDrvmd_issdxrne = {
	"md_issdxrne", "md_issdx", NULL, NULL, "2016",
	"International Superstar Soccer Deluxe - Real Names + Extras (Hack)\0", NULL, "Sprill", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_issdxrneRomInfo, md_issdxrneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Madou Monogatari I (Hack, English v1.1)
// http://www.romhacking.net/translations/5388/
static struct BurnRomInfo md_madoumoneRomDesc[] = {
	{ "Madou Monogatari I T-Eng v1.1 (2021)(LIPEMCO! Translations).bin", 4194304, 0xfac8d75d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_madoumone)
STD_ROM_FN(md_madoumone)

struct BurnDriver BurnDrvmd_madoumone = {
	"md_madoumone", "md_madoumon", NULL, NULL, "2021",
	"Madou Monogatari I (Hack, English v1.1)\0", NULL, "LIPEMCO! Translations", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_madoumoneRomInfo, md_madoumoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magical Kid Taruruto (Hack, English)
// https://www.romhacking.net/translations/7071/
static struct BurnRomInfo md_mtaruruenRomDesc[] = {
	{ "Magical Kid Taruruto T-Eng (2023)(tryphon).bin", 591064, 0xcb4d575f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mtaruruen)
STD_ROM_FN(md_mtaruruen)

struct BurnDriver BurnDrvmd_mtaruruen = {
	"md_mtaruruen", "md_mtaruru", NULL, NULL, "2023",
	"Magical Kid Taruruto (Hack, English)\0", NULL, "tryphon", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mtaruruenRomInfo, md_mtaruruenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Magic Girl featuring Ling Ling the little Witch (World) (Unl)
static struct BurnRomInfo md_magicgirlRomDesc[] = {
	{ "magic girl featuring ling ling the little witch (world) (unl).md", 2097152, 0xe9dc9d93, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_magicgirl)
STD_ROM_FN(md_magicgirl)

struct BurnDriver BurnDrvmd_magicgirl = {
	"md_magicgirl", "md_xiaomo", NULL, NULL, "2015",
	"Magic Girl featuring Ling Ling the little Witch (World) (Unl)\0", NULL, "Super Fighter Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_magicgirlRomInfo, md_magicgirlRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega SWIV (Hack, Color Improvement v1.05)
// https://www.romhacking.net/hacks/2752/
static struct BurnRomInfo md_megaswivciRomDesc[] = {
	{ "mega swiv (euro - color improvement v1.05).md", 1048576, 0xe8d76ad1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaswivci)
STD_ROM_FN(md_megaswivci)

struct BurnDriver BurnDrvmd_megaswivci = {
	"md_megaswivci", "md_megaswiv", NULL, NULL, "2016",
	"Mega SWIV (Hack, Color Improvement v1.05)\0", NULL, "Fusaru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_megaswivciRomInfo, md_megaswivciRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat 3 Mini - Hack by Nemesis_c, r57shell
static struct BurnRomInfo md_mk3mRomDesc[] = {
	{ "Mortal Kombat 3 Mini-Hack.bin", 0x400000, 0xD925AA80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk3m)
STD_ROM_FN(md_mk3m)

struct BurnDriver BurnDrvmd_mk3m = {
	"md_mk3m", "md_mk3", NULL, NULL, "2011",
	"Mortal Kombat 3 Mini (Hack)\0", NULL, "Nemesis_c, r57shell", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk3mRomInfo, md_mk3mRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat Revelations v1.0 Hack by Smoke
static struct BurnRomInfo md_mkrRomDesc[] = {
	{ "Mortal Kombat Revelations (Hack Ver. 1.0 By Smoke).bin", 0x987A70, 0x318B81F2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mkr)
STD_ROM_FN(md_mkr)

struct BurnDriver BurnDrvmd_mkr = {
	"md_mkr", "md_umk3t", NULL, NULL, "2012",
	"Mortal Kombat Revelations (Hack, v1.0)\0", NULL, "Smoke", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mkrRomInfo, md_mkrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New Zealand Story, The (Hack, Arcade Colors)
// https://www.romhacking.net/hacks/5083/
static struct BurnRomInfo md_tnzsacRomDesc[] = {
	{ "new zealand story, The (hack - arcade colors).bin", 524288, 0x0a35d853, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnzsac)
STD_ROM_FN(md_tnzsac)

struct BurnDriver BurnDrvmd_tnzsac = {
	"md_tnzsac", "md_tnzs", NULL, NULL, "2020",
	"New Zealand Story, The (Hack, Arcade Colors)\0", NULL, "fabio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tnzsacRomInfo, md_tnzsacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// OutRun (Hack, Arcade Colors v2.1)
// http://www.romhacking.net/hacks/3940/
static struct BurnRomInfo md_outrunacRomDesc[] = {
	{ "outrun (arcade colors)(v2.1).bin", 1048576, 0x921e6107, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outrunac)
STD_ROM_FN(md_outrunac)

struct BurnDriver BurnDrvmd_outrunac = {
	"md_outrunac", "md_outrun", NULL, NULL, "2018",
	"OutRun (Hack, Arcade Colors v2.1)\0", NULL, "Tor Landeel", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outrunacRomInfo, md_outrunacRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star II Sound Engine Replacement (Hack)
// https://www.romhacking.net/hacks/8043/
static struct BurnRomInfo md_pstar2serRomDesc[] = {
	{ "Phantasy Star II Sound Engine Replacement (2022)(wyatt8740).bin", 786432, 0x53018f1e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar2ser)
STD_ROM_FN(md_pstar2ser)

struct BurnDriver BurnDrvmd_pstar2ser = {
	"md_pstar2ser", "md_pstar2", NULL, NULL, "2022",
	"Phantasy Star II Sound Engine Replacement (Hack)\0", NULL, "wyatt8740", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar2serRomInfo, md_pstar2serRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia 2 - Remastered Edition (Hack, v1.5)
// https://www.romhacking.net/hacks/4805/
static struct BurnRomInfo md_ppersia2rRomDesc[] = {
	{ "prince of persia 2 - remastered edition (v1.5).bin", 2133984, 0x677ab959, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersia2r)
STD_ROM_FN(md_ppersia2r)

struct BurnDriver BurnDrvmd_ppersia2r = {
	"md_ppersia2r", "md_ppersia2", NULL, NULL, "2019",
	"Prince of Persia 2 - Remastered Edition (Hack, v1.5)\0", NULL, "Linkuei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersia2rRomInfo, md_ppersia2rRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia - Remastered Edition (Hack)
// https://www.romhacking.net/hacks/6969/
static struct BurnRomInfo md_ppersiarRomDesc[] = {
	{ "Prince of Persia - Remastered Edition (2022)(Linkuei).bin", 2097152, 0x897f3fe8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersiar)
STD_ROM_FN(md_ppersiar)

struct BurnDriver BurnDrvmd_ppersiar = {
	"md_ppersiar", "md_ppersia", NULL, NULL, "2022",
	"Prince of Persia - Remastered Edition (Hack, v1.3)\0", NULL, "Linkuei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersiarRomInfo, md_ppersiarRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rock n' Roll Racing (Hack v16 By Ti)
static struct BurnRomInfo md_rnrracinhRomDesc[] = {
	{ "Rock n Roll Racing Hack v16.bin", 0x200000, 0x676e3039, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rnrracinh)
STD_ROM_FN(md_rnrracinh)

struct BurnDriver BurnDrvmd_rnrracinh = {
	"md_rnrracinh", "md_rnrracin", NULL, NULL, "2020",
	"Rock n' Roll Racing (Hack, v16)\0", NULL, "Ti", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rnrracinhRomInfo, md_rnrracinhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Samurai Shodown (Hack, Enhanced Colors v2.0)
// http://www.romhacking.net/hacks/2383/
static struct BurnRomInfo md_samshoecRomDesc[] = {
	{ "samurai shodown (enhanced colors)(v2.0).md", 3145728, 0x12cf057a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_samshoec)
STD_ROM_FN(md_samshoec)

struct BurnDriver BurnDrvmd_samshoec = {
	"md_samshoec", "md_samsho", NULL, NULL, "2015",
	"Samurai Shodown (Hack, Enhanced Colors v2.0)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_samshoecRomInfo, md_samshoecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sega Sonic Bros. C2 Port, revision 2
static struct BurnRomInfo md_ssonicbror2RomDesc[] = {
	{ "SegaSonicBrosMDRev2.bin", 0xc0000, 0x91537567, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssonicbror2)
STD_ROM_FN(md_ssonicbror2)

struct BurnDriver BurnDrvmd_ssonicbror2 = {
	"md_ssonicbror2", NULL, NULL, NULL, "1992-2018",
	"Sega Sonic Bros. (C2 Port, Rev.2)\0", NULL, "Dustin O'Dell", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_ssonicbror2RomInfo, md_ssonicbror2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadrivePALDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shadow of the Beast (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2259/
static struct BurnRomInfo md_beastecRomDesc[] = {
	{ "shadow of the beast (enhanced colors).md", 1048576, 0x7eaa73de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beastec)
STD_ROM_FN(md_beastec)

struct BurnDriver BurnDrvmd_beastec = {
	"md_beastec", "md_beast", NULL, NULL, "2014",
	"Shadow of the Beast (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beastecRomInfo, md_beastecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Spider-Man vs. the Kingpin DX (Hack, v1.4)
// https://www.romhacking.net/hacks/6455/
static struct BurnRomInfo md_spidkingdxRomDesc[] = {
	{ "Spider-Man vs. Kingpin DX v1.4 (2024)(BillyTime! Games).bin", 1048576, 0xd585f85d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidkingdx)
STD_ROM_FN(md_spidkingdx)

struct BurnDriver BurnDrvmd_spidkingdx = {
	"md_spidkingdx", "md_spidking", NULL, NULL, "2024",
	"Spider-Man vs. the Kingpin DX (Hack, v1.4)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidkingdxRomInfo, md_spidkingdxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Hyper Champion Edition (Hack, v2)
static struct BurnRomInfo md_sf2hce2RomDesc[] = {
	{ "Street Fighter II' - Hyper Champion Edition (hack-2021).md", 3145728, 0xe5c620a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2hce2)
STD_ROM_FN(md_sf2hce2)

struct BurnDriver BurnDrvmd_sf2hce2 = {
	"md_sf2hce2", "md_sf2", NULL, NULL, "2020-21",
	"Street Fighter II' - Hyper Champion Edition (Hack, v2)\0", NULL, "Lord Hiryu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2hce2RomInfo, md_sf2hce2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - Special Champion Edition (Improvement Hack - Color and Sound)
static struct BurnRomInfo md_sf2icsRomDesc[] = {
	{ "Street Fighter II' - SCE Improvement.bin", 0x300000, 0x293D2CB1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2ics)
STD_ROM_FN(md_sf2ics)

struct BurnDriver BurnDrvmd_sf2ics = {
	"md_sf2ics", "md_sf2", NULL, NULL, "2014",
	"Street Fighter II' - Special Champion Edition (Hack, Color and Sound)\0", NULL, "Pyron & Stephane.D", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2icsRomInfo, md_sf2icsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II' - The World Warrior Plus (Hack)
static struct BurnRomInfo md_sf2wwpRomDesc[] = {
	{ "Street Fighter II' - World Warrior Plus (hack-2021).md", 3145728, 0x8fad3a36, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2wwp)
STD_ROM_FN(md_sf2wwp)

struct BurnDriver BurnDrvmd_sf2wwp = {
	"md_sf2wwp", "md_sf2", NULL, NULL, "2021",
	"Street Fighter II' - The World Warrior Plus (Hack)\0", NULL, "Lord Hiryu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2wwpRomInfo, md_sf2wwpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - Bare Knuckle 3 Boss Edition (v1.1) (Hack by Kratus)
static struct BurnRomInfo md_sor2bk3bRomDesc[] = {
	{ "SoR2_BK3Boss_Hack.bin", 0x356842, 0x5C152787, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2bk3b)
STD_ROM_FN(md_sor2bk3b)

struct BurnDriver BurnDrvmd_sor2bk3b = {
	"md_sor2bk3b", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 - Bare Knuckle 3 Boss Edition (Hack, v1.1)\0", NULL, "Kratus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2bk3bRomInfo, md_sor2bk3bRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - Street Fighter Version 1 By Kratus
static struct BurnRomInfo md_sor2sfv1RomDesc[] = {
	{ "SoR2_StreetFighter_v1.bin", 0x33CF86, 0xE03F0C6B, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2sfv1)
STD_ROM_FN(md_sor2sfv1)

struct BurnDriver BurnDrvmd_sor2sfv1 = {
	"md_sor2sfv1", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 - Street Fighter Version 1 (Hack)\0", NULL, "Kratus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2sfv1RomInfo, md_sor2sfv1RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - Street Fighter Version 2 By Kratus
static struct BurnRomInfo md_sor2sfv2RomDesc[] = {
	{ "SoR2_StreetFighter_v2.bin", 0x365298, 0x828786E2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2sfv2)
STD_ROM_FN(md_sor2sfv2)

struct BurnDriver BurnDrvmd_sor2sfv2 = {
	"md_sor2sfv2", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 - Street Fighter Version 2 (Hack)\0", NULL, "Kratus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2sfv2RomInfo, md_sor2sfv2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - Street Fighter Version 3 By Kratus
static struct BurnRomInfo md_sor2sfv3RomDesc[] = {
	{ "SoR2_StreetFighter_v3.bin", 0x35E7FA, 0xD2ECF98F, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2sfv3)
STD_ROM_FN(md_sor2sfv3)

struct BurnDriver BurnDrvmd_sor2sfv3 = {
	"md_sor2sfv3", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 - Street Fighter Version 3 (Hack)\0", NULL, "Kratus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2sfv3RomInfo, md_sor2sfv3RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - Street Fighter Version 4 By Kratus
static struct BurnRomInfo md_sor2sfv4RomDesc[] = {
	{ "SoR2_StreetFighter_v4.bin", 0x395628, 0x59AA116D, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2sfv4)
STD_ROM_FN(md_sor2sfv4)

struct BurnDriver BurnDrvmd_sor2sfv4 = {
	"md_sor2sfv4", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 - Street Fighter Version 4 (Hack)\0", NULL, "Kratus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2sfv4RomInfo, md_sor2sfv4RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - TMNT Hack By Carzj (M3tro GFX Fix)
static struct BurnRomInfo md_sor2tmntRomDesc[] = {
	{ "SoR2_TMNT_Hack.bin", 0x2C4DB0, 0x50E3C7C3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2tmnt)
STD_ROM_FN(md_sor2tmnt)

struct BurnDriver BurnDrvmd_sor2tmnt = {
	"md_sor2tmnt", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 - Teenage Mutant Ninja Turtles (Hack)\0", NULL, "Hack By Carzj, Fix By M3tro", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2tmntRomInfo, md_sor2tmntRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 3 - Extreme Edition (V0.42) (Hack By Gsaurus)
static struct BurnRomInfo md_sor3exRomDesc[] = {
	{ "SoR3_Extreme_v042_Hack.bin", 0x300000, 0xD2135A13, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3ex)
STD_ROM_FN(md_sor3ex)

struct BurnDriver BurnDrvmd_sor3ex = {
	"md_sor3ex", "md_sor3", NULL, NULL, "2012",
	"Streets of Rage 3 - Extreme Edition (Hack, v0.42)\0", NULL, "Gsaurus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3exRomInfo, md_sor3exRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage - Killer Difficulty by gsaurus
// https://www.romhacking.net/hacks/1341/
static struct BurnRomInfo md_sorkillerRomDesc[] = {
	{ "Streets of Rage - Killer Difficulty (2012)(gsaurus).bin", 0x080000, 0x86eed3d6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sorkiller)
STD_ROM_FN(md_sorkiller)

struct BurnDriver BurnDrvmd_sorkiller = {
	"md_sorkiller", "md_sor", NULL, NULL, "2012",
	"Streets of Rage - Killer Difficulty (Hack, v0.9)\0", NULL, "gsaurus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_CLONE | BDF_HACK | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sorkillerRomInfo, md_sorkillerRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Hang-On Enhanced (Hack)
// https://www.romhacking.net/hacks/3868/
static struct BurnRomInfo md_shangoneRomDesc[] = {
	{ "super hang-on enhanced.bin", 524288, 0xff381fed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangone)
STD_ROM_FN(md_shangone)

struct BurnDriver BurnDrvmd_shangone = {
	"md_shangone", "md_shangon", NULL, NULL, "2018",
	"Super Hang-On Enhanced (Hack)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_ADV, 0,
	MegadriveGetZipName, md_shangoneRomInfo, md_shangoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Monaco GP 2019 - HE Returns (30th Anniversary Edition) (Hack By TA_Marcos_Translations)
static struct BurnRomInfo md_smgp2019RomDesc[] = {
	{ "Super_Monaco_GP2019.bin", 0x080000, 0x12BCABB6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_smgp2019)
STD_ROM_FN(md_smgp2019)

struct BurnDriver BurnDrvmd_smgp2019 = {
	"md_smgp2019", "md_smgp", NULL, NULL, "2019",
	"Super Monaco GP-2019 - HE Returns (Hack, Improvement)\0", NULL, "TA_Marcos_Translations", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_smgp2019RomInfo, md_smgp2019RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II - The New Challengers (Hack, Color and Graphic)
static struct BurnRomInfo md_ssf2cgRomDesc[] = {
	{ "Super Street Fighter II (hack-2021).md", 5242880, 0xf390add2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2cg)
STD_ROM_FN(md_ssf2cg)

struct BurnDriver BurnDrvmd_ssf2cg = {
	"md_ssf2cg", "md_ssf2", NULL, NULL, "2021",
	"Super Street Fighter II - The New Challengers (Hack, Color and Graphic)\0", NULL, "Lord Hiryu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2cgRomInfo, md_ssf2cgRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T2 - Terminator 2 - Judgment Day Music & Sound Hack (Hack)
// https://www.romhacking.net/hacks/8083/
static struct BurnRomInfo md_term2mshRomDesc[] = {
	{ "T2 - Terminator 2 - Judgment Day Music & Sound Hack (2023)(Segaman).bin", 2097152, 0xee70072a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_term2msh)
STD_ROM_FN(md_term2msh)

struct BurnDriver BurnDrvmd_term2msh = {
	"md_term2msh", "md_term2", NULL, NULL, "2023",
	"T2 - Terminator 2 - Judgment Day Music & Sound Hack (Hack)\0", NULL, "Segaman", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_term2mshRomInfo, md_term2mshRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles: Shredder's Re-Revenge (GlobalHack, v1.01)
// https://www.romhacking.net/reviews/9774/
static struct BurnRomInfo md_sor2tmntsrRomDesc[] = {
	{ "Teenage Mutant Ninja Turtles - Shredder's Re-Revenge GlobHack (2022)(savok).bin", 4063356, 0x6720cc8a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2tmntsr)
STD_ROM_FN(md_sor2tmntsr)

struct BurnDriver BurnDrvmd_sor2tmntsr = {
	"md_sor2tmntsr", "md_sor2", NULL, NULL, "2022",
	"Teenage Mutant Ninja Turtles: Shredder's Re-Revenge (GlobalHack, v1.01)\0", NULL, "savok", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2tmntsrRomInfo, md_sor2tmntsrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - The Hyperstone Heist (Hack, Enhanced Colors v2.0)
// https://www.romhacking.net/hacks/2330/
static struct BurnRomInfo md_tmnthhecRomDesc[] = {
	{ "teenage mutant ninja turtles - the hyperstone heist (enhanced colors v2.0).md", 1048576, 0x3dd042f9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmnthhec)
STD_ROM_FN(md_tmnthhec)

struct BurnDriver BurnDrvmd_tmnthhec = {
	"md_tmnthhec", "md_tmhthh", NULL, NULL, "2015",
	"Teenage Mutant Ninja Turtles - The Hyperstone Heist (Hack, Enhanced Colors v2.0)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tmnthhecRomInfo, md_tmnthhecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - Tournament Fighters Hack (Color & Boss)
static struct BurnRomInfo md_tmnttficbRomDesc[] = {
	{ "TMNT Tournament Fighters (Hack).bin", 0x207C14, 0x8DC38DC4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmnttficb)
STD_ROM_FN(md_tmnttficb)

struct BurnDriver BurnDrvmd_tmnttficb = {
	"md_tmnttficb", "md_tmhttf", NULL, NULL, "2014",
	"Teenage Mutant Ninja Turtles - Tournament Fighters (Hack, Improvement)\0", NULL, "Color By fusaru, Boss by Nemesis_c", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tmnttficbRomInfo, md_tmnttficbRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunderbolt II (Prototype) (Unl)
static struct BurnRomInfo md_tbolt2RomDesc[] = {
	{ "Thunderbolt II (Prototype)(Unl)(1995)(Sun Green).bin", 0x80000, 0xd5fcc49f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tbolt2)
STD_ROM_FN(md_tbolt2)

struct BurnDriver BurnDrvmd_tbolt2 = {
	"md_tbolt2", NULL, NULL, NULL, "1995",
	"Thunderbolt II (Prototype) (Unl)\0", NULL, "Sun Green", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SMOUSE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_tbolt2RomInfo, md_tbolt2RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunderbolt II (Prototype, Alt) (Unl)
static struct BurnRomInfo md_tbolt2aRomDesc[] = {
	{ "Thunderbolt II (Prototype, Alt)(Unl)(1995)(Sun Green).bin", 0x80000, 0xa2ef16de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tbolt2a)
STD_ROM_FN(md_tbolt2a)

struct BurnDriver BurnDrvmd_tbolt2a = {
	"md_tbolt2a", NULL, NULL, NULL, "1995",
	"Thunderbolt II (Prototype, Alt) (Unl)\0", NULL, "Sun Green", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_PROTOTYPE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_tbolt2aRomInfo, md_tbolt2aRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom and Jerry - Frantic Antics (Hack, Improvement v2)
// http://www.romhacking.net/hacks/5292/
static struct BurnRomInfo md_tomjerryimRomDesc[] = {
	{ "Tom and Jerry - Frantic Antics (Hack, Improvement v2)(2020)(Ti).bin", 2097152, 0x13bcf0a2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tomjerryim)
STD_ROM_FN(md_tomjerryim)

struct BurnDriver BurnDrvmd_tomjerryim = {
	"md_tomjerryim", "md_tomjerry", NULL, NULL, "2020",
	"Tom and Jerry - Frantic Antics (Hack, Improvement v2)\0", NULL, "Ti", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tomjerryimRomInfo, md_tomjerryimRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tom Clown (Taiwan) (Unl)
static struct BurnRomInfo md_tomclownRomDesc[] = {
	{ "tom clown (unl) [f1].bin", 524288, 0xbd741108, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tomclown)
STD_ROM_FN(md_tomclown)

struct BurnDriver BurnDrvmd_tomclown = {
	"md_tomclown", NULL, NULL, NULL, "1993",
	"Tom Clown (Taiwan) (Unl)\0", NULL, "Realtec", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_tomclownRomInfo, md_tomclownRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turbo OutRun (Hack, Color Improvement)
// https://www.romhacking.net/hacks/5119/
static struct BurnRomInfo md_toutrunchRomDesc[] = {
	{ "turbo outrun (color hack).md", 524288, 0x8884c73a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toutrunch)
STD_ROM_FN(md_toutrunch)

struct BurnDriver BurnDrvmd_toutrunch = {
	"md_toutrunch", "md_toutrun", NULL, NULL, "2020",
	"Turbo OutRun (Hack, Color Improvement)\0", NULL, "Dolsilwa", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_toutrunchRomInfo, md_toutrunchRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twin Cobra (Hack, Arcade GFX v2.0)
// http://www.romhacking.net/hacks/2920/
static struct BurnRomInfo md_twincobrgfxRomDesc[] = {
	{ "twin cobra (arcade gfx v2.0).md", 704120, 0x88ea1e4e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twincobrgfx)
STD_ROM_FN(md_twincobrgfx)

struct BurnDriver BurnDrvmd_twincobrgfx = {
	"md_twincobrgfx", "md_twincobr", NULL, NULL, "2016",
	"Twin Cobra (Hack, Arcade GFX v2.0)\0", NULL, "fusaru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_twincobrgfxRomInfo, md_twincobrgfxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twin Hawk (Arcade GFX)
// http://www.romhacking.net/hacks/3310/
static struct BurnRomInfo md_twinhawkgfxRomDesc[] = {
	{ "twin hawk (arcade gfx).md", 524288, 0xabd8ce33, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twinhawkgfx)
STD_ROM_FN(md_twinhawkgfx)

struct BurnDriver BurnDrvmd_twinhawkgfx = {
	"md_twinhawkgfx", "md_twinhawk", NULL, NULL, "2017",
	"Twin Hawk (Arcade GFX)\0", NULL, "fusaru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_twinhawkgfxRomInfo, md_twinhawkgfxRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// UEFA Euro 2004 Portugal (International Super Star Soccer Deluxe Hack by Glorysun)
static struct BurnRomInfo md_euro2004RomDesc[] = {
	{ "UEFA_Euro_2004_Portugal.bin", 0x200000, 0xBEA68ADA, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_euro2004)
STD_ROM_FN(md_euro2004)

struct BurnDriver BurnDrvmd_euro2004 = {
	"md_euro2004", "md_issdx", NULL, NULL, "2004",
	"UEFA Euro 2004 Portugal (China) (Unl)\0", NULL, "Glorysun", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_euro2004RomInfo, md_euro2004RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat Trilogy (Hack, rev.5149)
static struct BurnRomInfo md_umk3tRomDesc[] = {
	{ "UMKT_5149.bin", 0xA00000, 0x1d9d2eba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3t)
STD_ROM_FN(md_umk3t)

struct BurnDriver BurnDrvmd_umk3t = {
	"md_umk3t", NULL, NULL, NULL, "2017",
	"Ultimate Mortal Kombat Trilogy (Hack, rev.5149)\0", NULL, "KABAL_MK", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3tRomInfo, md_umk3tRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat 3 Mini - Hack by Nemesis_c,r57shell
static struct BurnRomInfo md_umk3mhRomDesc[] = {
	{ "Ultimate Mortal Kombat 3 Mini-V13.bin", 0x400000, 0x4F2A5B98, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3mh)
STD_ROM_FN(md_umk3mh)

struct BurnDriver BurnDrvmd_umk3mh = {
	"md_umk3mh", "md_umk3", NULL, NULL, "2011",
	"Ultimate Mortal Kombat 3 Mini (Hack, v13)\0", NULL, "Nemesis_c, r57shell", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3mhRomInfo, md_umk3mhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat 3 Arcade Hack Version 0.6 (By Nemesis_c)
// https://www.romhacking.net/hacks/3158/
static struct BurnRomInfo md_umk3h06RomDesc[] = {
	{ "Ultimate Mortal Kombat 3 Arcade Hack Ver. 0.6 (By Nemesis_c).bin", 0x5f59da, 0xd8c152ff, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3h06)
STD_ROM_FN(md_umk3h06)

struct BurnDriver BurnDrvmd_umk3h06 = {
	"md_umk3h06", "md_umk3", NULL, NULL, "2012",
	"Ultimate Mortal Kombat 3 Arcade (Hack, v0.6)\0", NULL, "Nemesis_c", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3h06RomInfo, md_umk3h06RomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat 3 Arcade Hack Version 0.71 (by Nemesis_c)
static struct BurnRomInfo md_umk3hRomDesc[] = {
	{ "Ultimate Mortal Kombat 3 Hack Ver. 0.71 (By Nemesis_c).bin", 0x61263a, 0xb069ab33, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3h)
STD_ROM_FN(md_umk3h)

struct BurnDriver BurnDrvmd_umk3h = {
	"md_umk3h", "md_umk3", NULL, NULL, "2012",
	"Ultimate Mortal Kombat 3 Arcade (Hack, v0.71)\0", NULL, "Nemesis_c", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3hRomInfo, md_umk3hRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Mortal Kombat 3 OSC (Hack, v29a) - 2024-03-02
static struct BurnRomInfo md_umk3oscRomDesc[] = {
	{ "Ultimate Mortal Kombat 3 OSC v29a (2024)(Bonus).bin", 5458706, 0x263cb534, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_umk3osc)
STD_ROM_FN(md_umk3osc)

struct BurnDriver BurnDrvmd_umk3osc = {
	"md_umk3osc", "md_umk3", NULL, NULL, "2024",
	"Ultimate Mortal Kombat 3 OSC (Hack, v29a)\0", NULL, "Bonus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_umk3oscRomInfo, md_umk3oscRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vapor Trail (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2465/
static struct BurnRomInfo md_vaportrecRomDesc[] = {
	{ "vapor trail (enhanced colors)(v2.0).md", 1048576, 0x8ed751a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vaportrec)
STD_ROM_FN(md_vaportrec)

struct BurnDriver BurnDrvmd_vaportrec = {
	"md_vaportrec", "md_vaportr", NULL, NULL, "2015",
	"Vapor Trail (Hack, Enhanced Colors)\0", NULL, "Pyron", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_vaportrecRomInfo, md_vaportrecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Boy III - Monster Lair (Hack, Arcade Colors)
// https://www.romhacking.net/hacks/5093/
static struct BurnRomInfo md_wboy3acRomDesc[] = {
	{ "wonder boy iii - monster lair (arcade colors).md", 524288, 0x60b87e9c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wboy3ac)
STD_ROM_FN(md_wboy3ac)

struct BurnDriver BurnDrvmd_wboy3ac = {
	"md_wboy3ac", "md_wboy3", NULL, NULL, "2020",
	"Wonder Boy III - Monster Lair (Hack, Arcade Colors)\0", NULL, "Sega -fabio", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_wboy3acRomInfo, md_wboy3acRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// WWF Royal Rumble Enhanced Colors + SFX (Hack, v1.05)
// https://www.romhacking.net/hacks/8078/
static struct BurnRomInfo md_wwfroyalimpRomDesc[] = {
	{ "WWF Royal Rumble Enhanced Colors + SFX v1.05 (2023)(Byros).bin", 2097152, 0xd6f4d1ed, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wwfroyalimp)
STD_ROM_FN(md_wwfroyalimp)

struct BurnDriver BurnDrvmd_wwfroyalimp = {
	"md_wwfroyalimp", "md_wwfroyal", NULL, NULL, "2023",
	"WWF Royal Rumble Enhanced Colors + SFX (Hack, v1.05)\0", NULL, "Byros", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_wwfroyalimpRomInfo, md_wwfroyalimpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xenon 2 - Megablast (Hack, Amiga Colors)
// https://www.romhacking.net/hacks/2937/
static struct BurnRomInfo md_xenon2acRomDesc[] = {
	{ "xenon 2 megablast (amiga colors).md", 524288, 0x39f41e6c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xenon2ac)
STD_ROM_FN(md_xenon2ac)

struct BurnDriver BurnDrvmd_xenon2ac = {
	"md_xenon2ac", "md_xenon2", NULL, NULL, "2016",
	"Xenon 2 - Megablast (Hack, Amiga Colors)\0", NULL, "fusaru", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_xenon2acRomInfo, md_xenon2acRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};


// -------------------------
// Chinese Translation Hacks
// -------------------------


// Aoki Ookami to Shiroki Mejika - Genchou Hishi (Hack, Chinese)
// Translation by SKOB
static struct BurnRomInfo md_genchohicRomDesc[] = {
	{ "aoki ookami to shiroki meshika - genchou hishi (T-Chi).bin", 0x140000, 0x7c161c48, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_genchohic)
STD_ROM_FN(md_genchohic)

struct BurnDriver BurnDrvmd_genchohic = {
	"md_genchohic", "md_genghis2", NULL, NULL, "199?",
	"Aoki Ookami to Shiroki Mejika - Genchou Hishi (Hack, Chinese)\0", NULL, "SKOB", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_genchohicRomInfo, md_genchohicRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dial Q o Mawase! (Hack, Chinese) (Unl)
// Translation by Phanteam
static struct BurnRomInfo md_dialqocRomDesc[] = {
	{ "dial q o mawase! (T-Chi) (unl).bin", 0x100000, 0x1002c02f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dialqoc)
STD_ROM_FN(md_dialqoc)

struct BurnDriver BurnDrvmd_dialqoc = {
	"md_dialqoc", "md_dialqo", NULL, NULL, "200?",
	"Dial Q o Mawase! (Hack, Chinese) (Unl)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_MAHJONG | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_dialqocRomInfo, md_dialqocRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// From TV Animation Slam Dunk - Kyougou Makkou Taiketsu! (Hack, Chinese)
// Translation by Bear Team
static struct BurnRomInfo md_slamdunkcRomDesc[] = {
	{ "from tv animation slam dunk - kyougou makkou taiketsu! (T-Chi).bin", 0x200000, 0x89253739, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slamdunkc)
STD_ROM_FN(md_slamdunkc)

struct BurnDriver BurnDrvmd_slamdunkc = {
	"md_slamdunkc", "md_slamdunk", NULL, NULL, "200?",
	"From TV Animation Slam Dunk - Kyougou Makkou Taiketsu! (Hack, Chinese)\0", NULL, "Bear Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_slamdunkcRomInfo, md_slamdunkcRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gunstar Heroes (Hack, Chinese)
// Translation by ???
static struct BurnRomInfo md_gunstarcRomDesc[] = {
	{ "gunstar heroes (T-Chi).bin", 0x200000, 0xa046c36e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunstarc)
STD_ROM_FN(md_gunstarc)

struct BurnDriver BurnDrvmd_gunstarc = {
	"md_gunstarc", "md_gunstar", NULL, NULL, "2018",
	"Gunstar Heroes (Hack, Chinese)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gunstarcRomInfo, md_gunstarcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Hybrid Front, The (Hack, Chinese)
// Translation by cslrxyz
static struct BurnRomInfo md_hybridfcRomDesc[] = {
	{ "hybrid front, the (T-Chi).bin", 0x200000, 0x0d6d06f6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hybridfc)
STD_ROM_FN(md_hybridfc)

struct BurnDriver BurnDrvmd_hybridfc = {
	"md_hybridfc", "md_hybridf", NULL, NULL, "200?",
	"Hybrid Front, The (Hack, Chinese)\0", NULL, "cslrxyz", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_hybridfcRomInfo, md_hybridfcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - Koutei no Zaihou (Hack, Chinese)
// Translation by Yi Zhi Zhi Lu
static struct BurnRomInfo md_landstlkcRomDesc[] = {
	{ "landstalker - koutei no zaihou (T-Chi).bin", 0x230000, 0xd2982a65, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlkc)
STD_ROM_FN(md_landstlkc)

struct BurnDriver BurnDrvmd_landstlkc = {
	"md_landstlkc", "md_landstlk", NULL, NULL, "2007",
	"Landstalker - Koutei no Zaihou (Hack, Chinese)\0", NULL, "Yi Zhi Zhi Lu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM | HARDWARE_SEGA_MEGADRIVE_SRAM_10000, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlkcRomInfo, md_landstlkcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser Hikari II (Hack, Chinese)
// Translation by Xing Kong
static struct BurnRomInfo md_langris2cRomDesc[] = {
	{ "Langrisser Hikari II (T-Chi).bin", 0x200000, 0x26233aee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langris2c)
STD_ROM_FN(md_langris2c)


struct BurnDriver BurnDrvmd_langris2c = {
	"md_langris2c", "md_langris2", NULL, NULL, "2015",
	"Langrisser Hikari II (Hack, Chinese)\0", NULL, "Xing Kong", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_langris2cRomInfo, md_langris2cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monster World IV (Hack, Chinese v2)
// Translation by wolfteam & HA MU
static struct BurnRomInfo md_mworld4cRomDesc[] = {
	{ "Monster World IV (T-Chi, v2).bin", 0x200000, 0x08d46b12, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mworld4c)
STD_ROM_FN(md_mworld4c)

struct BurnDriver BurnDrvmd_mworld4c = {
	"md_mworld4c", "md_mworld4", NULL, NULL, "2019",
	"Monster World IV (Hack, Chinese v2)\0", NULL, "Wolfteam & HA MU", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mworld4cRomInfo, md_mworld4cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// NHK Taiga Drama - Taiheiki (Hack, Chinese)
// Translation by cslrxyz
static struct BurnRomInfo md_nhktaidrcRomDesc[] = {
	{ "nhk taiga drama - taiheiki (T-Chi).bin", 0x100000, 0x19864175, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nhktaidrc)
STD_ROM_FN(md_nhktaidrc)

struct BurnDriver BurnDrvmd_nhktaidrc = {
	"md_nhktaidrc", "md_nhktaidr", NULL, NULL, "199?",
	"NHK Taiga Drama - Taiheiki (Hack, Chinese)\0", NULL, "cslrxyz", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nhktaidrcRomInfo, md_nhktaidrcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ninja Burai Densetsu (Hack, Chinese)
// Translation by Xu Yong Sheng
static struct BurnRomInfo md_ninjabtRomDesc[] = {
	{ "ninja burai densetsu (T-Chi).bin", 0x100000, 0x107cbf61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ninjabt)
STD_ROM_FN(md_ninjabt)

struct BurnDriver BurnDrvmd_ninjabt = {
	"md_ninjabt", "md_ninjab", NULL, NULL, "199?",
	"Ninja Burai Densetsu (Hack, Chinese)\0", NULL, "Xu Yong Sheng", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_ninjabtRomInfo, md_ninjabtRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Nobunaga no Yabou - Haouden (Hack, Chinese)
// Translation by Xu Yong Sheng
static struct BurnRomInfo md_nobuhaocRomDesc[] = {
	{ "nobunaga no yabou - haouden (T-Chi).bin", 0x200000, 0x0a0993cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_nobuhaoc)
STD_ROM_FN(md_nobuhaoc)

struct BurnDriver BurnDrvmd_nobuhaoc = {
	"md_nobuhaoc", "md_nobuhao", NULL, NULL, "199?",
	"Nobunaga no Yabou - Haouden (Hack, Chinese)\0", NULL, "Xu Yong Sheng", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 8, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_nobuhaocRomInfo, md_nobuhaocRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pac-Man 2 - The New Adventures (Hack, Chinese v1.1)
// http://www.nesbbs.com/bbs/thread-45543-1-1.html
static struct BurnRomInfo md_pacman2cRomDesc[] = {
	{ "pac-man 2 - the new adventures (t-chi, v1.1).bin", 0x280000, 0x9dde7643, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pacman2c)
STD_ROM_FN(md_pacman2c)

struct BurnDriver BurnDrvmd_pacman2c = {
	"md_pacman2c", "md_pacman2", NULL, NULL, "2018",
	"Pac-Man 2 - The New Adventures (Hack, Chinese v1.1)\0", NULL, "Axi", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_pacman2cRomInfo, md_pacman2cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Phantasy Star - The End of the Millennium (Hack, Chinese v1.6)
// https://yzzl.kxb4u.com/viewthread.php?tid=115457&extra=page%3D1
static struct BurnRomInfo md_pstar4cRomDesc[] = {
	{ "phantasy star - the end of the millennium (t-chi, v1.6).bin", 0x320000, 0x0db82dd1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pstar4c)
STD_ROM_FN(md_pstar4c)

struct BurnDriver BurnDrvmd_pstar4c = {
	"md_pstar4c", "md_pstar4", NULL, NULL, "2022",
	"Phantasy Star - The End of the Millennium (Hack, Chinese v1.6)\0", NULL, "Ken_Tse", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_pstar4cRomInfo, md_pstar4cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force II - Koe no Fuuin (Hack, Chinese v2)
// Translation by Yi Zhi Zhi Lu
static struct BurnRomInfo md_shinfrc2cRomDesc[] = {
	{ "shining force ii - koe no fuuin (T-Chi, v2).bin", 0x300000, 0x5dd08aea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrc2c)
STD_ROM_FN(md_shinfrc2c)

struct BurnDriver BurnDrvmd_shinfrc2c = {
	"md_shinfrc2c", "md_shinfrc2", NULL, NULL, "2007",
	"Shining Force II - Koe no Fuuin (Hack, Chinese v2)\0", NULL, "Yi Zhi Zhi Lu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrc2cRomInfo, md_shinfrc2cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shin Souseiki Ragnacenty (Hack, Chinese)
// Translation by Xu Yong Sheng
static struct BurnRomInfo md_ragnacencRomDesc[] = {
	{ "shin souseiki ragnacenty (T-Chi).bin", 0x200000, 0xa6dce438, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ragnacenc)
STD_ROM_FN(md_ragnacenc)

struct BurnDriver BurnDrvmd_ragnacenc = {
	"md_ragnacenc", "md_soleil", NULL, NULL, "199?",
	"Shin Souseiki Ragnacenty (Hack, Chinese)\0", NULL, "Xu Yong Sheng", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_ragnacencRomInfo, md_ragnacencRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Story of Thor, The - Hikari o Tsugumono (Hack, Chinese)
// Translation by KEN & MADCELL
static struct BurnRomInfo md_thorcRomDesc[] = {
	{ "story of thor, the - hikari o tsugumono (T-Chi).bin", 0x300000, 0x3ca3fcd7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_thorc)
STD_ROM_FN(md_thorc)

struct BurnDriver BurnDrvmd_thorc = {
	"md_thorc", "md_thor", NULL, NULL, "2004",
	"Story of Thor, The - Hikari o Tsugumono (Hack, Chinese)\0", NULL, "YUZO", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_thorcRomInfo, md_thorcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Shinobi II, The (Hack, Chinese)
// Translation by cslrxyz
static struct BurnRomInfo md_supshin2cRomDesc[] = {
	{ "super shinobi ii, the (Chinese).bin", 0x100000, 0x8d8fb732, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_supshin2c)
STD_ROM_FN(md_supshin2c)

struct BurnDriver BurnDrvmd_supshin2c = {
	"md_supshin2c", "md_shinobi3", NULL, NULL, "2009",
	"Super Shinobi II, The (Hack, Chinese)\0", NULL, "cslrxyz", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_supshin2cRomInfo, md_supshin2cRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Surging Aura (Hack, Chinese)
// Translation by Yi Zhi Zhi Lu
static struct BurnRomInfo md_surgingcRomDesc[] = {
	{ "surging aura (T-Chi).bin", 0x240000, 0x38a17fd0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_surgingc)
STD_ROM_FN(md_surgingc)

struct BurnDriver BurnDrvmd_surgingc = {
	"md_surgingc", "md_surging", NULL, NULL, "199?",
	"Surging Aura (Hack, Chinese)\0", NULL, "Yi Zhi Zhi Lu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_surgingcRomInfo, md_surgingcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Taikou Risshiden (Hack, Chinese)
// Translation by Xu Yong Sheng
static struct BurnRomInfo md_taikoriscRomDesc[] = {
	{ "taikou risshiden (T-Chi).bin", 0x140000, 0x185f7902, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_taikorisc)
STD_ROM_FN(md_taikorisc)

struct BurnDriver BurnDrvmd_taikorisc = {
	"md_taikorisc", "md_taikoris", NULL, NULL, "2009",
	"Taikou Risshiden (Hack, Chinese)\0", NULL, "Xu Yong Sheng", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_RPG, 0,
	MegadriveGetZipName, md_taikoriscRomInfo, md_taikoriscRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero Wing (Hack, Chinese)
// Translation by Bear Team
static struct BurnRomInfo md_zerowingcRomDesc[] = {
	{ "zero wing (T-Chi).bin", 0x100000, 0x7218212f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zerowingc)
STD_ROM_FN(md_zerowingc)

struct BurnDriver BurnDrvmd_zerowingc = {
	"md_zerowingc", "md_zerowing", NULL, NULL, "200?",
	"Zero Wing (Hack, Chinese)\0", NULL, "Bear Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_zerowingcRomInfo, md_zerowingcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};


// -------------------------
// Spanish Translation Hacks
// -------------------------


// 3 Ninjas Kick Back (Hack, Spanish)
// https://www.romhacking.net/translations/2785/
static struct BurnRomInfo md_3ninjasRomDesc[] = {
	{ "3 Ninjas Kick Back (Hack, Spanish)(2018)(Wave).bin", 2097152, 0x9a0e98a9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_3ninjas)
STD_ROM_FN(md_3ninjas)

struct BurnDriver BurnDrvmd_3ninjass = {
	"md_3ninjas", "md_3ninja", NULL, NULL, "2018",
	"3 Ninjas Kick Back (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_3ninjasRomInfo, md_3ninjasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Action 52 (Hack, Spanish)
// https://www.romhacking.net/translations/3599/
static struct BurnRomInfo md_action52sRomDesc[] = {
	{ "Action 52 (Hack, Spanish)(2018)(Wave).bin", 2097152, 0x26e09366, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_action52s)
STD_ROM_FN(md_action52s)

struct BurnDriver BurnDrvmd_action52s = {
	"md_action52s", "md_action52", NULL, NULL, "2018",
	"Action 52 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_MISC, 0,
	MegadriveGetZipName, md_action52sRomInfo, md_action52sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Addams Family Values (Hack, Spanish)
// https://www.romhacking.net/translations/5708/
static struct BurnRomInfo md_addfamvsRomDesc[] = {
	{ "Addams Family Values (Hack, Spanish)(2020)(jackic).bin", 2101280, 0x07cf6ffd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_addfamvs)
STD_ROM_FN(md_addfamvs)

struct BurnDriver BurnDrvmd_addfamvs = {
	"md_addfamvs", "md_addfamv", NULL, NULL, "2020",
	"Addams Family Values (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_addfamvsRomInfo, md_addfamvsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aero the Acro-Bat (Hack, Spanish)
// https://www.romhacking.net/translations/4378/
static struct BurnRomInfo md_aerosRomDesc[] = {
	{ "Aero The Acro-Bat (Hack, Spanish)(2020)(Wave).bin", 1048576, 0xfcaf58d3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aeros)
STD_ROM_FN(md_aeros)

struct BurnDriver BurnDrvmd_aeros = {
	"md_aeros", "md_aero", NULL, NULL, "2020",
	"Aero The Acro-Bat (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aerosRomInfo, md_aerosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};


// Aero the Acro-Bat 2 (Hack, Spanish)
// https://www.romhacking.net/translations/5027/
static struct BurnRomInfo md_aero2sRomDesc[] = {
	{ "Aero The Acro-Bat 2 (Hack, Spanish)(2020)(Wave).bin", 2097152, 0x096c0978, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aero2s)
STD_ROM_FN(md_aero2s)

struct BurnDriver BurnDrvmd_aero2s = {
	"md_aero2s", "md_aero2", NULL, NULL, "2020",
	"Aero The Acro-Bat 2 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aero2sRomInfo, md_aero2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// After Burner II (Hack, Spanish)
// https://www.romhacking.net/translations/4168/
static struct BurnRomInfo md_aburner2sRomDesc[] = {
	{ "after burner II (hack, spanish).bin", 524288, 0x2e08b330, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aburner2s)
STD_ROM_FN(md_aburner2s)

struct BurnDriver BurnDrvmd_aburner2s = {
	"md_aburner2s", "md_aburner2", NULL, NULL, "2020",
	"After Burner II (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_aburner2sRomInfo, md_aburner2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alex Kidd in the Enchanted Castle (Hack, Spanish)
// https://www.romhacking.net/translations/3109/
static struct BurnRomInfo md_alexkiddsRomDesc[] = {
	{ "Alex Kidd In The Enchanted Castle (Hack, Spanish)(2017)(Wave).bin", 262144, 0xd2f3a29e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alexkidds)
STD_ROM_FN(md_alexkidds)

struct BurnDriver BurnDrvmd_alexkidds = {
	"md_alexkidds", "md_alexkidd", NULL, NULL, "2017",
	"Alex Kidd In The Enchanted Castle (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alexkiddsRomInfo, md_alexkiddsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien³ (Hack, Spanish)
// https://www.romhacking.net/translations/3436/
static struct BurnRomInfo md_alien3sRomDesc[] = {
	{ "Alien 3 (Hack, Spanish)(2020)(Wave).bin", 524288, 0x701d308e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alien3s)
STD_ROM_FN(md_alien3s)

struct BurnDriver BurnDrvmd_alien3s = {
	"md_alien3s", "md_alien3", NULL, NULL, "2020",
	"Alien 3 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	L"Alien\u00b3 (Hack, Spanish)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alien3sRomInfo, md_alien3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Soldier (Hack, Spanish)
// https://www.romhacking.net/translations/5551/
static struct BurnRomInfo md_aliensolsRomDesc[] = {
	{ "Alien Soldier (Hack, Spanish)(2017)(Wave).bin", 2097152, 0xab991070, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aliensols)
STD_ROM_FN(md_aliensols)

struct BurnDriver BurnDrvmd_aliensols = {
	"md_aliensols", "md_aliensol", NULL, NULL, "2017",
	"Alien Soldier (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aliensolsRomInfo, md_aliensolsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alien Storm (Hack, Spanish)
// https://www.romhacking.net/translations/3503/
static struct BurnRomInfo md_astormsRomDesc[] = {
	{ "Alien Storm (Hack, Spanish)(2018)(Wave).bin", 524288, 0xf79748ce, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_astorms)
STD_ROM_FN(md_astorms)

struct BurnDriver BurnDrvmd_astorms = {
	"md_astorms", "md_astorm", NULL, NULL, "2018",
	"Alien Storm (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_SHOOT, 0,
	MegadriveGetZipName, md_astormsRomInfo, md_astormsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Air Diver (Hack, Spanish)
// https://www.romhacking.net/translations/4771/
static struct BurnRomInfo md_airdiversRomDesc[] = {
	{ "Air Diver (Hack, Spanish)(2020)(Wave).bin", 524288, 0x3ce6094a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_airdivers)
STD_ROM_FN(md_airdivers)

struct BurnDriver BurnDrvmd_airdivers = {
	"md_airdivers", "md_airdiver", NULL, NULL, "2020",
	"Air Diver (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_airdiversRomInfo, md_airdiversRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Alisia Dragoon (Hack, Spanish)
//https://www.romhacking.net/translations/3669/
static struct BurnRomInfo md_alisiadsRomDesc[] = {
	{ "Alisia Dragoon (Hack, Spanish)(2018)(Wave).bin", 1048576, 0x13fc10e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_alisiads)
STD_ROM_FN(md_alisiads)

struct BurnDriver BurnDrvmd_alisiads = {
	"md_alisiads", "md_alisiad", NULL, NULL, "2018",
	"Alisia Dragoon (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_alisiadsRomInfo, md_alisiadsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Altered Beast (Hack, Spanish)
//https://www.romhacking.net/translations/3179/
static struct BurnRomInfo md_altbeastsRomDesc[] = {
	{ "Altered Beast (Hack, Spanish)(2017)(Wave).bin", 524288, 0xe4ea5e40, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_altbeasts)
STD_ROM_FN(md_altbeasts)

struct BurnDriver BurnDrvmd_altbeasts = {
	"md_altbeasts", "md_altbeast", NULL, NULL, "2017",
	"Altered Beast (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_altbeastsRomInfo, md_altbeastsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Animaniacs (Hack, Spanish)
//https://www.romhacking.net/translations/3425/
static struct BurnRomInfo md_animaniasRomDesc[] = {
	{ "Animaniacs (Hack, Spanish)(2018)(Wave).bin", 1048576, 0xcceaf148, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_animanias)
STD_ROM_FN(md_animanias)

struct BurnDriver BurnDrvmd_animanias = {
	"md_animanias", "md_animania", NULL, NULL, "2018",
	"Animaniacs (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_animaniasRomInfo, md_animaniasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Aquatic Games Starring James Pond and the Aquabats, The (Hack, Spanish)
// https://www.romhacking.net/translations/4932/
static struct BurnRomInfo md_aquagamesRomDesc[] = {
	{ "Aquatic Games Starring James Pond and the Aquabats, The (Hack, Spanish)(2019)(Wave).bin", 524288, 0x1776fc2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aquagames)
STD_ROM_FN(md_aquagames)

struct BurnDriver BurnDrvmd_aquagames = {
	"md_aquagames", "md_aquagame", NULL, NULL, "2019",
	"Aquatic Games Starring James Pond and the Aquabats, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_aquagamesRomInfo, md_aquagamesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ariel (Hack, Spanish)
//https://www.romhacking.net/translations/4273/
static struct BurnRomInfo md_arielsRomDesc[] = {
	{ "Disney's Ariel the Little Mermaid (Hack, Spanish)(2019)(Wave).bin", 524288, 0x599a1bfb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ariels)
STD_ROM_FN(md_ariels)

struct BurnDriver BurnDrvmd_ariels = {
	"md_ariels", "md_ariel", NULL, NULL, "2019",
	"Disney's Ariel the Little Mermaid (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_arielsRomInfo, md_arielsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Arrow Flash (Hack, Spanish)
//https://www.romhacking.net/translations/4379/
static struct BurnRomInfo md_arrowsRomDesc[] = {
	{ "Arrow Flash (Hack, Spanish)(2019)(Wave).bin", 524288, 0x06421584, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_arrows)
STD_ROM_FN(md_arrows)

struct BurnDriver BurnDrvmd_arrows = {
	"md_arrows", "md_arrow", NULL, NULL, "2019",
	"Arrow Flash (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_arrowsRomInfo, md_arrowsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Art of Fighting (Hack, Spanish)
//https://www.romhacking.net/translations/3083/
static struct BurnRomInfo md_aofsRomDesc[] = {
	{ "Art Of Fighting (Hack, Spanish)(2019)(Wave).bin", 2097152, 0x60ffdc60, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aofs)
STD_ROM_FN(md_aofs)

struct BurnDriver BurnDrvmd_aofs = {
	"md_aofs", "md_aof", NULL, NULL, "2019",
	"Art Of Fighting (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_aofsRomInfo, md_aofsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Atomic Robo-Kid (Hack, Spanish)
//https://www.romhacking.net/translations/3083/
static struct BurnRomInfo md_atomrobosRomDesc[] = {
	{ "Atomic Robo-Kid (Hack, Spanish)(2019)(Wave).bin", 524288, 0xce250d1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atomrobos)
STD_ROM_FN(md_atomrobos)

struct BurnDriver BurnDrvmd_atomrobos = {
	"md_atomrobos", "md_atomrobo", NULL, NULL, "2019",
	"Atomic Robo-Kid (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_atomrobosRomInfo, md_atomrobosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Atomic Runner (Hack, Spanish)
//https://www.romhacking.net/translations/3526/
static struct BurnRomInfo md_atomrunsRomDesc[] = {
	{ "Atomic Runner (Hack, Spanish)(2018)(Wave).bin", 1048576, 0x930a9593, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_atomruns)
STD_ROM_FN(md_atomruns)

struct BurnDriver BurnDrvmd_atomruns = {
	"md_atomruns", "md_atomrun", NULL, NULL, "2018",
	"Atomic Runner (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_atomrunsRomInfo, md_atomrunsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Back to the Future Part III  (Hack, Spanish)
// https://www.romhacking.net/translations/3720/
static struct BurnRomInfo md_backtof3sRomDesc[] = {
	{ "Back to the Future Part III (Hack, Spanish)(2018)(Wave).bin", 524288, 0x52493680, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_backtof3s)
STD_ROM_FN(md_backtof3s)

struct BurnDriver BurnDrvmd_backtof3s = {
	"md_backtof3s", "md_backtof3", NULL, NULL, "2018",
	"Back to the Future Part III (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_backtof3sRomInfo, md_backtof3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman Returns (Hack, Spanish)
// https://www.romhacking.net/translations/3943/
static struct BurnRomInfo md_batmanrnsRomDesc[] = {
	{ "Batman Returns (Hack, Spanish)(2018)(Wave).bin", 1048576, 0x543701ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmanrns)
STD_ROM_FN(md_batmanrns)

struct BurnDriver BurnDrvmd_batmanrns = {
	"md_batmanrns", "md_batmanrn", NULL, NULL, "2018",
	"Batman Returns (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmanrnsRomInfo, md_batmanrnsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Batman (Hack, Spanish)
// https://www.romhacking.net/translations/3175/
static struct BurnRomInfo md_batmansRomDesc[] = {
	{ "Batman (Hack, Spanish)(2019)(Wave).bin", 524288, 0xebf4ca7f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_batmans)
STD_ROM_FN(md_batmans)

struct BurnDriver BurnDrvmd_batmans = {
	"md_batmans", "md_batman", NULL, NULL, "2019",
	"Batman (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_batmansRomInfo, md_batmansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Golfer Yui (Hack, Spanish)
// https://www.romhacking.net/translations/5485/
static struct BurnRomInfo md_battlyuisRomDesc[] = {
	{ "Battle Golfer Yui (Hack, Spanish)(2020)(Luceid).bin", 1048576, 0x1ed9c6d0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlyuis)
STD_ROM_FN(md_battlyuis)

struct BurnDriver BurnDrvmd_battlyuis = {
	"md_battlyuis", "md_battlyui", NULL, NULL, "2020",
	"Battle Golfer Yui (Hack, Spanish)\0", NULL, "Luceid", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC | GBF_ADV, 0,
	MegadriveGetZipName, md_battlyuisRomInfo, md_battlyuisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Mania Daiginjou (Hack, Spanish)
// https://www.romhacking.net/translations/2071/
static struct BurnRomInfo md_btlmanidsRomDesc[] = {
	{ "Battle Mania Daiginjou (Hack, Spanish)(2013)(pepodmc).bin", 1048576, 0x9e0ef510, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btlmanids)
STD_ROM_FN(md_btlmanids)

struct BurnDriver BurnDrvmd_btlmanids = {
	"md_btlmanids", "md_btlmanid", NULL, NULL, "2013",
	"Battle Mania Daiginjou (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_btlmanidsRomInfo, md_btlmanidsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battle Squadron (Hack, Spanish)
// https://www.romhacking.net/translations/3659/
static struct BurnRomInfo md_battlesqsRomDesc[] = {
	{ "Battle Squadron (Hack, Spanish)(2018)(Wave).bin", 524288, 0xcde81fbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_battlesqs)
STD_ROM_FN(md_battlesqs)

struct BurnDriver BurnDrvmd_battlesqs = {
	"md_battlesqs", "md_battlesq", NULL, NULL, "2018",
	"Battle Squadron (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_battlesqsRomInfo, md_battlesqsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battletoads (Hack, Spanish)
// https://www.romhacking.net/translations/3569/
static struct BurnRomInfo md_btoadssRomDesc[] = {
	{ "Battletoads (Hack, Spanish)(2018)(Wave).bin", 524288, 0xbe072fdd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btoadss)
STD_ROM_FN(md_btoadss)

struct BurnDriver BurnDrvmd_btoadss = {
	"md_btoadss", "md_btoads", NULL, NULL, "2018",
	"Battletoads (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_btoadssRomInfo, md_btoadssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Battletoads & Double Dragon (Hack, Spanish)
// https://www.romhacking.net/translations/5243/
static struct BurnRomInfo md_btoadsddsRomDesc[] = {
	{ "Battletoads & Double Dragon (Hack, Spanish)(2019)(Wave).bin", 1048576, 0x5fb95d53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_btoadsdds)
STD_ROM_FN(md_btoadsdds)

struct BurnDriver BurnDrvmd_btoadsdds = {
	"md_btoadsdds", "md_btoadsdd", NULL, NULL, "2019",
	"Battletoads & Double Dragon (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_btoadsddsRomInfo, md_btoadsddsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beauty and the Beast - Belle's Quest (Hack, Spanish)
// https://www.romhacking.net/translations/3150/
static struct BurnRomInfo md_beautysRomDesc[] = {
	{ "beauty and the beast - belle's quest (hack, spanish).bin", 1048576, 0x37123c7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beautys)
STD_ROM_FN(md_beautys)

struct BurnDriver BurnDrvmd_beautys = {
	"md_beautys", "md_beauty", NULL, NULL, "2017",
	"Disney's Beauty and the Beast - Belle's Quest (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beautysRomInfo, md_beautysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beauty and the Beast - Roar of the Beast (Hack, Spanish)
// https://www.romhacking.net/translations/3150/
static struct BurnRomInfo md_beautyrbsRomDesc[] = {
	{ "beauty and the beast - roar of the beast (hack, spanish).bin", 1048576, 0xc0f52a6d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beautyrbs)
STD_ROM_FN(md_beautyrbs)

struct BurnDriver BurnDrvmd_beautyrbs = {
	"md_beautyrbs", "md_beautyrb", NULL, NULL, "2017",
	"Disney's Beauty and the Beast - Roar of the Beast (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beautyrbsRomInfo, md_beautyrbsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Beavis and Butt-Head (Hack, Spanish)
// https://www.romhacking.net/translations/3466/
static struct BurnRomInfo md_beavissRomDesc[] = {
	{ "beavis and butt-head (hack, spanish).bin", 2097152, 0x10967d96, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beaviss)
STD_ROM_FN(md_beaviss)

struct BurnDriver BurnDrvmd_beaviss = {
	"md_beaviss", "md_beavis", NULL, NULL, "2018",
	"Beavis And Butt-Head (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_beavissRomInfo, md_beavissRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Berenstain Bears' Camping Adventure, The (Hack, Spanish)
// https://www.romhacking.net/translations/4215/
static struct BurnRomInfo md_berenssRomDesc[] = {
	{ "the berenstain bears' camping adventure (hack, spanish).bin", 1048576, 0xd2774706, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_berenss)
STD_ROM_FN(md_berenss)

struct BurnDriver BurnDrvmd_berenss = {
	"md_berenss", "md_berens", NULL, NULL, "2019",
	"Berenstain Bears' Camping Adventure, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_berenssRomInfo, md_berenssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bio Hazard Battle (Hack, Spanish)
// https://www.romhacking.net/translations/3809/
static struct BurnRomInfo md_biohazrbsRomDesc[] = {
	{ "bio hazard battle (hack, spanish).bin", 1048576, 0x5a025101, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_biohazrbs)
STD_ROM_FN(md_biohazrbs)

struct BurnDriver BurnDrvmd_biohazrbs = {
	"md_biohazrbs", "md_biohazrb", NULL, NULL, "2018",
	"Bio Hazard Battle (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_biohazrbsRomInfo, md_biohazrbsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Blades of Vengeance (Hack, Spanish)
// https://www.romhacking.net/translations/3570/
static struct BurnRomInfo md_bladevensRomDesc[] = {
	{ "blades of vengeance (hack, spanish).bin", 1048576, 0x19e90563, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bladevens)
STD_ROM_FN(md_bladevens)

struct BurnDriver BurnDrvmd_bladevens = {
	"md_bladevens", "md_bladeven", NULL, NULL, "2018",
	"Blades Of Vengeance (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bladevensRomInfo, md_bladevensRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonanza Bros. (Hack, Spanish)
// https://www.romhacking.net/translations/3325/
static struct BurnRomInfo md_bnzabrossRomDesc[] = {
	{ "bonanza bros. (hack, spanish).bin", 524288, 0x96f3fba6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bnzabross)
STD_ROM_FN(md_bnzabross)

struct BurnDriver BurnDrvmd_bnzabross = {
	"md_bnzabross", "md_bnzabros", NULL, NULL, "2017",
	"Bonanza Bros. (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_bnzabrossRomInfo, md_bnzabrossRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bonkers (Hack, Spanish)
// https://www.romhacking.net/translations/4236/
static struct BurnRomInfo md_bonkerssRomDesc[] = {
	{ "bonkers (hack, spanish).bin", 1048576, 0x2bde8dc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bonkerss)
STD_ROM_FN(md_bonkerss)

struct BurnDriver BurnDrvmd_bonkerss = {
	"md_bonkerss", "md_bonkers", NULL, NULL, "2019",
	"Bonkers (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_bonkerssRomInfo, md_bonkerssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubba'n'Stix - a strategy adventure (Hack, Spanish)
// https://www.romhacking.net/translations/4840/
static struct BurnRomInfo md_bubbasRomDesc[] = {
	{ "bubba'n'stix - a strategy adventure (hack, spanish).bin", 1048576, 0xdcd45650, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubbas)
STD_ROM_FN(md_bubbas)

struct BurnDriver BurnDrvmd_bubbas = {
	"md_bubbas", "md_bubba", NULL, NULL, "2019",
	"Bubba'n'Stix - A Strategy Adventure (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubbasRomInfo, md_bubbasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bubble and Squeak (Hack, Spanish)
// https://www.romhacking.net/translations/4841/
static struct BurnRomInfo md_bubblesqsRomDesc[] = {
	{ "bubble and squeak (hack, spanish).bin", 524288, 0x5d67b1c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubblesqs)
STD_ROM_FN(md_bubblesqs)

struct BurnDriver BurnDrvmd_bubblesqs = {
	"md_bubblesqs", "md_bubblesq", NULL, NULL, "2019",
	"Bubble and Squeak (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubblesqsRomInfo, md_bubblesqsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// bubsy in claws encounters of the furred kind (Hack, Spanish)
// https://www.romhacking.net/translations/4731/
static struct BurnRomInfo md_bubsysRomDesc[] = {
	{ "bubsy in claws encounters of the furred kind (hack, spanish).bin", 2097152, 0x0db8ca11, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bubsys)
STD_ROM_FN(md_bubsys)

struct BurnDriver BurnDrvmd_bubsys = {
	"md_bubsys", "md_bubsy", NULL, NULL, "2019",
	"Bubsy In Claws Encounters Of The Furred Kind (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bubsysRomInfo, md_bubsysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// cadash (Hack, Spanish)
// https://www.romhacking.net/translations/5536/
static struct BurnRomInfo md_cadashsRomDesc[] = {
	{ "cadash (hack, spanish).bin", 524288, 0x1bcfdc31, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cadashs)
STD_ROM_FN(md_cadashs)

struct BurnDriver BurnDrvmd_cadashs = {
	"md_cadashs", "md_cadash", NULL, NULL, "2020",
	"Cadash (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_RPG, 0,
	MegadriveGetZipName, md_cadashsRomInfo, md_cadashsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// caliber .50 (Hack, Spanish)
// https://www.romhacking.net/translations/4560/
static struct BurnRomInfo md_cal50sRomDesc[] = {
	{ "caliber .50 (hack, spanish).bin", 1048576, 0xa6ebf46f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cal50s)
STD_ROM_FN(md_cal50s)

struct BurnDriver BurnDrvmd_cal50s = {
	"md_cal50s", "md_cal50", NULL, NULL, "2019",
	"Cal.50 - Caliber Fifty  (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cal50sRomInfo, md_cal50sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// captain planet and the planeteers (Hack, Spanish)
// https://www.romhacking.net/translations/3957/
static struct BurnRomInfo md_captplansRomDesc[] = {
	{ "captain planet and the planeteers (hack, spanish).bin", 524288, 0xc939d288, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_captplans)
STD_ROM_FN(md_captplans)

struct BurnDriver BurnDrvmd_captplans = {
	"md_captplans", "md_captplan", NULL, NULL, "2018",
	"Captain Planet And The Planeteers (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_captplansRomInfo, md_captplansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// castle of illusion starring mickey mouse (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/2119/
static struct BurnRomInfo md_castlillsRomDesc[] = {
	{ "Castle of illusion Starring Mickey Mouse T-Spa v2.0 (2023)(Jate).bin", 1048576, 0x0d72c89d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_castlills)
STD_ROM_FN(md_castlills)

struct BurnDriver BurnDrvmd_castlills = {
	"md_castlills", "md_castlill", NULL, NULL, "2023",
	"Castle Of Illusion Starring Mickey Mouse (Hack, Spanish v2.0)\0", NULL, "Jate", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_castlillsRomInfo, md_castlillsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// castlevania - bloodlines (Hack, Spanish)
// https://www.romhacking.net/translations/3187/
static struct BurnRomInfo md_cvaniasRomDesc[] = {
	{ "castlevania - bloodlines (hack, spanish).bin", 1048576, 0x6107d697, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cvanias)
STD_ROM_FN(md_cvanias)

struct BurnDriver BurnDrvmd_cvanias = {
	"md_cvanias", "md_cvania", NULL, NULL, "2017",
	"Castlevania - Bloodlines (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_cvaniasRomInfo, md_cvaniasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// chakan (Hack, Spanish)
// https://www.romhacking.net/translations/4296/
static struct BurnRomInfo md_chakansRomDesc[] = {
	{ "chakan (hack, spanish).bin", 1048576, 0x5efeccac, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chakans)
STD_ROM_FN(md_chakans)

struct BurnDriver BurnDrvmd_chakans = {
	"md_chakans", "md_chakan", NULL, NULL, "2019",
	"Chakan (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chakansRomInfo, md_chakansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// chester cheetah - wild wild quest (Hack, Spanish)
// https://www.romhacking.net/translations/4541/
static struct BurnRomInfo md_chesterwsRomDesc[] = {
	{ "chester cheetah - wild wild quest (hack, spanish).bin", 1048576, 0x031bc0b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chesterws)
STD_ROM_FN(md_chesterws)

struct BurnDriver BurnDrvmd_chesterws = {
	"md_chesterws", "md_chesterw", NULL, NULL, "2019",
	"Chester Cheetah - Wild Wild Quest (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chesterwsRomInfo, md_chesterwsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// chuck rock (Hack, Spanish)
// https://www.romhacking.net/translations/3977/
static struct BurnRomInfo md_chuckrcksRomDesc[] = {
	{ "chuck rock (hack, spanish).bin", 1048576, 0x97bea810, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chuckrcks)
STD_ROM_FN(md_chuckrcks)

struct BurnDriver BurnDrvmd_chuckrcks = {
	"md_chuckrcks", "md_chuckrck", NULL, NULL, "2018",
	"Chuck Rock (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chuckrcksRomInfo, md_chuckrcksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// chuck rock ii - son of chuck (Hack, Spanish)
// https://www.romhacking.net/translations/3971/
static struct BurnRomInfo md_chukrck2sRomDesc[] = {
	{ "chuck rock ii - son of chuck (hack, spanish).bin", 1048576, 0x7b46f45e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chukrck2s)
STD_ROM_FN(md_chukrck2s)

struct BurnDriver BurnDrvmd_chukrck2s = {
	"md_chukrck2s", "md_chukrck2", NULL, NULL, "2018",
	"Chuck Rock II - Son Of Chuck (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_chukrck2sRomInfo, md_chukrck2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// combat cars (Hack, Spanish)
// https://www.romhacking.net/translations/4978/
static struct BurnRomInfo md_combatcasRomDesc[] = {
	{ "combat cars (hack, spanish).bin", 1048576, 0xea3af06f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_combatcas)
STD_ROM_FN(md_combatcas)

struct BurnDriver BurnDrvmd_combatcas = {
	"md_combatcas", "md_combatca", NULL, NULL, "2019",
	"Combat Cars (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_combatcasRomInfo, md_combatcasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// comix zone (Hack, Spanish)
// https://www.romhacking.net/translations/2117/
static struct BurnRomInfo md_comixsRomDesc[] = {
	{ "comix zone (hack, spanish).bin", 2097152, 0x9acaffc5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_comixs)
STD_ROM_FN(md_comixs)

struct BurnDriver BurnDrvmd_comixs = {
	"md_comixs", "md_comix", NULL, NULL, "2014",
	"Comix Zone (Hack, Spanish)\0", NULL, "Kale", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_comixsRomInfo, md_comixsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// contra - hard corps (Hack, Spanish)
// https://www.romhacking.net/translations/2070/
static struct BurnRomInfo md_contrasRomDesc[] = {
	{ "contra - hard corps (hack, spanish).bin", 2097152, 0xd421f78d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_contras)
STD_ROM_FN(md_contras)

struct BurnDriver BurnDrvmd_contras = {
	"md_contras", "md_contra", NULL, NULL, "2013",
	"Contra - Hard Corps (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_contrasRomInfo, md_contrasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// probotector (Hack, Spanish)
// https://www.romhacking.net/translations/2890/
static struct BurnRomInfo md_probotsRomDesc[] = {
	{ "probotector (hack, spanish).bin", 2097152, 0x47abdaa3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_probots)
STD_ROM_FN(md_probots)

struct BurnDriver BurnDrvmd_probots = {
	"md_probots", "md_contra", NULL, NULL, "2017",
	"Probotector (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_probotsRomInfo, md_probotsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// cool spot (Hack, Spanish)
// https://www.romhacking.net/translations/4766/
static struct BurnRomInfo md_coolspotsRomDesc[] = {
	{ "cool spot (hack, spanish).bin", 1048576, 0x40a18f52, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_coolspots)
STD_ROM_FN(md_coolspots)

struct BurnDriver BurnDrvmd_coolspots = {
	"md_coolspots", "md_coolspot", NULL, NULL, "2019",
	"Cool Spot (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_coolspotsRomInfo, md_coolspotsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// cross fire (Hack, Spanish)
// https://www.romhacking.net/translations/4190/
static struct BurnRomInfo md_xfiresRomDesc[] = {
	{ "cross fire (hack, spanish).bin", 524288, 0x628b2c53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xfires)
STD_ROM_FN(md_xfires)

struct BurnDriver BurnDrvmd_xfires = {
	"md_xfires", "md_xfire", NULL, NULL, "2019",
	"Cross Fire (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_xfiresRomInfo, md_xfiresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// crystal's pony tale (Hack, Spanish)
// https://www.romhacking.net/translations/4559/
static struct BurnRomInfo md_crystlptsRomDesc[] = {
	{ "crystal's pony tale (Hack, Spanish)", 1048576, 0x3b9e41bf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_crystlpts)
STD_ROM_FN(md_crystlpts)

struct BurnDriver BurnDrvmd_crystlpts = {
	"md_crystlpts", "md_crystlpt", NULL, NULL, "2019",
	"Crystal's Pony Tale (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_crystlptsRomInfo, md_crystlptsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// cutthroat island (Hack, Spanish)
// https://www.romhacking.net/translations/4754/
static struct BurnRomInfo md_cutthrsRomDesc[] = {
	{ "cutthroat island (Hack, Spanish)", 2097152, 0xca275ae6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cutthrs)
STD_ROM_FN(md_cutthrs)

struct BurnDriver BurnDrvmd_cutthrs = {
	"md_cutthrs", "md_cutthr", NULL, NULL, "2019",
	"Cutthroat Island (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_cutthrsRomInfo, md_cutthrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dahna megami tanjou (Hack, Spanish)
// https://www.romhacking.net/translations/3326/
static struct BurnRomInfo md_dahnamsRomDesc[] = {
	{ "dahna megami tanjou (hack, spanish).bin", 1048576, 0x50aef45d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dahnams)
STD_ROM_FN(md_dahnams)

struct BurnDriver BurnDrvmd_dahnams = {
	"md_dahnams", "md_dahnam", NULL, NULL, "2017",
	"Dahna Megami Tanjou (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dahnamsRomInfo, md_dahnamsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dark castle (Hack, Spanish)
// https://www.romhacking.net/translations/4447/
static struct BurnRomInfo md_darkcastsRomDesc[] = {
	{ "dark castle (hack, spanish).bin", 524288, 0xccb09cc4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_darkcasts)
STD_ROM_FN(md_darkcasts)

struct BurnDriver BurnDrvmd_darkcasts = {
	"md_darkcasts", "md_darkcast", NULL, NULL, "2019",
	"Dark Castle (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_darkcastsRomInfo, md_darkcastsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// daze before christmas (Hack, Spanish)
// https://www.romhacking.net/translations/3511/
static struct BurnRomInfo md_dazexmassRomDesc[] = {
	{ "daze before christmas (hack, spanish).bin", 2097152, 0x4b061cf5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dazexmass)
STD_ROM_FN(md_dazexmass)

struct BurnDriver BurnDrvmd_dazexmass = {
	"md_dazexmass", "md_dazexmas", NULL, NULL, "2018",
	"Daze Before Christmas (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dazexmassRomInfo, md_dazexmassRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// deadly moves (Hack, Spanish)
// https://www.romhacking.net/translations/4842/
static struct BurnRomInfo md_deadlymvsRomDesc[] = {
	{ "deadly moves (hack, spanish).bin", 1048576, 0xbdc2eaf1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deadlymvs)
STD_ROM_FN(md_deadlymvs)

struct BurnDriver BurnDrvmd_deadlymvs = {
	"md_deadlymvs", "md_deadlymv", NULL, NULL, "2019",
	"Deadly Moves (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_deadlymvsRomInfo, md_deadlymvsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// death duel (Hack, Spanish)
// https://www.romhacking.net/translations/4448/
static struct BurnRomInfo md_deathdlsRomDesc[] = {
	{ "death duel (hack, spanish).bin", 1048576, 0x0b7de738, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deathdls)
STD_ROM_FN(md_deathdls)

struct BurnDriver BurnDrvmd_deathdls = {
	"md_deathdls", "md_deathdl", NULL, NULL, "2019",
	"Death Duel (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_deathdlsRomInfo, md_deathdlsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// DecapAttack (Hack v2.0, Spanish)
// https://www.romhacking.net/translations/3350/
static struct BurnRomInfo md_decapattsRomDesc[] = {
	{ "DecapAttack (2022)(hack v2.0, Spanish).bin", 524288, 0x29369a7d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_decapatts)
STD_ROM_FN(md_decapatts)

struct BurnDriver BurnDrvmd_decapatts = {
	"md_decapatts", "md_decapatt", NULL, NULL, "2022",
	"DecapAttack (Hack v2.0, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_decapattsRomInfo, md_decapattsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// desert strike (Hack, Spanish v1.1)
// https://www.romhacking.net/translations/2883/
static struct BurnRomInfo md_dstrikesRomDesc[] = {
	{ "desert strike (hack, spanish).bin", 1048576, 0x09a27380, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dstrikes)
STD_ROM_FN(md_dstrikes)

struct BurnDriver BurnDrvmd_dstrikes = {
	"md_dstrikes", "md_dstrike", NULL, NULL, "2017",
	"Desert Strike (Hack, Spanish v1.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dstrikesRomInfo, md_dstrikesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// devilish - the next possession (Hack, Spanish)
// https://www.romhacking.net/translations/3811/
static struct BurnRomInfo md_devilishsRomDesc[] = {
	{ "devilish - the next possession (hack, spanish).bin", 524288, 0x83aa9530, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_devilishs)
STD_ROM_FN(md_devilishs)

struct BurnDriver BurnDrvmd_devilishs = {
	"md_devilishs", "md_devilish", NULL, NULL, "2018",
	"Devilish - The Next Possession (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_BREAKOUT, 0,
	MegadriveGetZipName, md_devilishsRomInfo, md_devilishsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dick tracy (Hack, Spanish)
// https://www.romhacking.net/translations/4521/
static struct BurnRomInfo md_dicktrsRomDesc[] = {
	{ "dick tracy (hack, spanish).bin", 524288, 0xf3b40a46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dicktrs)
STD_ROM_FN(md_dicktrs)

struct BurnDriver BurnDrvmd_dicktrs = {
	"md_dicktrs", "md_dicktr", NULL, NULL, "2019",
	"Dick Tracy (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_dicktrsRomInfo, md_dicktrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dino land (Hack, Spanish)
// https://www.romhacking.net/translations/4380/
static struct BurnRomInfo md_dinolandsRomDesc[] = {
	{ "dino land (hack, spanish).bin", 524288, 0x26f380d8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dinolands)
STD_ROM_FN(md_dinolands)

struct BurnDriver BurnDrvmd_dinolands = {
	"md_dinolands", "md_dinoland", NULL, NULL, "2019",
	"Dino Land (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dinolandsRomInfo, md_dinolandsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// aladdin (Hack, Spanish)
// https://www.romhacking.net/translations/3399/
static struct BurnRomInfo md_aladdinsRomDesc[] = {
	{ "aladdin (hack, spanish).bin",2097152, 0xa6cf0b89, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_aladdins)
STD_ROM_FN(md_aladdins)

struct BurnDriver BurnDrvmd_aladdins = {
	"md_aladdins", "md_aladdin", NULL, NULL, "2018",
	"Disney's Aladdin (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_aladdinsRomInfo, md_aladdinsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// talespin (Hack, Spanish)
// https://www.romhacking.net/translations/4221/
static struct BurnRomInfo md_talespinsRomDesc[] = {
	{ "talespin (hack, spanish).bin",524288, 0x4306e326, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_talespins)
STD_ROM_FN(md_talespins)

struct BurnDriver BurnDrvmd_talespins = {
	"md_talespins", "md_talespin", NULL, NULL, "2019",
	"TaleSpin (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_talespinsRomInfo, md_talespinsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dj boy (Hack, Spanish)
// https://www.romhacking.net/translations/3914/
static struct BurnRomInfo md_djboysRomDesc[] = {
	{ "dj boy (hack, spanish).bin",524288, 0x18614e10, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_djboys)
STD_ROM_FN(md_djboys)

struct BurnDriver BurnDrvmd_djboys = {
	"md_djboys", "md_djboy", NULL, NULL, "2018",
	"Dj Boy (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_djboysRomInfo, md_djboysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// donald in maui mallard (Hack, Spanish)
// https://www.romhacking.net/translations/4927/
static struct BurnRomInfo md_mauimallsRomDesc[] = {
	{ "donald in maui mallard (hack, spanish).bin",3145728, 0x1ba0bc17, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mauimalls)
STD_ROM_FN(md_mauimalls)

struct BurnDriver BurnDrvmd_mauimalls = {
	"md_mauimalls", "md_mauimall", NULL, NULL, "2019",
	"Donald In Maui Mallard (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mauimallsRomInfo, md_mauimallsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// double dragon (Hack, Spanish)
// https://www.romhacking.net/translations/3763/
static struct BurnRomInfo md_ddragonsRomDesc[] = {
	{ "double dragon (hack, spanish).bin",524288, 0x5b42c057, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragons)
STD_ROM_FN(md_ddragons)

struct BurnDriver BurnDrvmd_ddragons = {
	"md_ddragons", "md_ddragon", NULL, NULL, "2018",
	"Double Dragon (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragonsRomInfo, md_ddragonsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// double dragon II - the revenge (Hack, Spanish)
// https://www.romhacking.net/translations/3761/
static struct BurnRomInfo md_ddragon2sRomDesc[] = {
	{ "double dragon II - the revenge (hack, spanish).bin",524288, 0xa53fe35d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon2s)
STD_ROM_FN(md_ddragon2s)

struct BurnDriver BurnDrvmd_ddragon2s = {
	"md_ddragon2s", "md_ddragon2", NULL, NULL, "2018",
	"Double Dragon II - The Revenge (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragon2sRomInfo, md_ddragon2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// double dragon 3 - the arcade game (Hack, Spanish)
// https://www.romhacking.net/translations/3757/
static struct BurnRomInfo md_ddragon3sRomDesc[] = {
	{ "double dragon 3 - the arcade game (hack, spanish).bin",1048576, 0x4e8e616d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon3s)
STD_ROM_FN(md_ddragon3s)

struct BurnDriver BurnDrvmd_ddragon3s = {
	"md_ddragon3s", "md_ddragon3", NULL, NULL, "2018",
	"Double Dragon 3 - The Arcade Game (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_ddragon3sRomInfo, md_ddragon3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// double dragon v - the shadow falls (Hack, Spanish)
// https://www.romhacking.net/translations/3310/
static struct BurnRomInfo md_ddragon5sRomDesc[] = {
	{ "double dragon v - the shadow falls (hack, spanish).bin",3145728, 0x42c385ab, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ddragon5s)
STD_ROM_FN(md_ddragon5s)

struct BurnDriver BurnDrvmd_ddragon5s = {
	"md_ddragon5s", "md_ddragon5", NULL, NULL, "2017",
	"Double Dragon V - The Shadow Falls (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ddragon5sRomInfo, md_ddragon5sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dr. robotnik's mean bean machine (Hack, Spanish)
// https://www.romhacking.net/translations/4518/
static struct BurnRomInfo md_drrobotnsRomDesc[] = {
	{ "dr. robotnik's mean bean machine (hack, spanish).bin",1048576, 0x86ed4079, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_drrobotns)
STD_ROM_FN(md_drrobotns)

struct BurnDriver BurnDrvmd_drrobotns = {
	"md_drrobotns", "md_drrobotn", NULL, NULL, "2019",
	"Dr. Robotnik's Mean Bean Machine (Hack, Spanish)\0", NULL, "Max1323", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ADV, 0,
	MegadriveGetZipName, md_drrobotnsRomInfo, md_drrobotnsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Ball Z - l'appel du destin (Hack, Spanish)
// https://www.romhacking.net/translations/3394/
static struct BurnRomInfo md_dbzsRomDesc[] = {
	{ "dragon ball z - l'appel du destin (hack, spanish).bin",2097152, 0xa1e5e963, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dbzs)
STD_ROM_FN(md_dbzs)

struct BurnDriver BurnDrvmd_dbzs = {
	"md_dbzs", "md_dbz", NULL, NULL, "2018",
	"Dragon Ball Z - L'Appel Du Destin (Hack, Spanish)\0", NULL, "Luceid", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dbzsRomInfo, md_dbzsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dragon Ball Z - Buyuu Retsuden (Hack, new voices v2)
// http://www.romhacking.net/hacks/5963/
static struct BurnRomInfo md_dbzvcRomDesc[] = {
	{ "Dragon Ball Z - Buyuu Retsuden (Jap)(voice hack v2).md",2321812, 0x1e91792d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dbzvc)
STD_ROM_FN(md_dbzvc)

struct BurnDriver BurnDrvmd_dbzvc = {
	"md_dbzvc", "md_dbz", NULL, NULL, "2021",
	"Dragon Ball Z - Buyuu Retsuden (Hack, New Voices v2)\0", NULL, "KanonZombie", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dbzvcRomInfo, md_dbzvcRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dragon's fury (Hack, Spanish)
// https://www.romhacking.net/translations/4777/
static struct BurnRomInfo md_dfurysRomDesc[] = {
	{ "dragon's fury (hack, spanish).bin",524288, 0x120aaabe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dfurys)
STD_ROM_FN(md_dfurys)

struct BurnDriver BurnDrvmd_dfurys = {
	"md_dfurys", "md_dfury", NULL, NULL, "2019",
	"Dragon's Fury (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dfurysRomInfo, md_dfurysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dragon's revenge (Hack, Spanish)
// https://www.romhacking.net/translations/5109/
static struct BurnRomInfo md_dragnrevsRomDesc[] = {
	{ "dragon's revenge (hack, spanish).bin",1048576, 0x8847d12b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dragnrevs)
STD_ROM_FN(md_dragnrevs)

struct BurnDriver BurnDrvmd_dragnrevs = {
	"md_dragnrevs", "md_dragnrev", NULL, NULL, "2019",
	"Dragon's Revenge (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PINBALL, 0,
	MegadriveGetZipName, md_dragnrevsRomInfo, md_dragnrevsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// dragon - the bruce lee story (Hack, Spanish)
// https://www.romhacking.net/translations/3783/
static struct BurnRomInfo md_dragonsRomDesc[] = {
	{ "dragon - the bruce lee story (hack, spanish).bin",2097152, 0x30766d12, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dragons)
STD_ROM_FN(md_dragons)

struct BurnDriver BurnDrvmd_dragons = {
	"md_dragons", "md_dragon", NULL, NULL, "2018",
	"Dragon - The Bruce Lee Story (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 3, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_dragonsRomInfo, md_dragonsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// duke nukem 3d (Hack, Spanish)
// https://www.romhacking.net/translations/4158/
static struct BurnRomInfo md_dukenk3dsRomDesc[] = {
	{ "duke nukem 3d (hack, spanish).bin",4194304, 0x74a8b676, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dukenk3ds)
STD_ROM_FN(md_dukenk3ds)

struct BurnDriver BurnDrvmd_dukenk3ds = {
	"md_dukenk3ds", "md_dukenk3d", NULL, NULL, "2019",
	"Duke Nukem 3D (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dukenk3dsRomInfo, md_dukenk3dsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Duke (Hack, Spanish)
// https://www.romhacking.net/translations/5612/
static struct BurnRomInfo md_dyndukesRomDesc[] = {
	{ "dynamite duke (hack, spanish).bin",524288, 0xdf440f0e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dyndukes)
STD_ROM_FN(md_dyndukes)

struct BurnDriver BurnDrvmd_dyndukes = {
	"md_dyndukes", "md_dynduke", NULL, NULL, "2020",
	"Dynamite Duke (Hack, Spanish)\0", NULL, "m0sca", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_dyndukesRomInfo, md_dyndukesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Dynamite Headdy (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/3339/
static struct BurnRomInfo md_dheadsRomDesc[] = {
	{ "Dynamite Headdy T-Spa v2.0 (2023)(Wave).bin",2097152, 0x340ff1e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dheads)
STD_ROM_FN(md_dheads)

struct BurnDriver BurnDrvmd_dheads = {
	"md_dheads", "md_dhead", NULL, NULL, "2023",
	"Dynamite Headdy (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_dheadsRomInfo, md_dheadsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// earnest evans (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/4449/
static struct BurnRomInfo md_earnestsRomDesc[] = {
	{ "Earnest Evans T-Spa v2.0 (2022)(Wave).bin",1048576, 0x926ce1be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_earnests)
STD_ROM_FN(md_earnests)

struct BurnDriver BurnDrvmd_earnests = {
	"md_earnests", "md_earnest", NULL, NULL, "2022",
	"Earnest Evans (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_earnestsRomInfo, md_earnestsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// earthworm jim (Hack, Spanish)
// https://www.romhacking.net/translations/3774/
static struct BurnRomInfo md_ejimsRomDesc[] = {
	{ "earthworm jim (hack, spanish).bin",3145728, 0x21a1378f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejims)
STD_ROM_FN(md_ejims)

struct BurnDriver BurnDrvmd_ejims = {
	"md_ejims", "md_ejim", NULL, NULL, "2018",
	"Earthworm Jim (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejimsRomInfo, md_ejimsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// earthworm jim 2 (Hack, Spanish)
// https://www.romhacking.net/translations/5406/
static struct BurnRomInfo md_ejim2sRomDesc[] = {
	{ "earthworm jim 2 (hack, spanish).bin",3145728, 0xf5cab28c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ejim2s)
STD_ROM_FN(md_ejim2s)

struct BurnDriver BurnDrvmd_ejim2s = {
	"md_ejim2s", "md_ejim2", NULL, NULL, "2020",
	"Earthworm Jim 2 (Hack, Spanish)\0", NULL, "m0sca", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ejim2sRomInfo, md_ejim2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ecco the dolphin (Hack, Spanish)
// https://www.romhacking.net/translations/3855/
static struct BurnRomInfo md_eccosRomDesc[] = {
	{ "ecco the dolphin (hack, spanish).bin",1048576, 0x6cb0aad7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eccos)
STD_ROM_FN(md_eccos)

struct BurnDriver BurnDrvmd_eccos = {
	"md_eccos", "md_ecco", NULL, NULL, "2018",
	"Ecco the Dolphin (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_eccosRomInfo, md_eccosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// el viento (Hack, Spanish)
// https://www.romhacking.net/translations/3198/
static struct BurnRomInfo md_elvientosRomDesc[] = {
	{ "el viento (hack, spanish).bin",1048576, 0xd1e1e998, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elvientos)
STD_ROM_FN(md_elvientos)

struct BurnDriver BurnDrvmd_elvientos = {
	"md_elvientos", "md_elviento", NULL, NULL, "2017",
	"El Viento (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_elvientosRomInfo, md_elvientosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// eliminate down (Hack, Spanish)
// https://www.romhacking.net/translations/4510/
static struct BurnRomInfo md_elimdownsRomDesc[] = {
	{ "eliminate down (hack, spanish).bin",1048576, 0x5b3604bb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_elimdowns)
STD_ROM_FN(md_elimdowns)

struct BurnDriver BurnDrvmd_elimdowns = {
	"md_elimdowns", "md_elimdown", NULL, NULL, "2019",
	"Eliminate Down (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_elimdownsRomInfo, md_elimdownsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// eswat - city under siege (Hack, Spanish)
// https://www.romhacking.net/translations/3916/
static struct BurnRomInfo md_eswatsRomDesc[] = {
	{ "eswat - city under siege (hack, spanish).bin",524288, 0x63611cb7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_eswats)
STD_ROM_FN(md_eswats)

struct BurnDriver BurnDrvmd_eswats = {
	"md_eswats", "md_eswat", NULL, NULL, "2018",
	"ESWAT - City Under Siege (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_eswatsRomInfo, md_eswatsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// fatal labyrinth (Hack, Spanish)
// https://www.romhacking.net/translations/4780/
static struct BurnRomInfo md_fatallabsRomDesc[] = {
	{ "fatal labyrinth (hack, spanish).bin",131072, 0x2b27dbd1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fatallabs)
STD_ROM_FN(md_fatallabs)

struct BurnDriver BurnDrvmd_fatallabs = {
	"md_fatallabs", "md_fatallab", NULL, NULL, "2019",
	"Fatal Labyrinth (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_fatallabsRomInfo, md_fatallabsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// fighting masters (Hack, Spanish)
// https://www.romhacking.net/translations/4735/
static struct BurnRomInfo md_fightmassRomDesc[] = {
	{ "fighting masters (hack, spanish).bin",524288, 0x128cddbe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fightmass)
STD_ROM_FN(md_fightmass)

struct BurnDriver BurnDrvmd_fightmass = {
	"md_fightmass", "md_fightmas", NULL, NULL, "2019",
	"Fighting Masters (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_fightmassRomInfo, md_fightmassRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// final zone ~ fz senki axis (Hack, Spanish)
// https://www.romhacking.net/translations/4803/
static struct BurnRomInfo md_fzonesRomDesc[] = {
	{ "final zone -- fz senki axis (hack, spanish).bin",524288, 0xd0294acb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fzones)
STD_ROM_FN(md_fzones)

struct BurnDriver BurnDrvmd_fzones = {
	"md_fzones", "md_fzone", NULL, NULL, "2019",
	"Final Zone ~ FZ Senki Axis (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_fzonesRomInfo, md_fzonesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// fire shark (Hack, Spanish)
// https://www.romhacking.net/translations/4508/
static struct BurnRomInfo md_fireshrksRomDesc[] = {
	{ "fire shark (hack, spanish).bin",524288, 0x9f0eca9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fireshrks)
STD_ROM_FN(md_fireshrks)

struct BurnDriver BurnDrvmd_fireshrks = {
	"md_fireshrks", "md_fireshrk", NULL, NULL, "2019",
	"Fire Shark (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_fireshrksRomInfo, md_fireshrksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// flashback - the quest for identity (Hack, Spanish)
// https://www.romhacking.net/translations/3677/
static struct BurnRomInfo md_flashbsRomDesc[] = {
	{ "flashback - the quest for identity (hack, spanish).bin",1572864, 0xd88b3a54, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashbs)
STD_ROM_FN(md_flashbs)

struct BurnDriver BurnDrvmd_flashbs = {
	"md_flashbs", "md_flashb", NULL, NULL, "2020",
	"Flashback - The Quest for Identity (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_flashbsRomInfo, md_flashbsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// flicky (Hack, Spanish)
// https://www.romhacking.net/translations/3637/
static struct BurnRomInfo md_flickysRomDesc[] = {
	{ "flicky (hack, spanish).bin",131072, 0xcb2072fa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flickys)
STD_ROM_FN(md_flickys)

struct BurnDriver BurnDrvmd_flickys = {
	"md_flickys", "md_flicky", NULL, NULL, "2018",
	"Flicky (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flickysRomInfo, md_flickysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// frogger (Hack, Spanish)
// https://www.romhacking.net/translations/5067/
static struct BurnRomInfo md_froggersRomDesc[] = {
	{ "frogger (hack, spanish).bin",524288, 0x4f656a99, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_froggers)
STD_ROM_FN(md_froggers)

struct BurnDriver BurnDrvmd_froggers = {
	"md_froggers", "md_frogger", NULL, NULL, "2019",
	"Frogger (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_froggersRomInfo, md_froggersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// g-loc air battle (Hack, Spanish)
// https://www.romhacking.net/translations/4782/
static struct BurnRomInfo md_glocsRomDesc[] = {
	{ "g-loc air battle (hack, spanish).bin",1048576, 0xdc326396, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_glocs)
STD_ROM_FN(md_glocs)

struct BurnDriver BurnDrvmd_glocs = {
	"md_glocs", "md_gloc", NULL, NULL, "2019",
	"G-Loc Air Battle (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_glocsRomInfo, md_glocsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// gaiares (Hack, Spanish)
// https://www.romhacking.net/translations/3020/
static struct BurnRomInfo md_gaiaressRomDesc[] = {
	{ "gaiares (hack, spanish).bin",1048576, 0xa62ec19c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gaiaress)
STD_ROM_FN(md_gaiaress)

struct BurnDriver BurnDrvmd_gaiaress = {
	"md_gaiaress", "md_gaiares", NULL, NULL, "2017",
	"Gaiares (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gaiaressRomInfo, md_gaiaressRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// gain ground (Hack, Spanish)
// https://www.romhacking.net/translations/3707/
static struct BurnRomInfo md_ggroundsRomDesc[] = {
	{ "gain ground (hack, spanish).bin",524288, 0xeb5e835c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ggrounds)
STD_ROM_FN(md_ggrounds)

struct BurnDriver BurnDrvmd_ggrounds = {
	"md_ggrounds", "md_gground", NULL, NULL, "2018",
	"Gain Ground (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ggroundsRomInfo, md_ggroundsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// galahad (Hack, Spanish)
// https://www.romhacking.net/translations/2891/
static struct BurnRomInfo md_galahadsRomDesc[] = {
	{ "galahad (hack, spanish).bin",1048576, 0x29cb154b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_galahads)
STD_ROM_FN(md_galahads)

struct BurnDriver BurnDrvmd_galahads = {
	"md_galahads", "md_galahad", NULL, NULL, "2017",
	"Galahad (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_galahadsRomInfo, md_galahadsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// galaxy force II (Hack, Spanish)
// https://www.romhacking.net/translations/5698/
static struct BurnRomInfo md_gforce2sRomDesc[] = {
	{ "galaxy force II (hack, spanish).bin",1048576, 0x21cdf3cd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gforce2s)
STD_ROM_FN(md_gforce2s)

struct BurnDriver BurnDrvmd_gforce2s = {
	"md_gforce2s", "md_gforce2", NULL, NULL, "2020",
	"Galaxy Force II (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_gforce2sRomInfo, md_gforce2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gargoyles (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/3287/
static struct BurnRomInfo md_gargoylesRomDesc[] = {
	{ "Gargoyles T-Spa v2.0 (2022)(Wave).bin",3145728, 0x443d085e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gargoyles)
STD_ROM_FN(md_gargoyles)

struct BurnDriver BurnDrvmd_gargoyles = {
	"md_gargoyles", "md_gargoyle", NULL, NULL, "2022",
	"Gargoyles (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gargoylesRomInfo, md_gargoylesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Gargoyles (Hack)
// http://www.romhacking.net/hacks/6090/
static struct BurnRomInfo md_ultgargoyleRomDesc[] = {
	{ "Ultimate Gargoyles (2021)(BillyTime! Games).bin",4194304, 0x766665bc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultgargoyle)
STD_ROM_FN(md_ultgargoyle)

struct BurnDriver BurnDrvmd_ultgargoyle = {
	"md_ultgargoyle", "md_gargoyle", NULL, NULL, "2021",
	"Ultimate Gargoyles (Hack)\0", NULL, "BillyTime! Games", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ultgargoyleRomInfo, md_ultgargoyleRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ghostbusters (Hack, Spanish)
// https://www.romhacking.net/translations/3600/
static struct BurnRomInfo md_ghostbstsRomDesc[] = {
	{ "ghostbusters (hack, spanish).bin",524288, 0x4ed2c651, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghostbsts)
STD_ROM_FN(md_ghostbsts)

struct BurnDriver BurnDrvmd_ghostbsts = {
	"md_ghostbsts", "md_ghostbst", NULL, NULL, "2018",
	"Ghostbusters (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghostbstsRomInfo, md_ghostbstsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ghouls'n ghosts (Hack, Spanish v1.1)
// https://www.romhacking.net/translations/4120/
static struct BurnRomInfo md_ghoulssRomDesc[] = {
	{ "ghouls'n ghosts (hack, spanish).bin",655360, 0xf71cd080, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ghoulss)
STD_ROM_FN(md_ghoulss)

struct BurnDriver BurnDrvmd_ghoulss = {
	"md_ghoulss", "md_ghouls", NULL, NULL, "2019",
	"Ghouls'n Ghosts (Hack, Spanish v1.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ghoulssRomInfo, md_ghoulssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// advanced busterhawk gleylancer (Hack, Spanish)
// https://www.romhacking.net/translations/3042/
static struct BurnRomInfo md_gleylancsRomDesc[] = {
	{ "advanced busterhawk gleylancer (hack, spanish).bin",1048576, 0xc30496b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gleylancs)
STD_ROM_FN(md_gleylancs)

struct BurnDriver BurnDrvmd_gleylancs = {
	"md_gleylancs", "md_gleylanc", NULL, NULL, "2017",
	"Advanced Busterhawk Gleylancer (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_gleylancsRomInfo, md_gleylancsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gods (Hack, Spanish)
// https://www.romhacking.net/translations/4649/
static struct BurnRomInfo md_godssRomDesc[] = {
	{ "gods (hack, spanish).bin",1048576, 0x184498c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_godss)
STD_ROM_FN(md_godss)

struct BurnDriver BurnDrvmd_godss = {
	"md_godss", "md_gods", NULL, NULL, "2019",
	"Gods (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_godssRomInfo, md_godssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// golden axe (Hack, Spanish)
// https://www.romhacking.net/translations/3794/
static struct BurnRomInfo md_goldnaxesRomDesc[] = {
	{ "golden axe (hack, spanish).bin",524288, 0x84828ee6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnaxes)
STD_ROM_FN(md_goldnaxes)

struct BurnDriver BurnDrvmd_goldnaxes = {
	"md_goldnaxes", "md_goldnaxe", NULL, NULL, "2018",
	"Golden Axe (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnaxesRomInfo, md_goldnaxesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// golden axe ii (Hack, Spanish)
// https://www.romhacking.net/translations/3273/
static struct BurnRomInfo md_goldnax2sRomDesc[] = {
	{ "golden axe ii (hack, spanish).bin",524288, 0xdf84e888, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax2s)
STD_ROM_FN(md_goldnax2s)

struct BurnDriver BurnDrvmd_goldnax2s = {
	"md_goldnax2s", "md_goldnax2", NULL, NULL, "2017",
	"Golden Axe II (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax2sRomInfo, md_goldnax2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// golden axe iii (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/3274/
static struct BurnRomInfo md_goldnax3sRomDesc[] = {
	{ "Golden Axe III T-Spa v2.0 (2022)(Wave).bin",1048576, 0xbf9b2534, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goldnax3s)
STD_ROM_FN(md_goldnax3s)

struct BurnDriver BurnDrvmd_goldnax3s = {
	"md_goldnax3s", "md_goldnax3", NULL, NULL, "2022",
	"Golden Axe III (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_goldnax3sRomInfo, md_goldnax3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// goofy's hysterical history tour (Hack, Spanish)
// https://www.romhacking.net/translations/3674/
static struct BurnRomInfo md_goofysRomDesc[] = {
	{ "goofy's hysterical history tour (hack, spanish).bin",1048576, 0x9dac66ef, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_goofys)
STD_ROM_FN(md_goofys)

struct BurnDriver BurnDrvmd_goofys = {
	"md_goofys", "md_goofy", NULL, NULL, "2018",
	"Goofy's Hysterical History Tour (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_goofysRomInfo, md_goofysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// granada (Hack, Spanish)
// https://www.romhacking.net/translations/3601/
static struct BurnRomInfo md_granadasRomDesc[] = {
	{ "granada (hack, spanish).bin",524288, 0x491b0a71, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_granadas)
STD_ROM_FN(md_granadas)

struct BurnDriver BurnDrvmd_granadas = {
	"md_granadas", "md_granada", NULL, NULL, "2018",
	"Granada (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_granadasRomInfo, md_granadasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// greendog - the beached surfer dude! (Hack, Spanish)
// https://www.romhacking.net/translations/3141/
static struct BurnRomInfo md_greendogsRomDesc[] = {
	{ "greendog - the beached surfer dude! (hack, spanish).bin",524288, 0xe0abaaeb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_greendogs)
STD_ROM_FN(md_greendogs)

struct BurnDriver BurnDrvmd_greendogs = {
	"md_greendogs", "md_greendog", NULL, NULL, "2017",
	"Greendog - The Beached Surfer Dude! (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_greendogsRomInfo, md_greendogsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// grind stormer (Hack, Spanish)
// https://www.romhacking.net/translations/5590/
static struct BurnRomInfo md_grindstsRomDesc[] = {
	{ "grind stormer (hack, spanish).bin",1048576, 0xbd764c90, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_grindsts)
STD_ROM_FN(md_grindsts)

struct BurnDriver BurnDrvmd_grindsts = {
	"md_grindsts", "md_grindst", NULL, NULL, "2020",
	"Grind Stormer (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_grindstsRomInfo, md_grindstsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// growl (Hack, Spanish)
// https://www.romhacking.net/translations/3571/
static struct BurnRomInfo md_growlsRomDesc[] = {
	{ "growl (hack, spanish).bin",524288, 0x95308c0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_growls)
STD_ROM_FN(md_growls)

struct BurnDriver BurnDrvmd_growls = {
	"md_growls", "md_growl", NULL, NULL, "2018",
	"Growl (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_growlsRomInfo, md_growlsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// gunstar heroes (Hack, Spanish)
// https://www.romhacking.net/translations/3344/
static struct BurnRomInfo md_gunstarsRomDesc[] = {
	{ "gunstar heroes (hack, spanish).bin",1048576, 0xf296f1c6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gunstars)
STD_ROM_FN(md_gunstars)

struct BurnDriver BurnDrvmd_gunstars = {
	"md_gunstars", "md_gunstar", NULL, NULL, "2017",
	"Gunstar Heroes (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_gunstarsRomInfo, md_gunstarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// haunting starring polterguy (Hack, Spanish)
// https://www.romhacking.net/translations/5439/
static struct BurnRomInfo md_hauntingsRomDesc[] = {
	{ "haunting starring polterguy (hack, spanish).bin",2097152, 0x2b8e0550, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hauntings)
STD_ROM_FN(md_hauntings)

struct BurnDriver BurnDrvmd_hauntings = {
	"md_hauntings", "md_haunting", NULL, NULL, "2020",
	"Haunting Starring Polterguy (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_hauntingsRomInfo, md_hauntingsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// heavy unit (Hack, Spanish)
// https://www.romhacking.net/translations/5439/
static struct BurnRomInfo md_hvyunitsRomDesc[] = {
	{ "heavy unit (hack, spanish).bin",524288, 0xe8a0f97f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hvyunits)
STD_ROM_FN(md_hvyunits)

struct BurnDriver BurnDrvmd_hvyunits = {
	"md_hvyunits", "md_hvyunit", NULL, NULL, "2019",
	"Heavy Unit (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_hvyunitsRomInfo, md_hvyunitsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// hellfire (Hack, Spanish)
// https://www.romhacking.net/translations/4532/
static struct BurnRomInfo md_hellfiresRomDesc[] = {
	{ "hellfire (hack, spanish).bin",524288, 0xa8f15ed3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hellfires)
STD_ROM_FN(md_hellfires)

struct BurnDriver BurnDrvmd_hellfires = {
	"md_hellfires", "md_hellfire", NULL, NULL, "2019",
	"Hellfire (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_hellfiresRomInfo, md_hellfiresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// herzog zwei (Hack, Spanish)
// https://www.romhacking.net/translations/4555/
static struct BurnRomInfo md_herzogsRomDesc[] = {
	{ "herzog zwei (hack, spanish).bin",524288, 0x7172837d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_herzogs)
STD_ROM_FN(md_herzogs)

struct BurnDriver BurnDrvmd_herzogs = {
	"md_herzogs", "md_herzog", NULL, NULL, "2019",
	"Herzog Zwei (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_herzogsRomInfo, md_herzogsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// hook (Hack, Spanish)
// https://www.romhacking.net/translations/3245/
static struct BurnRomInfo md_hooksRomDesc[] = {
	{ "Hook (hack, spanish, v2.0)(2021)(Wave).bin",1048576, 0x9d347dde, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_hooks)
STD_ROM_FN(md_hooks)

struct BurnDriver BurnDrvmd_hooks = {
	"md_hooks", "md_hook", NULL, NULL, "2021",
	"Hook (Hack, Spanish, v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_hooksRomInfo, md_hooksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// indiana jones and the last crusade (Hack, Spanish)
// https://www.romhacking.net/translations/3723/
static struct BurnRomInfo md_indycrussRomDesc[] = {
	{ "indiana jones and the last crusade (hack, spanish).bin",1048576, 0x8c7871ad, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_indycruss)
STD_ROM_FN(md_indycruss)

struct BurnDriver BurnDrvmd_indycruss = {
	"md_indycruss", "md_indycrus", NULL, NULL, "2018",
	"Indiana Jones and the Last Crusade (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_indycrussRomInfo, md_indycrussRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// insector x (Hack, Spanish)
// https://www.romhacking.net/translations/4505/
static struct BurnRomInfo md_insectxsRomDesc[] = {
	{ "insector x (hack, spanish).bin",524288, 0x0a96a725, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_insectxs)
STD_ROM_FN(md_insectxs)

struct BurnDriver BurnDrvmd_insectxs = {
	"md_insectxs", "md_insectx", NULL, NULL, "2019",
	"Insector X (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_insectxsRomInfo, md_insectxsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ishido - the way of stones (Hack, Spanish)
// https://www.romhacking.net/translations/4856/
static struct BurnRomInfo md_ishidosRomDesc[] = {
	{ "ishido - the way of stones (hack, spanish).bin",131072, 0x9f24780c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ishidos)
STD_ROM_FN(md_ishidos)

struct BurnDriver BurnDrvmd_ishidos = {
	"md_ishidos", "md_ishido", NULL, NULL, "2019",
	"Ishido - The Way of Stones (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_ishidosRomInfo, md_ishidosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// james 'buster' douglas knockout boxing (Hack, Spanish)
// https://www.romhacking.net/translations/5051/
static struct BurnRomInfo md_jbdougkosRomDesc[] = {
	{ "james 'buster' douglas knockout boxing (hack, spanish).bin",524288, 0x915c96b4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jbdougkos)
STD_ROM_FN(md_jbdougkos)

struct BurnDriver BurnDrvmd_jbdougkos = {
	"md_jbdougkos", "md_jbdougko", NULL, NULL, "2019",
	"James 'Buster' Douglas Knockout Boxing (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_jbdougkosRomInfo, md_jbdougkosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// james bond 007 - the duel (Hack, Spanish)
// https://www.romhacking.net/translations/4899/
static struct BurnRomInfo md_jb007sRomDesc[] = {
	{ "james bond 007 - the duel (hack, spanish).bin",524288, 0x4daf3d0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jb007s)
STD_ROM_FN(md_jb007s)

struct BurnDriver BurnDrvmd_jb007s = {
	"md_jb007s", "md_jb007", NULL, NULL, "2019",
	"James Bond 007 - The Duel (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_jb007sRomInfo, md_jb007sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// james pond II - codename robocod (Hack, Spanish)
// https://www.romhacking.net/translations/4057/
static struct BurnRomInfo md_robocodsRomDesc[] = {
	{ "james pond II - codename robocod (hack, spanish).bin",524288, 0x4733a2ec, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robocods)
STD_ROM_FN(md_robocods)

struct BurnDriver BurnDrvmd_robocods = {
	"md_robocods", "md_robocod", NULL, NULL, "2018",
	"James Pond II - Codename Robocod (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robocodsRomInfo, md_robocodsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// james pond 3 - operation starfish (Hack, Spanish)
// https://www.romhacking.net/translations/4934/
static struct BurnRomInfo md_jpond3sRomDesc[] = {
	{ "james pond 3 - operation starfish (hack, spanish).bin",2097152, 0x4803b7f3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jpond3s)
STD_ROM_FN(md_jpond3s)

struct BurnDriver BurnDrvmd_jpond3s = {
	"md_jpond3s", "md_jpond3", NULL, NULL, "2019",
	"James Pond 3 - Operation Starfish (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jpond3sRomInfo, md_jpond3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// james pond - underwater agent (Hack, Spanish)
// https://www.romhacking.net/translations/3742/
static struct BurnRomInfo md_jpondsRomDesc[] = {
	{ "james pond - underwater agent (hack, spanish).bin",524288, 0x442cd24e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jponds)
STD_ROM_FN(md_jponds)

struct BurnDriver BurnDrvmd_jponds = {
	"md_jponds", "md_jpond", NULL, NULL, "2018",
	"James Pond - Underwater Agent (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jpondsRomInfo, md_jpondsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// jammit (Hack, Spanish)
// https://www.romhacking.net/translations/4802/
static struct BurnRomInfo md_jammitsRomDesc[] = {
	{ "jammit (hack, spanish).bin",2097152, 0x70c27091, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jammits)
STD_ROM_FN(md_jammits)

struct BurnDriver BurnDrvmd_jammits = {
	"md_jammits", "md_jammit", NULL, NULL, "2019",
	"Jammit (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_jammitsRomInfo, md_jammitsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jewel Master (Hack, Spanish, v2.0)
// https://www.romhacking.net/translations/3247/
static struct BurnRomInfo md_jewelmssRomDesc[] = {
	{ "Jewel Master T-Spa v2.0 (2022)(Wave).bin",524288, 0xff242e3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jewelmss)
STD_ROM_FN(md_jewelmss)

struct BurnDriver BurnDrvmd_jewelmss = {
	"md_jewelmss", "md_jewelms", NULL, NULL, "2022",
	"Jewel Master (Hack, Spanish, v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jewelmssRomInfo, md_jewelmssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// joe & mac (Hack, Spanish)
// https://www.romhacking.net/translations/4545/
static struct BurnRomInfo md_joemacsRomDesc[] = {
	{ "joe & mac (hack, spanish).bin",1048576, 0xaa290350, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_joemacs)
STD_ROM_FN(md_joemacs)

struct BurnDriver BurnDrvmd_joemacs = {
	"md_joemacs", "md_joemac", NULL, NULL, "2019",
	"Joe & Mac (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_joemacsRomInfo, md_joemacsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// junction (Hack, Spanish)
// https://www.romhacking.net/translations/4046/
static struct BurnRomInfo md_junctionsRomDesc[] = {
	{ "junction (hack, spanish).bin",524288, 0x8d2cce27, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_junctions)
STD_ROM_FN(md_junctions)

struct BurnDriver BurnDrvmd_junctions = {
	"md_junctions", "md_junction", NULL, NULL, "2018",
	"Junction (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_junctionsRomInfo, md_junctionsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park (Hack, Spanish)
// https://www.romhacking.net/translations/3578/
static struct BurnRomInfo md_jparksRomDesc[] = {
	{ "jurassic park (hack, spanish).bin",2097152, 0x53d3dd70, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparks)
STD_ROM_FN(md_jparks)

struct BurnDriver BurnDrvmd_jparks = {
	"md_jparks", "md_jpark", NULL, NULL, "2018",
	"Jurassic Park (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparksRomInfo, md_jparksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Jurassic Park - Rampage Edition (Hack, Spanish)
// https://www.romhacking.net/translations/3616/
static struct BurnRomInfo md_jparkresRomDesc[] = {
	{ "jurassic park - rampage edition (hack, spanish).bin",2097152, 0x954efbf2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jparkres)
STD_ROM_FN(md_jparkres)

struct BurnDriver BurnDrvmd_jparkres = {
	"md_jparkres", "md_jparkre", NULL, NULL, "2018",
	"Jurassic Park - Rampage Edition (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_jparkresRomInfo, md_jparkresRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Justice League Task Force (Hack, Spanish)
// https://www.romhacking.net/translations/5197/
static struct BurnRomInfo md_jleaguesRomDesc[] = {
	{ "justice league task force (hack, spanish).bin",3145728, 0x9844391, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jleagues)
STD_ROM_FN(md_jleagues)

struct BurnDriver BurnDrvmd_jleagues = {
	"md_jleagues", "md_jleague", NULL, NULL, "2019",
	"Justice League Task Force (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_jleaguesRomInfo, md_jleaguesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ka-Ge-Ki - Fists of Steel (Hack, Spanish)
// https://www.romhacking.net/translations/4736/
static struct BurnRomInfo md_kagekisRomDesc[] = {
	{ "ka-ge-ki - fists of steel (hack, spanish).bin",1048576, 0x7978b1e4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kagekis)
STD_ROM_FN(md_kagekis)

struct BurnDriver BurnDrvmd_kagekis = {
	"md_kagekis", "md_kageki", NULL, NULL, "2019",
	"Ka-Ge-Ki - Fists of Steel (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_kagekisRomInfo, md_kagekisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Kid Chameleon (Hack, Spanish)
// https://www.romhacking.net/translations/3709/
static struct BurnRomInfo md_kidchamsRomDesc[] = {
	{ "kid chameleon (hack, spanish).bin",1048576, 0x4871962f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kidchams)
STD_ROM_FN(md_kidchams)

struct BurnDriver BurnDrvmd_kidchams = {
	"md_kidchams", "md_kidcham", NULL, NULL, "2018",
	"Kid Chameleon (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_kidchamsRomInfo, md_kidchamsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tougiou King Colossus (Hack, Spanish)
// https://www.romhacking.net/translations/5515/
static struct BurnRomInfo md_kingcolsRomDesc[] = {
	{ "tougiou king colossus (hack, spanish).bin",1048576, 0xa6c9e0b6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingcols)
STD_ROM_FN(md_kingcols)

struct BurnDriver BurnDrvmd_kingcols = {
	"md_kingcols", "md_kingcol", NULL, NULL, "2020",
	"Tougiou King Colossus (Hack, Spanish)\0", NULL, "Luceid", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_kingcolsRomInfo, md_kingcolsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Krusty's Super Fun House (Hack, Spanish)
// https://www.romhacking.net/translations/4916/
static struct BurnRomInfo md_krustysRomDesc[] = {
	{ "krusty's super fun house (hack, spanish).bin",524288, 0xe3a453db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_krustys)
STD_ROM_FN(md_krustys)

struct BurnDriver BurnDrvmd_krustys = {
	"md_krustys", "md_krusty", NULL, NULL, "2019",
	"Krusty's Super Fun House (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_krustysRomInfo, md_krustysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Landstalker - The Treasures of King Nole (Hack, Spanish)
// https://www.romhacking.net/translations/3377/
static struct BurnRomInfo md_landstlksRomDesc[] = {
	{ "landstalker - the treasures of king nole (hack, spanish).bin", 2359296, 0x019cb7a6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_landstlks)
STD_ROM_FN(md_landstlks)

struct BurnDriver BurnDrvmd_landstlks = {
	"md_landstlks", "md_landstlk", NULL, NULL, "2018",
	"Landstalker - The Treasures of King Nole (Hack, Spanish)\0" , NULL, "Paspallas", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RPG, 0,
	MegadriveGetZipName, md_landstlksRomInfo, md_landstlksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Langrisser II (Hack, Spanish)
// https://www.romhacking.net/translations/3144/
static struct BurnRomInfo md_langris2sRomDesc[] = {
	{ "langrisser ii (hack, spanish).bin", 2097152, 0x6ed77151, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_langris2s)
STD_ROM_FN(md_langris2s)

struct BurnDriver BurnDrvmd_langris2s = {
	"md_langris2s", "md_langris2", NULL, NULL, "2017",
	"Langrisser II (Hack, Spanish)\0", NULL, "Luceid", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_langris2sRomInfo, md_langris2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lord Monarch - Legendary Battle Royale (Hack, English)
// http://www.romhacking.net/translations/5762/
static struct BurnRomInfo md_lordmoneRomDesc[] = {
	{ "lord monarch - legendary battle royale (Hack, English).bin", 2097152, 0x2a576a01, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lordmone)
STD_ROM_FN(md_lordmone)

struct BurnDriver BurnDrvmd_lordmone = {
	"md_lordmone", "md_lordmon", NULL, NULL, "2020",
	"Lord Monarch - Legendary Battle Royale (Hack, English)\0", NULL, "Nebulous Translations", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_lordmoneRomInfo, md_lordmoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// musha - metallic uniframe super hybrid armor (Hack, Spanish)
// https://www.romhacking.net/translations/2874/
static struct BurnRomInfo md_mushasRomDesc[] = {
	{ "musha - metallic uniframe super hybrid armor (hack, spanish).bin", 524288, 0x8013ed8b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mushas)
STD_ROM_FN(md_mushas)

struct BurnDriver BurnDrvmd_mushas = {
	"md_mushas", "md_musha", NULL, NULL, "2017",
	"Musha - Metallic Uniframe Super Hybrid Armor (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_mushasRomInfo, md_mushasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// master of monsters (Hack, Spanish)
// https://www.romhacking.net/translations/4857/
static struct BurnRomInfo md_mastermsRomDesc[] = {
	{ "master of monsters (hack, spanish).bin", 524288, 0xfc206e6b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_masterms)
STD_ROM_FN(md_masterms)

struct BurnDriver BurnDrvmd_masterms = {
	"md_masterms", "md_masterm", NULL, NULL, "2019",
	"Master of Monsters (Hack, Spanish)\0", NULL, "Renovation", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY, 0,
	MegadriveGetZipName, md_mastermsRomInfo, md_mastermsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mcdonald's treasure land adventure (Hack, Spanish)
// https://www.romhacking.net/translations/5111/
static struct BurnRomInfo md_mcdonaldsRomDesc[] = {
	{ "mcdonald's treasure land adventure (hack, spanish).bin", 1048576, 0x1245b748, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mcdonalds)
STD_ROM_FN(md_mcdonalds)

struct BurnDriver BurnDrvmd_mcdonalds = {
	"md_mcdonalds", "md_mcdonald", NULL, NULL, "2019",
	"Mcdonald's Treasure Land Adventure (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mcdonaldsRomInfo, md_mcdonaldsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};	

// mega man - the wily wars (Hack, Spanish)
// https://www.romhacking.net/translations/3585/
static struct BurnRomInfo md_megamansRomDesc[] = {
	{ "mega man - the wily wars (hack, spanish).bin", 2097152, 0xc6c7f5b1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megamans)
STD_ROM_FN(md_megamans)

struct BurnDriver BurnDrvmd_megamans = {
	"md_megamans", "md_megaman", NULL, NULL, "2018",
	"Mega Man - The Wily Wars (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megamansRomInfo, md_megamansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mega turrican (Hack, Spanish)
// https://www.romhacking.net/translations/4132/
static struct BurnRomInfo md_megaturrsRomDesc[] = {
	{ "mega turrican (hack, spanish).bin", 1048576, 0xb2901f8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaturrs)
STD_ROM_FN(md_megaturrs)

struct BurnDriver BurnDrvmd_megaturrs = {
	"md_megaturrs", "md_megaturr", NULL, NULL, "2019",
	"Mega Turrican (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_megaturrsRomInfo, md_megaturrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mercs (Hack, Spanish)
// https://www.romhacking.net/translations/2873/
static struct BurnRomInfo md_mercssRomDesc[] = {
	{ "mercs (hack, spanish).bin", 1048576, 0xdb0a96e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mercss)
STD_ROM_FN(md_mercss)

struct BurnDriver BurnDrvmd_mercss = {
	"md_mercss", "md_mercs", NULL, NULL, "2017",
	"Mercs (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_mercssRomInfo, md_mercssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// michael jackson's moonwalker (Hack, Spanish)
// https://www.romhacking.net/translations/4571/
static struct BurnRomInfo md_mwalksRomDesc[] = {
	{ "michael jackson's moonwalker (hack, spanish).bin", 524288, 0x6d849e61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mwalks)
STD_ROM_FN(md_mwalks)

struct BurnDriver BurnDrvmd_mwalks = {
	"md_mwalks", "md_mwalk", NULL, NULL, "2019",
	"Michael Jackson's Moonwalker (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mwalksRomInfo, md_mwalksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mick & mack as the global gladiators (Hack, Spanish)
// https://www.romhacking.net/translations/3997/
static struct BurnRomInfo md_mickmacksRomDesc[] = {
	{ "mick & mack as the global gladiators (hack, spanish).bin", 1048576, 0x12236d34, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickmacks)
STD_ROM_FN(md_mickmacks)

struct BurnDriver BurnDrvmd_mickmacks = {
	"md_mickmacks", "md_mickmack", NULL, NULL, "2018",
	"Mick & Mack as the Global Gladiators (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mickmacksRomInfo, md_mickmacksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mickey mania - the timeless adventures of mickey mouse (Hack, Spanish)
// https://www.romhacking.net/translations/3111/
static struct BurnRomInfo md_mmaniasRomDesc[] = {
	{ "mickey mania - the timeless adventures of mickey mouse (hack, spanish).bin", 2097152, 0xa65dae53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmanias)
STD_ROM_FN(md_mmanias)

struct BurnDriver BurnDrvmd_mmanias = {
	"md_mmanias", "md_mmania", NULL, NULL, "2017",
	"Mickey Mania - The Timeless Adventures of Mickey Mouse (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mmaniasRomInfo, md_mmaniasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// micro machines (Hack, Spanish)
// https://www.romhacking.net/translations/4195/
static struct BurnRomInfo md_micromacsRomDesc[] = {
	{ "micro machines (hack, spanish).bin", 524288, 0x3ba6932d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_micromacs)
STD_ROM_FN(md_micromacs)

struct BurnDriver BurnDrvmd_micromacs = {
	"md_micromacs", "md_micromac", NULL, NULL, "2019",
	"Micro Machines (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_micromacsRomInfo, md_micromacsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// micro machines - turbo tournament '96 (Hack, Spanish)
// https://www.romhacking.net/translations/2112/
static struct BurnRomInfo md_microm96sRomDesc[] = {
	{ "micro machines - turbo tournament '96 (hack, spanish).bin", 1048576, 0x7ceb363d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_microm96s)
STD_ROM_FN(md_microm96s)

struct BurnDriver BurnDrvmd_microm96s = {
	"md_microm96s", "md_microm96", NULL, NULL, "2014",
	"Micro Machines - Turbo Tournament '96 (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_microm96sRomInfo, md_microm96sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// midnight resistance (Hack, Spanish)
// https://www.romhacking.net/translations/4131/
static struct BurnRomInfo md_midressRomDesc[] = {
	{ "midnight resistance (hack, spanish).bin", 1048576, 0xfb38b80c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_midress)
STD_ROM_FN(md_midress)

struct BurnDriver BurnDrvmd_midress = {
	"md_midress", "md_midres", NULL, NULL, "2019",
	"Midnight Resistance (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_midressRomInfo, md_midressRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mighty morphin power rangers (Hack, Spanish)
// https://www.romhacking.net/translations/3732/
static struct BurnRomInfo md_mmprsRomDesc[] = {
	{ "mighty morphin power rangers (hack, spanish).bin", 2097152, 0x5a34dc26, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprs)
STD_ROM_FN(md_mmprs)

struct BurnDriver BurnDrvmd_mmprs = {
	"md_mmprs", "md_mmpr", NULL, NULL, "2018",
	"Mighty Morphin Power Rangers (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mmprsRomInfo, md_mmprsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mighty morphin power rangers - the movie (Hack, Spanish)
// https://www.romhacking.net/translations/3731/
static struct BurnRomInfo md_mmprtmsRomDesc[] = {
	{ "mighty morphin power rangers - the movie (hack, spanish).bin", 2097152, 0xcb3852b1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mmprtms)
STD_ROM_FN(md_mmprtms)

struct BurnDriver BurnDrvmd_mmprtms = {
	"md_mmprtms", "md_mmprtm", NULL, NULL, "2018",
	"Mighty Morphin Power Rangers - The Movie (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mmprtmsRomInfo, md_mmprtmsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// monster world iv (Hack, Spanish)
// https://www.romhacking.net/translations/5678/
static struct BurnRomInfo md_mworld4sRomDesc[] = {
	{ "monster world iv (hack, spanish).bin", 2097152, 0x7dbbfa4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mworld4s)
STD_ROM_FN(md_mworld4s)

struct BurnDriver BurnDrvmd_mworld4s = {
	"md_mworld4s", "md_mworld4", NULL, NULL, "2020",
	"Monster World IV (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mworld4sRomInfo, md_mworld4sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mortal kombat (Hack, Spanish)
// https://www.romhacking.net/translations/2068/
static struct BurnRomInfo md_mksRomDesc[] = {
	{ "mortal kombat (hack, spanish).bin", 2097152, 0x75046fcf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mks)
STD_ROM_FN(md_mks)

struct BurnDriver BurnDrvmd_mks = {
	"md_mks", "md_mk", NULL, NULL, "2013",
	"Mortal Kombat (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mksRomInfo, md_mksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat Arcade Edition (Hack)
// http://www.romhacking.net/hacks/6446/
static struct BurnRomInfo md_mkaeRomDesc[] = {
	{ "Mortal Kombat Arcade Edition (Hack)(2021).bin", 4194304, 0xaa8fb151, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mkae)
STD_ROM_FN(md_mkae)

struct BurnDriver BurnDrvmd_mkae = {
	"md_mkae", "md_mk", NULL, NULL, "2021",
	"Mortal Kombat Arcade Edition (Hack, v1.0a)\0", NULL, "Linkuei", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mkaeRomInfo, md_mkaeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat Arcade Edition (Hack)
// https://www.romhacking.net/reviews/9714/
static struct BurnRomInfo md_mkaeeRomDesc[] = {
	{ "Mortal Kombat Arcade Edition Enhanced v1.5 (2022)(Rael G.C.).bin", 4194304, 0xb884890b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mkaee)
STD_ROM_FN(md_mkaee)

struct BurnDriver BurnDrvmd_mkaee = {
	"md_mkaee", "md_mk", NULL, NULL, "2022",
	"Mortal Kombat Arcade Edition Enhanced (Hack, v1.5)\0", NULL, "Rael G.C.", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mkaeeRomInfo, md_mkaeeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat II (World) Unlimited (Hack, Spanish)
// https://www.romhacking.net/hacks/1722/
static struct BurnRomInfo md_mk2wusRomDesc[] = {
	{ "Mortal Kombat II (World) Unlimited (Hack, v1.0) (hack, spanish).bin", 4136840, 0x40b29dd4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk2wus)
STD_ROM_FN(md_mk2wus)

struct BurnDriver BurnDrvmd_mk2wus = {
	"md_mk2wus", "md_mk2", NULL, NULL, "2013",
	"Mortal Kombat II (World) Unlimited (Hack, Spanish)\0", NULL, "Smoke, pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk2wusRomInfo, md_mk2wusRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mortal Kombat II (World) Unlimited (Hack, v1.0) (Hack, Enhanced Colors)
// https://www.romhacking.net/hacks/2310/
static struct BurnRomInfo md_mk2wuecRomDesc[] = {
	{ "Mortal Kombat II (World) Unlimited (Hack, v1.0) (Hack, Enhanced Colors).bin", 4136840, 0x1867b4d9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mk2wuec)
STD_ROM_FN(md_mk2wuec)

struct BurnDriver BurnDrvmd_mk2wuec = {
	"md_mk2wuec", "md_mk2", NULL, NULL, "2015",
	"Mortal Kombat II (World) Unlimited (Hack, Enhanced Colors)\0", NULL, "Smoke", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_mk2wuecRomInfo, md_mk2wuecRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mr. nutz (Hack, Spanish)
// https://www.romhacking.net/translations/4585/
static struct BurnRomInfo md_mrnutzsRomDesc[] = {
	{ "mr. nutz (hack, spanish).bin", 1048576, 0xf032c867, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mrnutzs)
STD_ROM_FN(md_mrnutzs)

struct BurnDriver BurnDrvmd_mrnutzs = {
	"md_mrnutzs", "md_mrnutz", NULL, NULL, "2019",
	"Mr. Nutz (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mrnutzsRomInfo, md_mrnutzsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// ms. pac-man (Hack, Spanish v1.1)
// https://www.romhacking.net/translations/4048/
static struct BurnRomInfo md_mspacmansRomDesc[] = {
	{ "ms. pac-man (hack, spanish).bin", 131072, 0xf9148289, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mspacmans)
STD_ROM_FN(md_mspacmans)

struct BurnDriver BurnDrvmd_mspacmans = {
	"md_mspacmans", "md_mspacman", NULL, NULL, "2018",
	"Ms. Pac-Man (Hack, Spanish v1.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_MAZE, 0,
	MegadriveGetZipName, md_mspacmansRomInfo, md_mspacmansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mystic defender (Hack, Spanish)
// https://www.romhacking.net/translations/3660/
static struct BurnRomInfo md_mystdefsRomDesc[] = {
	{ "mystic defender (hack, spanish).bin", 524288, 0x2df12159, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mystdefs)
STD_ROM_FN(md_mystdefs)

struct BurnDriver BurnDrvmd_mystdefs = {
	"md_mystdefs", "md_mystdef", NULL, NULL, "2018",
	"Mystic Defender (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mystdefsRomInfo, md_mystdefsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// mystical fighter (Hack, Spanish)
// https://www.romhacking.net/translations/4553/
static struct BurnRomInfo md_mysticfsRomDesc[] = {
	{ "mystical fighter (hack, spanish).bin", 524288, 0x56c54ae8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mysticfs)
STD_ROM_FN(md_mysticfs)

struct BurnDriver BurnDrvmd_mysticfs = {
	"md_mysticfs", "md_mysticf", NULL, NULL, "2019",
	"Mystical Fighter (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_mysticfsRomInfo, md_mysticfsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Onslaught (Hack, Spanish)
// https://www.romhacking.net/translations/4873/
static struct BurnRomInfo md_onslausRomDesc[] = {
	{ "onslaught (hack, spanish).bin", 524288, 0xf47789e3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_onslaus)
STD_ROM_FN(md_onslaus)

struct BurnDriver BurnDrvmd_onslaus = {
	"md_onslaus", "md_onslau", NULL, NULL, "2019",
	"Onslaught (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_onslausRomInfo, md_onslausRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// outrun (Hack, Spanish)
// https://www.romhacking.net/translations/3797/
static struct BurnRomInfo md_outrunsRomDesc[] = {
	{ "outrun (hack, spanish).bin", 1048576, 0x85774b3f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outruns)
STD_ROM_FN(md_outruns)

struct BurnDriver BurnDrvmd_outruns = {
	"md_outruns", "md_outrun", NULL, NULL, "2018",
	"Outrun (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outrunsRomInfo, md_outrunsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// outrun 2019 (Hack, Spanish)
// https://www.romhacking.net/translations/4070/
static struct BurnRomInfo md_outr2019sRomDesc[] = {
	{ "outrun 2019 (hack, spanish).bin", 1048576, 0x1a831f41, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_outr2019s)
STD_ROM_FN(md_outr2019s)

struct BurnDriver BurnDrvmd_outr2019s = {
	"md_outr2019s", "md_outr2019", NULL, NULL, "2018",
	"Outrun 2019 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_outr2019sRomInfo, md_outr2019sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// outrunners (Hack, Spanish)
// https://www.romhacking.net/translations/4071/
static struct BurnRomInfo md_orunnerssRomDesc[] = {
	{ "outrunners (hack, spanish).bin", 2097152, 0x3a0b4aba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_orunnerss)
STD_ROM_FN(md_orunnerss)

struct BurnDriver BurnDrvmd_orunnerss = {
	"md_orunnerss", "md_orunners", NULL, NULL, "2018",
	"OutRunners (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_orunnerssRomInfo, md_orunnerssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// outrunners (usa) (Hack, Restoration)
// https://www.romhacking.net/hacks/4969/
static struct BurnRomInfo md_orunnershrRomDesc[] = {
	{ "outrunners (usa) (Hack, Restoration).bin", 2097152, 0xe280aada, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_orunnershr)
STD_ROM_FN(md_orunnershr)

struct BurnDriver BurnDrvmd_orunnershr = {
	"md_orunnershr", "md_orunners", NULL, NULL, "2020",
	"OutRunners (USA) (Hack, Restoration)\0", NULL, "Diogo Ribeiro", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_orunnershrRomInfo, md_orunnershrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// panorama cotton (Hack, Spanish)
// https://www.romhacking.net/translations/5421/
static struct BurnRomInfo md_pcottonsRomDesc[] = {
	{ "panorama cotton (hack, spanish).bin", 2621440, 0x7affb73a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pcottons)
STD_ROM_FN(md_pcottons)

struct BurnDriver BurnDrvmd_pcottons = {
	"md_pcottons", "md_pcotton", NULL, NULL, "2020",
	"Panorama Cotton (Hack, Spanish)\0", NULL, "m0sca", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_pcottonsRomInfo, md_pcottonsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// panorama cotton (Hack, English)
// https://www.romhacking.net/translations/4292/
static struct BurnRomInfo md_pcottoneRomDesc[] = {
	{ "panorama cotton (Hack, English).bin", 2621440, 0xed7d8f14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pcottone)
STD_ROM_FN(md_pcottone)

struct BurnDriver BurnDrvmd_pcottone = {
	"md_pcottone", "md_pcotton", NULL, NULL, "2019",
	"Panorama Cotton (Hack, English)\0", NULL, "Malias", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_pcottoneRomInfo, md_pcottoneRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// paperboy (Hack, Spanish)
// https://www.romhacking.net/translations/4075/
static struct BurnRomInfo md_paperboysRomDesc[] = {
	{ "paperboy (hack, spanish).bin", 524288, 0x023b647c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paperboys)
STD_ROM_FN(md_paperboys)

struct BurnDriver BurnDrvmd_paperboys = {
	"md_paperboys", "md_paperboy", NULL, NULL, "2018",
	"Paperboy (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_paperboysRomInfo, md_paperboysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// paperboy 2 (Hack, Spanish)
// https://www.romhacking.net/translations/4074/
static struct BurnRomInfo md_paperbo2sRomDesc[] = {
	{ "paperboy 2 (hack, spanish).bin", 1048576, 0xd0a39c49, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_paperbo2s)
STD_ROM_FN(md_paperbo2s)

struct BurnDriver BurnDrvmd_paperbo2s = {
	"md_paperbo2s", "md_paperbo2", NULL, NULL, "2018",
	"Paperboy 2 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_paperbo2sRomInfo, md_paperbo2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// phelios (Hack, Spanish)
// https://www.romhacking.net/translations/5458/
static struct BurnRomInfo md_pheliossRomDesc[] = {
	{ "phelios (hack, spanish).bin", 524288, 0x3c7e8979, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_phelioss)
STD_ROM_FN(md_phelioss)

struct BurnDriver BurnDrvmd_phelioss = {
	"md_phelioss", "md_phelios", NULL, NULL, "2020",
	"Phelios (Hack, Spanish)\0", NULL, "Max1323", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_pheliossRomInfo, md_pheliossRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// pink goes to hollywood (Hack, Spanish)
// https://www.romhacking.net/translations/3653/
static struct BurnRomInfo md_pinksRomDesc[] = {
	{ "pink goes to hollywood (hack, spanish).bin", 1048576, 0xde7a08dd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_pinks)
STD_ROM_FN(md_pinks)

struct BurnDriver BurnDrvmd_pinks = {
	"md_pinks", "md_pink", NULL, NULL, "2018",
	"Pink Goes to Hollywood (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_pinksRomInfo, md_pinksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// predator 2 (Hack, Spanish)
// https://www.romhacking.net/translations/4825/
static struct BurnRomInfo md_predatr2sRomDesc[] = {
	{ "predator 2 (hack, spanish).bin", 1048576, 0xab9bbe50, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_predatr2s)
STD_ROM_FN(md_predatr2s)

struct BurnDriver BurnDrvmd_predatr2s = {
	"md_predatr2s", "md_predatr2", NULL, NULL, "2019",
	"Predator 2 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_predatr2sRomInfo, md_predatr2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// prince of persia (Hack, Spanish)
// https://www.romhacking.net/translations/4824/
static struct BurnRomInfo md_ppersiasRomDesc[] = {
	{ "prince of persia (hack, spanish).bin", 1048576, 0xa7d7f64d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersias)
STD_ROM_FN(md_ppersias)

struct BurnDriver BurnDrvmd_ppersias = {
	"md_ppersias", "md_ppersia", NULL, NULL, "2019",
	"Prince of Persia (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersiasRomInfo, md_ppersiasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// psy-o-blade (Hack, Spanish)
// https://www.romhacking.net/translations/5221/
static struct BurnRomInfo md_psyobladsRomDesc[] = {
	{ "psy-o-blade (hack, spanish).bin", 785184, 0x8247a914, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_psyoblads)
STD_ROM_FN(md_psyoblads)

struct BurnDriver BurnDrvmd_psyoblads = {
	"md_psyoblads", "md_psyoblad", NULL, NULL, "2019",
	"Psy-O-Blade (Hack, Spanish)\0", NULL, "Luceid", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_psyobladsRomInfo, md_psyobladsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// puggsy (Hack, Spanish)
// https://www.romhacking.net/translations/4647/
static struct BurnRomInfo md_puggsysRomDesc[] = {
	{ "puggsy (hack, spanish).bin", 1048576, 0xb7cce9e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_puggsys)
STD_ROM_FN(md_puggsys)

struct BurnDriver BurnDrvmd_puggsys = {
	"md_puggsys", "md_puggsy", NULL, NULL, "2019",
	"Puggsy (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_puggsysRomInfo, md_puggsysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// quackshot starring donald duck (Hack, Spanish)
// https://www.romhacking.net/translations/2118/
static struct BurnRomInfo md_quackshtsRomDesc[] = {
	{ "quack shot starring donald duck (hack, spanish).bin", 524288, 0x2e304494, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_quackshts)
STD_ROM_FN(md_quackshts)

struct BurnDriver BurnDrvmd_quackshts = {
	"md_quackshts", "md_quacksht", NULL, NULL, "2014",
	"QuackShot Starring Donald Duck (Hack, Spanish)\0", NULL, "Jate", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_quackshtsRomInfo, md_quackshtsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force IV (Hack, Spanish)
// https://www.romhacking.net/translations/5467/
static struct BurnRomInfo md_tf4sRomDesc[] = {
	{ "thunder force iv (hack, spanish).bin", 1048576, 0x04845342, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf4s)
STD_ROM_FN(md_tf4s)

struct BurnDriver BurnDrvmd_tf4s = {
	"md_tf4s", "md_tf4", NULL, NULL,"2020",
	"Thunder Force IV (Hack, Spanish)\0", NULL, "m0sca", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_tf4sRomInfo, md_tf4sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Radical Rex (Hack, Spanish)
// https://www.romhacking.net/translations/4267/
static struct BurnRomInfo md_radrexsRomDesc[] = {
	{ "radical rex (hack, spanish).bin", 1048576, 0x3a33bd58, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_radrexs)
STD_ROM_FN(md_radrexs)

struct BurnDriver BurnDrvmd_radrexs = {
	"md_radrexs", "md_radrex", NULL, NULL, "2019",
	"Radical Rex (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_radrexsRomInfo, md_radrexsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Raiden Trad ~ Raiden Densetsu (Hack, Spanish)
// https://www.romhacking.net/translations/4799/
static struct BurnRomInfo md_raidensRomDesc[] = {
	{ "raiden trad -- raiden densetsu (hack, spanish).bin", 1048576, 0xeee74b65, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_raidens)
STD_ROM_FN(md_raidens)

struct BurnDriver BurnDrvmd_raidens = {
	"md_raidens", "md_raiden", NULL, NULL, "2019",
	"Raiden Trad ~ Raiden Densetsu (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_raidensRomInfo, md_raidensRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rainbow Islands Extra (Hack, Spanish)
// https://www.romhacking.net/translations/4217/
static struct BurnRomInfo md_rbislandsRomDesc[] = {
	{ "rainbow islands extra (hack, spanish).bin", 524288, 0x7a131386, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rbislands)
STD_ROM_FN(md_rbislands)

struct BurnDriver BurnDrvmd_rbislands = {
	"md_rbislands", "md_rbisland", NULL, NULL, "2019",
	"Rainbow Islands Extra (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rbislandsRomInfo, md_rbislandsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rambo III (Hack, Spanish)
// https://www.romhacking.net/translations/3163/
static struct BurnRomInfo md_rambo3sRomDesc[] = {
	{ "rambo iii (hack, spanish).bin", 262144, 0xe28d6cb0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rambo3s)
STD_ROM_FN(md_rambo3s)

struct BurnDriver BurnDrvmd_rambo3s = {
	"md_rambo3s", "md_rambo3", NULL, NULL, "2017",
	"Rambo III (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_rambo3sRomInfo, md_rambo3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ranger-X (Hack, Spanish)
// https://www.romhacking.net/translations/4061/
static struct BurnRomInfo md_rangerxsRomDesc[] = {
	{ "ranger-x (hack, spanish).bin", 1048576, 0x73f94d57, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rangerxs)
STD_ROM_FN(md_rangerxs)

struct BurnDriver BurnDrvmd_rangerxs = {
	"md_rangerxs", "md_rangerx", NULL, NULL, "2018",
	"Ranger-X (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rangerxsRomInfo, md_rangerxsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rastan Saga II (Hack, Spanish)
// https://www.romhacking.net/translations/2986/
static struct BurnRomInfo md_rastan2sRomDesc[] = {
	{ "rastan saga ii (hack, spanish).bin", 524288, 0xaef20d9e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rastan2s)
STD_ROM_FN(md_rastan2s)

struct BurnDriver BurnDrvmd_rastan2s = {
	"md_rastan2s", "md_rastan2", NULL, NULL, "2017",
	"Rastan Saga II (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rastan2sRomInfo, md_rastan2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rent a Hero (Hack, Spanish v0.93)
// https://www.romhacking.net/translations/5520/
static struct BurnRomInfo md_rentherosRomDesc[] = {
	{ "Rent a Hero T-Spa v0.93 (2020)(jackic).bin", 1476768, 0xfecec092, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rentheros)
STD_ROM_FN(md_rentheros)

struct BurnDriver BurnDrvmd_rentheros = {
	"md_rentheros", "md_renthero", NULL, NULL, "2019-20",
	"Rent a Hero (Hack, Spanish v0.93)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_rentherosRomInfo, md_rentherosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ristar (Hack, Spanish)
// https://www.romhacking.net/translations/3370/
static struct BurnRomInfo md_ristarsRomDesc[] = {
	{ "ristar (hack, spanish).bin", 2097152, 0xadaf912c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ristars)
STD_ROM_FN(md_ristars)

struct BurnDriver BurnDrvmd_ristars = {
	"md_ristars", "md_ristar", NULL, NULL, "2017",
	"Ristar (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ristarsRomInfo, md_ristarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash (Hack, Spanish)
// https://www.romhacking.net/translations/2104/
static struct BurnRomInfo md_roadrashsRomDesc[] = {
	{ "road rash (hack, spanish).bin", 786432, 0x373d2fba, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roadrashs)
STD_ROM_FN(md_roadrashs)

struct BurnDriver BurnDrvmd_roadrashs = {
	"md_roadrashs", "md_roadrash", NULL, NULL, "2014",
	"Road Rash (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_roadrashsRomInfo, md_roadrashsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash II (Hack Spanish)
// https://www.romhacking.net/translations/2069/
static struct BurnRomInfo md_rrash2sRomDesc[] = {
	{ "road rash ii (hack, spanish).bin", 1048576, 0xa8ec5695, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash2s)
STD_ROM_FN(md_rrash2s)

struct BurnDriver BurnDrvmd_rrash2s = {
	"md_rrash2s", "md_rrash2", NULL, NULL, "2013",
	"Road Rash II (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash2sRomInfo, md_rrash2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Robocop 3 (Hack, Spanish)
// https://www.romhacking.net/translations/3048/
static struct BurnRomInfo md_robocop3sRomDesc[] = {
	{ "robocop 3 (hack, spanish).bin", 524288, 0xeecbff56, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_robocop3s)
STD_ROM_FN(md_robocop3s)

struct BurnDriver BurnDrvmd_robocop3s = {
	"md_robocop3s", "md_robocop3", NULL, NULL, "2017",
	"Robocop 3 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robocop3sRomInfo, md_robocop3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Robocop versus The Terminator (Hack, Spanish)
// https://www.romhacking.net/translations/2939/
static struct BurnRomInfo md_robotermsRomDesc[] = {
	{ "robocop versus the terminator (hack, spanish).bin", 2097152, 0x431feb53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roboterms)
STD_ROM_FN(md_roboterms)

struct BurnDriver BurnDrvmd_roboterms = {
	"md_roboterms", "md_roboterm", NULL, NULL, "2017",
	"Robocop versus The Terminator (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_robotermsRomInfo, md_robotermsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rocket Knight Adventures (Hack, Spanish v1.1)
// https://www.romhacking.net/translations/3641/
static struct BurnRomInfo md_rocketsRomDesc[] = {
	{ "rocket knight adventures (hack, spanish).bin", 1048576, 0x4ecd1bd6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rockets)
STD_ROM_FN(md_rockets)

struct BurnDriver BurnDrvmd_rockets = {
	"md_rockets", "md_rocket", NULL, NULL, "2018",
	"Rocket Knight Adventures (Hack, Spanish v1.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rocketsRomInfo, md_rocketsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// rolling thunder 2 (Hack, Spanish)
// https://www.romhacking.net/translations/3542/
static struct BurnRomInfo md_rthun2sRomDesc[] = {
	{ "rolling thunder 2 (hack, spanish).bin", 1048576, 0x43588ef3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rthun2s)
STD_ROM_FN(md_rthun2s)

struct BurnDriver BurnDrvmd_rthun2s = {
	"md_rthun2s", "md_rthun2", NULL, NULL, "2018",
	"Rolling Thunder 2 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rthun2sRomInfo, md_rthun2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// rolling thunder 3 (Hack, Spanish)
// https://www.romhacking.net/translations/3543/
static struct BurnRomInfo md_rthun3sRomDesc[] = {
	{ "rolling thunder 3 (hack, spanish).bin", 1572864, 0x0ad48d02, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rthun3s)
STD_ROM_FN(md_rthun3s)

struct BurnDriver BurnDrvmd_rthun3s = {
	"md_rthun3s", "md_rthun3", NULL, NULL, "2018",
	"Rolling Thunder 3 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rthun3sRomInfo, md_rthun3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Rolo to the rescue (Hack, Spanish)
// https://www.romhacking.net/translations/4996/
static struct BurnRomInfo md_rolosRomDesc[] = {
	{ "rolo to the rescue (hack, spanish).bin", 524288, 0x0c4584a4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rolos)
STD_ROM_FN(md_rolos)

struct BurnDriver BurnDrvmd_rolos = {
	"md_rolos", "md_rolo", NULL, NULL, "2019",
	"Rolo to the Rescue (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_rolosRomInfo, md_rolosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// s.s. lucifer - man overboard! (Hack, Spanish)
// https://www.romhacking.net/translations/4801
static struct BurnRomInfo md_manoversRomDesc[] = {
	{ "s.s. lucifer - man overboard! (hack, spanish).bin", 1048576, 0x17edbbfe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_manovers)
STD_ROM_FN(md_manovers)

struct BurnDriver BurnDrvmd_manovers = {
	"md_manovers", "md_manover", NULL, NULL, "2019",
	"S.S. Lucifer - Man Overboard! (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_manoversRomInfo, md_manoversRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// sagaia (Hack, Spanish)
// https://www.romhacking.net/translations/3541/
static struct BurnRomInfo md_sagaiasRomDesc[] = {
	{ "sagaia (hack, spanish).bin", 1048576, 0x29e1fb66, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sagaias)
STD_ROM_FN(md_sagaias)

struct BurnDriver BurnDrvmd_sagaias = {
	"md_sagaias", "md_sagaia", NULL, NULL, "2018",
	"Sagaia (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_sagaiasRomInfo, md_sagaiasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// saint sword (Hack, Spanish)
// https://www.romhacking.net/translations/4739/
static struct BurnRomInfo md_sswordsRomDesc[] = {
	{ "saint sword (hack, spanish).bin", 524288, 0xfe603ec4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sswords)
STD_ROM_FN(md_sswords)

struct BurnDriver BurnDrvmd_sswords = {
	"md_sswords", "md_ssword", NULL, NULL, "2019",
	"Saint Sword (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sswordsRomInfo, md_sswordsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// samurai shodown (Hack, Spanish)
// https://www.romhacking.net/translations/4087/
static struct BurnRomInfo md_samshosRomDesc[] = {
	{ "samurai shodown (hack, spanish).bin", 3145728, 0xf65a06f4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_samshos)
STD_ROM_FN(md_samshos)

struct BurnDriver BurnDrvmd_samshos = {
	"md_samshos", "md_samsho", NULL, NULL, "2018",
	"Samurai Shodown (Hack, Spanish)\0", NULL, "RMGlitch", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_samshosRomInfo, md_samshosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// saturday night slammasters (Hack, Spanish)
// https://www.romhacking.net/translations/5573/
static struct BurnRomInfo md_slammastsRomDesc[] = {
	{ "saturday night slammasters (hack, spanish).bin", 4194304, 0xc4ebbfa1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slammasts)
STD_ROM_FN(md_slammasts)

struct BurnDriver BurnDrvmd_slammasts = {
	"md_slammasts", "md_slammast", NULL, NULL, "2020",
	"Saturday Night Slammasters (Hack, Spanish)\0", NULL, "Max1323", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_slammastsRomInfo, md_slammastsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// scooby doo mystery (Hack, Spanish)
// https://www.romhacking.net/translations/2672/
static struct BurnRomInfo md_scoobysRomDesc[] = {
	{ "scooby doo mystery (hack, spanish).bin", 2097152, 0xebf49926, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_scoobys)
STD_ROM_FN(md_scoobys)

struct BurnDriver BurnDrvmd_scoobys = {
	"md_scoobys", "md_scooby", NULL, NULL, "2016",
	"Scooby Doo Mystery (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ADV, 0,
	MegadriveGetZipName, md_scoobysRomInfo, md_scoobysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// shadow blasters (Hack, Spanish)
// https://www.romhacking.net/translations/4827/
static struct BurnRomInfo md_shadowsRomDesc[] = {
	{ "shadow blasters (hack, spanish).bin", 524288, 0x1abd9d5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shadows)
STD_ROM_FN(md_shadows)

struct BurnDriver BurnDrvmd_shadows = {
	"md_shadows", "md_shadow", NULL, NULL, "2019",
	"Shadow Blasters (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shadowsRomInfo, md_shadowsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// shadow dancer - the secret of shinobi (Hack, Spanish)
// https://www.romhacking.net/translations/3119/
static struct BurnRomInfo md_shdancersRomDesc[] = {
	{ "shadow dancer - the secret of shinobi (hack, spanish).bin", 524288, 0xdd156a80, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shdancers)
STD_ROM_FN(md_shdancers)

struct BurnDriver BurnDrvmd_shdancers = {
	"md_shdancers", "md_shdancer", NULL, NULL, "2017",
	"Shadow Dancer - The Secret of Shinobi (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_shdancersRomInfo, md_shdancersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// shadow of the beast (Hack, Spanish)
// https://www.romhacking.net/translations/3668/
static struct BurnRomInfo md_beastsRomDesc[] = {
	{ "shadow of the beast (hack, spanish).bin", 1048576, 0xde6b78e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beasts)
STD_ROM_FN(md_beasts)

struct BurnDriver BurnDrvmd_beasts = {
	"md_beasts", "md_beast", NULL, NULL, "2018",
	"Shadow of the Beast (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beastsRomInfo, md_beastsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// shadow of the beast ii (Hack, Spanish)
// https://www.romhacking.net/translations/4285/
static struct BurnRomInfo md_beast2sRomDesc[] = {
	{ "shadow of the beast ii (hack, spanish).bin", 1048576, 0x03b05238, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_beast2s)
STD_ROM_FN(md_beast2s)

struct BurnDriver BurnDrvmd_beast2s = {
	"md_beast2s", "md_beast2", NULL, NULL, "2019",
	"Shadow of the Beast II (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_beast2sRomInfo, md_beast2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shining Force (Hack, Spanish)
// https://www.romhacking.net/translations/5500/
static struct BurnRomInfo md_shinfrcesRomDesc[] = {
	{ "shining force (hack, spanish).bin", 2621440, 0xbe1677da, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinfrces)
STD_ROM_FN(md_shinfrces)

struct BurnDriver BurnDrvmd_shinfrces = {
	"md_shinfrces", "md_shinfrce", NULL, NULL, "2020",
	"Shining Force (Hack, Spanish)\0", NULL, "RMGlitch", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_shinfrcesRomInfo, md_shinfrcesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// shinobi iii - return of the ninja master (Hack, Spanish)
// https://www.romhacking.net/translations/3118/
static struct BurnRomInfo md_shinobi3sRomDesc[] = {
	{ "shinobi iii - return of the ninja master (hack, spanish).bin", 1048576, 0xecd332e1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shinobi3s)
STD_ROM_FN(md_shinobi3s)

struct BurnDriver BurnDrvmd_shinobi3s = {
	"md_shinobi3s", "md_shinobi3", NULL, NULL, "2017",
	"Shinobi III - Return of the Ninja Master (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_shinobi3sRomInfo, md_shinobi3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// side pocket (Hack, Spanish)
// https://www.romhacking.net/translations/4829/
static struct BurnRomInfo md_sidepocksRomDesc[] = {
	{ "side pocket (hack, spanish).bin", 1048576, 0x8b0d72f8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sidepocks)
STD_ROM_FN(md_sidepocks)

struct BurnDriver BurnDrvmd_sidepocks = {
	"md_sidepocks", "md_sidepock", NULL, NULL, "2019",
	"Side Pocket (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_sidepocksRomInfo, md_sidepocksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// skeleton krew (Hack, Spanish)
// https://www.romhacking.net/translations/3655/
static struct BurnRomInfo md_skelkrewsRomDesc[] = {
	{ "skeleton krew (hack, spanish).bin", 2097152, 0xfc818137, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_skelkrews)
STD_ROM_FN(md_skelkrews)

struct BurnDriver BurnDrvmd_skelkrews = {
	"md_skelkrews", "md_skelkrew", NULL, NULL, "2018",
	"Skeleton Krew (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_skelkrewsRomInfo, md_skelkrewsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// slap fight md (Hack, Spanish)
// https://www.romhacking.net/translations/5198/
static struct BurnRomInfo md_slapfighsRomDesc[] = {
	{ "slap fight md (hack, spanish).bin", 1048576, 0xb825e72d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slapfighs)
STD_ROM_FN(md_slapfighs)

struct BurnDriver BurnDrvmd_slapfighs = {
	"md_slapfighs", "md_slapfigh", NULL, NULL, "2019",
	"Slap Fight MD (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_slapfighsRomInfo, md_slapfighsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// snake rattle n' roll (Hack, Spanish)
// https://www.romhacking.net/translations/4984/
static struct BurnRomInfo md_snakernrsRomDesc[] = {
	{ "snake rattle n' roll (hack, spanish).bin", 524288, 0x3fc9a196, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_snakernrs)
STD_ROM_FN(md_snakernrs)

struct BurnDriver BurnDrvmd_snakernrs = {
	"md_snakernrs", "md_snakernr", NULL, NULL, "2019",
	"Snake Rattle n' Roll (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_snakernrsRomInfo, md_snakernrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// snow bros. - nick & tom (Hack, Spanish)
// https://www.romhacking.net/translations/3734/
static struct BurnRomInfo md_snowbrossRomDesc[] = {
	{ "snow bros. - nick & tom (hack, spanish).bin", 1048576, 0x9cd6b6df, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_snowbross)
STD_ROM_FN(md_snowbross)

struct BurnDriver BurnDrvmd_snowbross = {
	"md_snowbross", "md_snowbros", NULL, NULL, "2022",
	"Snow Bros. - Nick & Tom (Hack, Spanish, v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_snowbrossRomInfo, md_snowbrossRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// soldiers of fortune (Hack, Spanish)
// https://www.romhacking.net/translations/4999/
static struct BurnRomInfo md_chaosengsRomDesc[] = {
	{ "soldiers of fortune (hack, spanish).bin", 1572864, 0xa595e787, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_chaosengs)
STD_ROM_FN(md_chaosengs)

struct BurnDriver BurnDrvmd_chaosengs = {
	"md_soldforts", "md_chaoseng", NULL, NULL, "2019",
	"Soldiers of Fortune (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_chaosengsRomInfo, md_chaosengsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// sonic 3d blast -- sonic 3d - flickies' island (Hack , Spanish)
// https://www.romhacking.net/translations/5266/
static struct BurnRomInfo md_sonic3dsRomDesc[] = {
	{ "sonic 3d blast -- sonic 3d - flickies' island (Hack , Spanish).bin", 4194304, 0x6486eb24, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sonic3ds)
STD_ROM_FN(md_sonic3ds)

struct BurnDriver BurnDrvmd_sonic3ds = {
	"md_sonic3ds", "md_sonic3d", NULL, NULL, "2019",
	"Sonic 3D Blast (Hack , Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sonic3dsRomInfo, md_sonic3dsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// space invaders 91 (Hack, Spanish)
// https://www.romhacking.net/translations/4372/
static struct BurnRomInfo md_sinv91sRomDesc[] = {
	{ "space invaders 91 (hack, spanish).bin", 262144, 0x648c1179, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sinv91s)
STD_ROM_FN(md_sinv91s)

struct BurnDriver BurnDrvmd_sinv91s = {
	"md_sinv91s", "md_sinv91", NULL, NULL, "2019",
	"Space Invaders 91 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_sinv91sRomInfo, md_sinv91sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// sparkster (Hack, Spanish)
// https://www.romhacking.net/translations/3642/
static struct BurnRomInfo md_sparkstrsRomDesc[] = {
	{ "sparkster (hack, spanish).bin", 1048576, 0xa110dfe9, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sparkstrs)
STD_ROM_FN(md_sparkstrs)

struct BurnDriver BurnDrvmd_sparkstrs = {
	"md_sparkstrs", "md_sparkstr", NULL, NULL, "2018",
	"Sparkster (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sparkstrsRomInfo, md_sparkstrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// spider-man and venom - maximum carnage (Hack, Spanish)
// https://www.romhacking.net/translations/3656/
static struct BurnRomInfo md_spidmaxcsRomDesc[] = {
	{ "spider-man and venom - maximum carnage (hack, spanish).bin", 2097152, 0x13135784, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidmaxcs)
STD_ROM_FN(md_spidmaxcs)

struct BurnDriver BurnDrvmd_spidmaxcs = {
	"md_spidmaxcs", "md_spidmaxc", NULL, NULL, "2018",
	"Spider-Man & Venom - Maximum Carnage (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidmaxcsRomInfo, md_spidmaxcsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// spider-man vs. the kingpin (Hack, Spanish)
// https://www.romhacking.net/translations/3478/
static struct BurnRomInfo md_spidkingsRomDesc[] = {
	{ "spider-man vs. the kingpin (hack, spanish).bin", 524288, 0xe04a7f0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spidkings)
STD_ROM_FN(md_spidkings)

struct BurnDriver BurnDrvmd_spidkings = {
	"md_spidkings", "md_spidking", NULL, NULL, "2018",
	"Spider-Man vs. the Kingpin (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_spidkingsRomInfo, md_spidkingsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// splatterhouse 3 (Hack, Spanish)
// https://www.romhacking.net/translations/3799/
static struct BurnRomInfo md_splatth3sRomDesc[] = {
	{ "splatterhouse 3 (hack, spanish).bin", 2097152, 0xa89df7a7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth3s)
STD_ROM_FN(md_splatth3s)

struct BurnDriver BurnDrvmd_splatth3s = {
	"md_splatth3s", "md_splatth3", NULL, NULL, "2018",
	"Splatterhouse 3 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth3sRomInfo, md_splatth3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// stormlord (Hack, Spanish)
// https://www.romhacking.net/translations/5350/
static struct BurnRomInfo md_strmlordsRomDesc[] = {
	{ "stormlord (hack, spanish).bin", 524288, 0x7cb3255c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strmlords)
STD_ROM_FN(md_strmlords)

struct BurnDriver BurnDrvmd_strmlords = {
	"md_strmlords", "md_strmlord", NULL, NULL, "2020",
	"Stormlord (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_strmlordsRomInfo, md_strmlordsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// street fighter ii' - special champion edition (Hack, Spanish)
// https://www.romhacking.net/translations/2075/
static struct BurnRomInfo md_sf2sRomDesc[] = {
	{ "street fighter ii' - special champion edition (hack, spanish).bin", 3145728, 0x8ae5c323, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2s)
STD_ROM_FN(md_sf2s)

struct BurnDriver BurnDrvmd_sf2s = {
	"md_sf2s", "md_sf2", NULL, NULL, "2013",
	"Street Fighter II' - Special Champion Edition (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2sRomInfo, md_sf2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// street smart (Hack, Spanish)
// https://www.romhacking.net/translations/4877/
static struct BurnRomInfo md_ssmartsRomDesc[] = {
	{ "street smart (hack, spanish).bin", 524288, 0xe678d57e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssmarts)
STD_ROM_FN(md_ssmarts)

struct BurnDriver BurnDrvmd_ssmarts = {
	"md_ssmarts", "md_ssmart", NULL, NULL, "2019",
	"Street Smart (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssmartsRomInfo, md_ssmartsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage (Hack, Spanish)
// https://www.romhacking.net/translations/3801/
static struct BurnRomInfo md_sorsRomDesc[] = {
	{ "streets of rage (hack, spanish).bin", 524288, 0x3e8baf7e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sors)
STD_ROM_FN(md_sors)

struct BurnDriver BurnDrvmd_sors = {
	"md_sors", "md_sor", NULL, NULL, "2019",
	"Streets of Rage (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sorsRomInfo, md_sorsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// streets of rage 2 (Hack, Spanish)
// https://www.romhacking.net/translations/2876/
static struct BurnRomInfo md_sor2sRomDesc[] = {
	{ "streets of rage 2 (hack, spanish).bin", 2097152, 0x05deb02e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2s)
STD_ROM_FN(md_sor2s)

struct BurnDriver BurnDrvmd_sor2s = {
	"md_sor2s", "md_sor2", NULL, NULL, "2017",
	"Streets of Rage 2 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2sRomInfo, md_sor2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// streets of rage 3 (Hack, Spanish)
// https://www.romhacking.net/translations/5427/
static struct BurnRomInfo md_sor3sRomDesc[] = {
	{ "streets of rage 3 (hack, spanish).bin", 3145728, 0xf52d84e0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor3s)
STD_ROM_FN(md_sor3s)

struct BurnDriver BurnDrvmd_sor3s = {
	"md_sor3s", "md_sor3", NULL, NULL, "2020",
	"Streets of Rage 3 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor3sRomInfo, md_sor3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// strider (Hack, Spanish)
// https://www.romhacking.net/translations/2887/
static struct BurnRomInfo md_stridersRomDesc[] = {
	{ "strider (hack, spanish).bin", 1048576, 0xebabd8a3, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_striders)
STD_ROM_FN(md_striders)

struct BurnDriver BurnDrvmd_striders = {
	"md_striders", "md_strider", NULL, NULL, "2017",
	"Strider (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_stridersRomInfo, md_stridersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Strider Returns - Journey from Darkness (Hack, Spanish)
// https://www.romhacking.net/translations/3296/
static struct BurnRomInfo md_strider2sRomDesc[] = {
	{ "strider returns - journey from darkness (hack, spanish).bin", 1048576, 0x6844745a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_strider2s)
STD_ROM_FN(md_strider2s)

struct BurnDriver BurnDrvmd_strider2s = {
	"md_strider2s", "md_strider2", NULL, NULL, "2017",
	"Strider Returns - Journey from Darkness (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_strider2sRomInfo, md_strider2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// subterrania (Hack, Spanish)
// https://www.romhacking.net/translations/5613/
static struct BurnRomInfo md_subterrsRomDesc[] = {
	{ "subterrania (hack, spanish).bin", 2097152, 0x5bfd7998, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_subterrs)
STD_ROM_FN(md_subterrs)

struct BurnDriver BurnDrvmd_subterrs = {
	"md_subterrs", "md_subterr", NULL, NULL, "2020",
	"SubTerrania (Hack, Spanish)\0", NULL, "m0sca", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_subterrsRomInfo, md_subterrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// sunset riders (Hack, Spanish)
// https://www.romhacking.net/translations/4763/
static struct BurnRomInfo md_ssriderssRomDesc[] = {
	{ "sunset riders (hack, spanish).bin", 524288, 0x63909c3d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssriderss)
STD_ROM_FN(md_ssriderss)

struct BurnDriver BurnDrvmd_ssriderss = {
	"md_ssriderss", "md_ssriders", NULL, NULL, "2019",
	"Sunset Riders (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ssriderssRomInfo, md_ssriderssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Fantasy Zone (Hack, Spanish)
// https://www.romhacking.net/translations/4783/
static struct BurnRomInfo md_sfzonesRomDesc[] = {
	{ "super fantasy zone (hack, spanish).bin", 1048576, 0xe79f6216, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sfzones)
STD_ROM_FN(md_sfzones)

struct BurnDriver BurnDrvmd_sfzones = {
	"md_sfzones", "md_sfzone", NULL, NULL, "2019",
	"Super Fantasy Zone (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_sfzonesRomInfo, md_sfzonesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// super hang-on (Hack, Spanish)
// https://www.romhacking.net/translations/3210/
static struct BurnRomInfo md_shangonsRomDesc[] = {
	{ "super hang-on (hack, spanish).bin", 524288, 0x9586e314, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shangons)
STD_ROM_FN(md_shangons)

struct BurnDriver BurnDrvmd_shangons = {
	"md_shangons", "md_shangon", NULL, NULL, "2017",
	"Super Hang-On (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING | GBF_ADV, 0,
	MegadriveGetZipName, md_shangonsRomInfo, md_shangonsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// super off road (Hack, Spanish)
// https://www.romhacking.net/translations/4110/
static struct BurnRomInfo md_superoffsRomDesc[] = {
	{ "super off road (hack, spanish).bin", 524288, 0x050bbb2d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_superoffs)
STD_ROM_FN(md_superoffs)

struct BurnDriver BurnDrvmd_superoffs = {
	"md_superoffs", "md_superoff", NULL, NULL, "2019",
	"Super Off Road (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_superoffsRomInfo, md_superoffsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// super smash tv (Hack, Spanish)
// https://www.romhacking.net/translations/4879/
static struct BurnRomInfo md_ssmashtvsRomDesc[] = {
	{ "super smash tv (hack, spanish).bin", 524288, 0x349b2a6c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssmashtvs)
STD_ROM_FN(md_ssmashtvs)

struct BurnDriver BurnDrvmd_ssmashtvs = {
	"md_ssmashtvs", "md_ssmashtv", NULL, NULL, "2019",
	"Super Smash TV (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_ssmashtvsRomInfo, md_ssmashtvsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II - The New Challengers (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/2884/
static struct BurnRomInfo md_ssf2sRomDesc[] = {
	{ "Super Street Fighter II - The New Challengers T-Spa v2.0 (2022)(Wave).bin", 5242880, 0x06f217ee, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2s)
STD_ROM_FN(md_ssf2s)

struct BurnDriver BurnDrvmd_ssf2s = {
	"md_ssf2s", "md_ssf2", NULL, NULL, "2022",
	"Super Street Fighter II - The New Challengers (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2sRomInfo, md_ssf2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Bare Knuckle III (Hack, Spanish) (Uncensored) (All Unlocked)
// https://www.romhacking.net/translations/2001/
static struct BurnRomInfo md_bk3sRomDesc[] = {
	{ "Bare Knuckle III (Hack, Spanish) (Uncensored) (All Unlocked).bin", 3146096, 0xd848ee12, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bk3s)
STD_ROM_FN(md_bk3s)

struct BurnDriver BurnDrvmd_bk3s = {
	"md_bk3s", "md_sor3", NULL, NULL, "2012",
	"Bare Knuckle III (Hack, Spanish) (Uncensored) (All Unlocked)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_bk3sRomInfo, md_bk3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// King's Bounty - The Conqueror's Quest (Hack, Spanish)
// https://www.romhacking.net/translations/5813/
static struct BurnRomInfo md_kingsbtysRomDesc[] = {
	{ "king's bounty - the conqueror's quest (hack, spanish).bin", 524288, 0x06f79c46, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_kingsbtys)
STD_ROM_FN(md_kingsbtys)

struct BurnDriver BurnDrvmd_kingsbtys = {
	"md_kingsbtys", "md_kingsbty", NULL, NULL, "2020",
	"King's Bounty - The Conqueror's Quest (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_kingsbtysRomInfo, md_kingsbtysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Superman (Hack, Spanish)
// https://www.romhacking.net/translations/3527/
static struct BurnRomInfo md_SupermansRomDesc[] = {
	{ "superman (hack, spanish).bin", 1048576, 0x5d538528, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_Supermans)
STD_ROM_FN(md_Supermans)

struct BurnDriver BurnDrvmd_Supermans = {
	"md_supermans", "md_superman", NULL, NULL, "2018",
	"Superman (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_SupermansRomInfo, md_SupermansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// sword of sodan (Hack, Spanish)
// https://www.romhacking.net/translations/4831/
static struct BurnRomInfo md_swordsodsRomDesc[] = {
	{ "sword of sodan (hack, spanish).bin", 524288, 0x5e504f77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_swordsods)
STD_ROM_FN(md_swordsods)

struct BurnDriver BurnDrvmd_swordsods = {
	"md_swordsods", "md_swordsod", NULL, NULL, "2019",
	"Sword of Sodan (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_swordsodsRomInfo, md_swordsodsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Sword of Vermilion (Hack, Spanish V3)
// https://www.romhacking.net/translations/3716/
static struct BurnRomInfo md_vermilsRomDesc[] = {
	{ "Sword of Vermilion T-Spa V3 (2021)(jackic).bin", 786432, 0x297dbe53, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vermils)
STD_ROM_FN(md_vermils)

struct BurnDriver BurnDrvmd_vermils = {
	"md_vermils", "md_vermil", NULL, NULL, "2021",
	"Sword of Vermilion (Hack, Spanish V3)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_vermilsRomInfo, md_vermilsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};												

// syd of valis (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/2870/
static struct BurnRomInfo md_sydvalissRomDesc[] = {
	{ "Syd of Valis T-Spa v2.0 (2021)(Wave).bin", 524288, 0x996d7a8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sydvaliss)
STD_ROM_FN(md_sydvaliss)

struct BurnDriver BurnDrvmd_sydvaliss = {
	"md_sydvaliss", "md_sydvalis", NULL, NULL, "2021",
	"Syd of Valis (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_sydvalissRomInfo, md_sydvalissRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// T2 - The Arcade Game (Hack, Spanish)
// https://www.romhacking.net/translations/4710/
static struct BurnRomInfo md_t2agsRomDesc[] = {
	{ "t2 - the arcade game (hack, spanish).bin", 1048576, 0xc1a8c2b5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_t2ags)
STD_ROM_FN(md_t2ags)

struct BurnDriver BurnDrvmd_t2ags = {
	"md_t2ags", "md_t2ag", NULL, NULL, "2019",
	"T2 - The Arcade Game (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT, 0,
	MegadriveGetZipName, md_t2agsRomInfo, md_t2agsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Target Earth (Hack, Spanish)
// https://www.romhacking.net/translations/4581/
static struct BurnRomInfo md_trgearthsRomDesc[] = {
	{ "target earth (hack, spanish).bin", 524288, 0x85691cde, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_trgearths)
STD_ROM_FN(md_trgearths)

struct BurnDriver BurnDrvmd_trgearths = {
	"md_trgearths", "md_trgearth", NULL, NULL, "2019",
	"Target Earth (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_trgearthsRomInfo, md_trgearthsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// task force harrier ex (Hack, Spanish)
// https://www.romhacking.net/translations/4535/
static struct BurnRomInfo md_taskfhexsRomDesc[] = {
	{ "task force harrier ex (hack, spanish).bin", 1048576, 0x2f15e258, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_taskfhexs)
STD_ROM_FN(md_taskfhexs)

struct BurnDriver BurnDrvmd_taskfhexs = {
	"md_taskfhexs", "md_taskfhex", NULL, NULL, "2019",
	"Task Force Harrier EX (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_taskfhexsRomInfo, md_taskfhexsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// escape from mars starring taz (Hack, Spanish)
// https://www.romhacking.net/translations/3421/
static struct BurnRomInfo md_tazmarssRomDesc[] = {
	{ "escape from mars starring taz (hack, spanish).bin", 2097152, 0x4e2074d1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmarss)
STD_ROM_FN(md_tazmarss)

struct BurnDriver BurnDrvmd_tazmarss = {
	"md_tazmarss", "md_tazmars", NULL, NULL, "2018",
	"Escape from Mars Starring Taz (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmarssRomInfo, md_tazmarssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// taz-mania (Hack, Spanish)
// https://www.romhacking.net/translations/2074/
static struct BurnRomInfo md_tazmaniasRomDesc[] = {
	{ "taz-mania (hack, spanish).bin", 524288, 0x3943f0fe, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tazmanias)
STD_ROM_FN(md_tazmanias)

struct BurnDriver BurnDrvmd_tazmanias = {
	"md_tazmanias", "md_tazmania", NULL, NULL, "2013",
	"Taz-Mania (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tazmaniasRomInfo, md_tazmaniasRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - The Hyperstone Heist (Hack, Spanish)
// https://www.romhacking.net/translations/2886/
static struct BurnRomInfo md_tmhthhsRomDesc[] = {
	{ "teenage mutant ninja turtles - the hyperstone heist (hack, spanish).bin", 1048576, 0x157d773d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmhthhs)
STD_ROM_FN(md_tmhthhs)

struct BurnDriver BurnDrvmd_tmhthhs = {
	"md_tmnthhs", "md_tmhthh", NULL, NULL, "2017",
	"Teenage Mutant Ninja Turtles - The Hyperstone Heist (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tmhthhsRomInfo, md_tmhthhsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Teenage Mutant Ninja Turtles - Tournament Fighters (Hack, Spanish)
// https://www.romhacking.net/translations/2875/
static struct BurnRomInfo md_tmnttfsRomDesc[] = {
	{ "teenage mutant ninja turtles - tournament fighters (hack, spanish).bin", 2097152, 0x7c91ba38, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tmnttfs)
STD_ROM_FN(md_tmnttfs)

struct BurnDriver BurnDrvmd_tmnttfs = {
	"md_tmnttfs", "md_tmhttf", NULL, NULL, "2017",
	"Teenage Mutant Ninja Turtles - Tournament Fighters (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tmnttfsRomInfo, md_tmnttfsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Terminator 2 - Judgment Day (Hack, Spanish)
// https://www.romhacking.net/translations/5030/
static struct BurnRomInfo md_term2sRomDesc[] = {
{ "terminator 2 - judgment day (hack, spanish).bin", 1048576, 0xdf9e55de, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_term2s)
STD_ROM_FN(md_term2s)

struct BurnDriver BurnDrvmd_term2s = {
"md_term2s", "md_term2", NULL, NULL, "2019",
"T2 - Terminator 2 - Judgment Day (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_SCRFIGHT, 0,
MegadriveGetZipName, md_term2sRomInfo, md_term2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// tetris (Hack, Spanish)
// https://www.romhacking.net/translations/4375/
static struct BurnRomInfo md_tetrissRomDesc[] = {
	{ "tetris (hack, spanish).bin", 262144, 0x6fe8f5c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tetriss)
STD_ROM_FN(md_tetriss)

struct BurnDriver BurnDrvmd_tetriss = {
	"md_tetriss", "md_tetris", NULL, NULL, "2019",
	"Tetris (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_tetrissRomInfo, md_tetrissRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Addams Family, The (Hack, Spanish)
// https://www.romhacking.net/translations/3575/
static struct BurnRomInfo md_addfamsRomDesc[] = {
	{ "the addams family (hack, spanish).bin", 1048576, 0x3b1aa679, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_addfams)
STD_ROM_FN(md_addfams)

struct BurnDriver BurnDrvmd_addfams = {
	"md_addfams", "md_addfam", NULL, NULL, "2018",
	"Addams Family, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_addfamsRomInfo, md_addfamsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Adventures of Batman & Robin, The (Hack, Spanish)
// https://www.romhacking.net/translations/2109/
static struct BurnRomInfo md_advbatrsRomDesc[] = {
	{ "the adventures of batman & robin (hack, spanish).bin", 2097152, 0x903f8ca7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_advbatrs)
STD_ROM_FN(md_advbatrs)

struct BurnDriver BurnDrvmd_advbatrs = {
	"md_advbatrs", "md_advbatr", NULL, NULL, "2014",
	"Adventures of Batman & Robin, The (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SHOOT | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_advbatrsRomInfo, md_advbatrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Super Street Fighter II (USA)(20-12-2020)
// https://www.youtube.com/watch?v=sagYtK0ppfM&t=157s
static struct BurnRomInfo md_ssf2fhRomDesc[] = {
	{ "super street fighter ii - the new challengers (hack, final).bin", 5242880, 0x8e6772aa, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ssf2fh)
STD_ROM_FN(md_ssf2fh)

struct BurnDriver BurnDrvmd_ssf2fh = {
	"md_ssf2fh", "md_ssf2", NULL, NULL, "2020",
	"Super Street Fighter II - The New Challengers (Hack, Final)\0", NULL, "Lord Hiryu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SSF2, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_ssf2fhRomInfo, md_ssf2fhRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Street Fighter II Hyper Champion Edition (Hack)
// https://www.youtube.com/watch?v=FwHAwDbYKbc
static struct BurnRomInfo md_sf2hceRomDesc[] = {
	{ "street fighter ii' - hyper champion edition (hack).bin", 3145728, 0xbe0805cf, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sf2hce)
STD_ROM_FN(md_sf2hce)

struct BurnDriver BurnDrvmd_sf2hce = {
	"md_sf2hce", "md_sf2", NULL, NULL, "2020",
	"Street Fighter II' - Hyper Champion Edition (Hack)\0", NULL, "Lord Hiryu", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_sf2hceRomInfo, md_sf2hceRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Death and Return of Superman, The (Hack, Spanish)
// https://www.romhacking.net/translations/3673/
static struct BurnRomInfo md_deathretsRomDesc[] = {
	{ "the death and return of superman (hack, spanish).bin", 2097152, 0x82b94fc6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_deathrets)
STD_ROM_FN(md_deathrets)

struct BurnDriver BurnDrvmd_deathrets = {
	"md_deathrets", "md_deathret", NULL, NULL, "2018",
	"Death and Return of Superman, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_deathretsRomInfo, md_deathretsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flintstone, The (Hack, Spanish)
// https://www.romhacking.net/translations/2113/
static struct BurnRomInfo md_flintsRomDesc[] = {
	{ "the flintstones (hack, spanish).bin", 524288, 0x2539bd5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flints)
STD_ROM_FN(md_flints)

struct BurnDriver BurnDrvmd_flints = {
	"md_flints", "md_flint", NULL, NULL, "2014",
	"Flintstones, The (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_flintsRomInfo, md_flintsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Gadget Twins (Hack, Spanish)
// https://www.romhacking.net/translations/4507/
static struct BurnRomInfo md_gadgetsRomDesc[] = {
	{ "gadget twins (hack, spanish).bin", 1048576, 0xb5e21dcb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_gadgets)
STD_ROM_FN(md_gadgets)

struct BurnDriver BurnDrvmd_gadgets = {
	"md_gadgets", "md_gadget", NULL, NULL, "2019",
	"Gadget Twins (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION, 0,
	MegadriveGetZipName, md_gadgetsRomInfo, md_gadgetsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Great Circus Mystery Starring Mickey & Minnie, The (Hack, Spanish)
// https://www.romhacking.net/translations/3413/
static struct BurnRomInfo md_mickeycmsRomDesc[] = {
	{ "the great circus mystery starring mickey & minnie (hack, spanish).bin", 2097152, 0x58cd70c5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mickeycms)
STD_ROM_FN(md_mickeycms)

struct BurnDriver BurnDrvmd_mickeycms = {
	"md_mickeycms", "md_mickeycm", NULL, NULL, "2018",
	"Great Circus Mystery Starring Mickey & Minnie, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_mickeycmsRomInfo, md_mickeycmsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Immortal, The (Hack, Spanish)
// https://www.romhacking.net/translations/5466/
static struct BurnRomInfo md_immortalsRomDesc[] = {
	{ "the immortal (hack, spanish).bin", 1048576, 0x2b411d4a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_immortals)
STD_ROM_FN(md_immortals)

struct BurnDriver BurnDrvmd_immortals = {
	"md_immortals", "md_immortal", NULL, NULL, "2020",
	"Immortal, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_RPG, 0,
	MegadriveGetZipName, md_immortalsRomInfo, md_immortalsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// disney's the jungle book (Hack, Spanish)
// https://www.romhacking.net/translations/3455/
static struct BurnRomInfo md_junglesRomDesc[] = {
	{ "disney's the jungle book (hack, spanish).bin", 2097152, 0x5c4a909c, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_jungles)
STD_ROM_FN(md_jungles)

struct BurnDriver BurnDrvmd_jungles = {
	"md_jungles", "md_jungle", NULL, NULL, "2018",
	"Disney's The Jungle Book (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_junglesRomInfo, md_junglesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lion King, The (Hack, Spanish)
// https://www.romhacking.net/translations/3455/
static struct BurnRomInfo md_lionkingsRomDesc[] = {
	{ "the lion king (hack, spanish).bin", 3145728, 0x5c8cf251, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lionkings)
STD_ROM_FN(md_lionkings)

struct BurnDriver BurnDrvmd_lionkings = {
	"md_lionkings", "md_lionking", NULL, NULL, "2018",
	"Lion King, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_lionkingsRomInfo, md_lionkingsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lost Vikings, The (Hack, Spanish)
// https://www.romhacking.net/translations/5581/
static struct BurnRomInfo md_lostviksRomDesc[] = {
{ "the lost vikings (hack, spanish).bin", 1048576, 0x8b88b1e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lostviks)
STD_ROM_FN(md_lostviks)

struct BurnDriver BurnDrvmd_lostviks = {
	"md_lostviks", "md_lostvik", NULL, NULL, "2020",
	"Lost Vikings, The (Hack, Spanish)\0", NULL, "jackic", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_PUZZLE, 0,
	MegadriveGetZipName, md_lostviksRomInfo, md_lostviksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Lost World, The - Jurassic Park (Hack, Spanish)
// https://www.romhacking.net/translations/3946/
static struct BurnRomInfo md_lostwrldsRomDesc[] = {
	{ "the lost world - jurassic park (hack, spanish).bin", 4194304, 0x629e1312, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_lostwrlds)
STD_ROM_FN(md_lostwrlds)

struct BurnDriver BurnDrvmd_lostwrlds = {
	"md_lostwrlds", "md_lostwrld", NULL, NULL, "2018",
	"Lost World, The - Jurassic Park (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_lostwrldsRomInfo, md_lostwrldsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// New Zealand Story, The (Hack, Spanish)
// https://www.romhacking.net/translations/3902/
static struct BurnRomInfo md_tnzssRomDesc[] = {
	{ "the new zealand story (hack, spanish).bin", 524288, 0x684d738a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tnzss)
STD_ROM_FN(md_tnzss)

struct BurnDriver BurnDrvmd_tnzss = {
	"md_tnzss", "md_tnzs", NULL, NULL, "2019",
	"New Zealand Story, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tnzssRomInfo, md_tnzssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Pirates of Dark Water, The (Hack, Spanish)
// https://www.romhacking.net/translations/3902/
static struct BurnRomInfo md_piratedwsRomDesc[] = {
	{ "the pirates of dark water (hack, spanish).bin", 2097152, 0x30c39d61, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_piratedws)
STD_ROM_FN(md_piratedws)

struct BurnDriver BurnDrvmd_piratedws = {
	"md_piratedws", "md_piratedw", NULL, NULL, "2018",
	"Pirates of Dark Water, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_piratedwsRomInfo, md_piratedwsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Punisher, The (Hack, Spanish)
// https://www.romhacking.net/translations/2888/
static struct BurnRomInfo md_punishersRomDesc[] = {
	{ "the punisher (hack, spanish).bin", 2097152, 0xd1315970, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_punishers)
STD_ROM_FN(md_punishers)

struct BurnDriver BurnDrvmd_punishers = {
	"md_punishers", "md_punisher", NULL, NULL, "2018",
	"Punisher, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_punishersRomInfo, md_punishersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Revenge of Shinobi, The (Hack, Spanish)
// https://www.romhacking.net/translations/3120/
static struct BurnRomInfo md_revshinsRomDesc[] = {
	{ "the revenge of shinobi (hack, spanish).bin", 524288, 0x99f889c1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_revshins)
STD_ROM_FN(md_revshins)

struct BurnDriver BurnDrvmd_revshins = {
	"md_revshins", "md_revshin", NULL, NULL, "2017",
	"Revenge of Shinobi, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_revshinsRomInfo, md_revshinsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Second Samurai, The (Hack, Spanish)
// https://www.romhacking.net/translations/2079/
static struct BurnRomInfo md_secondssRomDesc[] = {
	{ "the second samurai (hack, spanish).bin", 1048576, 0xab66b8fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_secondss)
STD_ROM_FN(md_secondss)

struct BurnDriver BurnDrvmd_secondss = {
	"md_secondss", "md_seconds", NULL, NULL, "2013",
	"Second Samurai, The (Hack, Spanish)\0", NULL, "pepodmc", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_secondssRomInfo, md_secondssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Simpsons, The - Bart Vs The Space Mutants (Hack, Spanish)
// https://www.romhacking.net/translations/3701/
static struct BurnRomInfo md_bartvssmsRomDesc[] = {
	{ "the simpsons - bart vs the space mutants (hack, spanish).bin", 524288, 0x310ef622, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_bartvssms)
STD_ROM_FN(md_bartvssms)

struct BurnDriver BurnDrvmd_bartvssms = {
	"md_bartvssms", "md_bartvssm", NULL, NULL, "2018",
	"Simpsons, The - Bart Vs The Space Mutants (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_bartvssmsRomInfo, md_bartvssmsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Steel Empire, The (Hack, Spanish)
// https://www.romhacking.net/translations/4452/
static struct BurnRomInfo md_steelempsRomDesc[] = {
	{ "the steel empire (hack, spanish).bin", 1048576, 0x5670f1fc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_steelemps)
STD_ROM_FN(md_steelemps)

struct BurnDriver BurnDrvmd_steelemps = {
	"md_steelemps", "md_empsteel", NULL, NULL, "2019",
	"Steel Empire, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_steelempsRomInfo, md_steelempsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Terminator, The (Hack, Spanish)
// https://www.romhacking.net/translations/3203/
static struct BurnRomInfo md_termintrsRomDesc[] = {
	{ "the terminator (hack, spanish).bin", 1048576, 0x3b460367, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_termintrs)
STD_ROM_FN(md_termintrs)

struct BurnDriver BurnDrvmd_termintrs = {
	"md_termintrs", "md_termintr", NULL, NULL, "2017",
	"Terminator, The (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_termintrsRomInfo, md_termintrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force II (Hack, Spanish)
// https://www.romhacking.net/translations/3383/
static struct BurnRomInfo md_tf2sRomDesc[] = {
	{ "thunder force ii (Hack. Spanish).bin", 524288, 0x12ee6c63, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf2s)
STD_ROM_FN(md_tf2s)

struct BurnDriver BurnDrvmd_tf2s = {
	"md_tf2s", "md_tf2", NULL, NULL, "2018",
	"Thunder Force II (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT | GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_tf2sRomInfo, md_tf2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Force III (Hack, Spanish)
// https://www.romhacking.net/translations/3383/
static struct BurnRomInfo md_tf3sRomDesc[] = {
	{ "thunder force iii (hack, spanish).bin", 524288, 0x70fcc2db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tf3s)
STD_ROM_FN(md_tf3s)

struct BurnDriver BurnDrvmd_tf3s = {
	"md_tf3s", "md_tf3", NULL, NULL, "2018",
	"Thunder Force III (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_tf3sRomInfo, md_tf3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Fox (Hack, Spanish)
// https://www.romhacking.net/translations/3546/
static struct BurnRomInfo md_tfoxsRomDesc[] = {
	{ "thunder fox (hack, spanish).bin", 1048576, 0xa1b50389, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tfoxs)
STD_ROM_FN(md_tfoxs)

struct BurnDriver BurnDrvmd_tfoxs = {
	"md_tfoxs", "md_tfox", NULL, NULL, "2018",
	"Thunder Fox (Hack, Spanish)\0", NULL, "Max1323", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_tfoxsRomInfo, md_tfoxsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// TinHead (Hack, Spanish)
// https://www.romhacking.net/translations/3629/
static struct BurnRomInfo md_tinheadsRomDesc[] = {
	{ "tinhead (hack, spanish).bin", 1048576, 0x7619b6cb, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tinheads)
STD_ROM_FN(md_tinheads)

struct BurnDriver BurnDrvmd_tinheads = {
	"md_tinheads", "md_tinhead", NULL, NULL, "2018",
	"TinHead (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tinheadsRomInfo, md_tinheadsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures - Acme All-Stars (Hack, Spanish v1.1)
// https://www.romhacking.net/translations/4752/
static struct BurnRomInfo md_ttacmesRomDesc[] = {
	{ "tiny toon adventures - acme all-stars (hack, spanish).bin", 1048576, 0x07b7f6d6, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttacmes)
STD_ROM_FN(md_ttacmes)

struct BurnDriver BurnDrvmd_ttacmes = {
	"md_ttacmes", "md_ttacme", NULL, NULL, "2019",
	"Tiny Toon Adventures - Acme All-Stars (Hack, Spanish v1.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_ttacmesRomInfo, md_ttacmesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Tiny Toon Adventures - Buster's Hidden Treasure (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/3586/
static struct BurnRomInfo md_ttoonbhtsRomDesc[] = {
	{ "Tiny Toon Adventures - Buster's Hidden Treasure T-Spa v2.0 (2023)(Wave).bin", 524288, 0xaad6ee15, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ttoonbhts)
STD_ROM_FN(md_ttoonbhts)

struct BurnDriver BurnDrvmd_ttoonbhts = {
	"md_ttoonbhts", "md_ttoonbht", NULL, NULL, "2023",
	"Tiny Toon Adventures - Buster's Hidden Treasure (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ttoonbhtsRomInfo, md_ttoonbhtsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Todd's Adventures in Slime World (Hack, Spanish)
// https://www.romhacking.net/translations/4881/
static struct BurnRomInfo md_slimewsRomDesc[] = {
	{ "todd's adventures in slime world (hack, spanish).bin", 524288, 0x661326ae, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_slimews)
STD_ROM_FN(md_slimews)

struct BurnDriver BurnDrvmd_slimews = {
	"md_slimews", "md_slimew", NULL, NULL, "2019",
	"Todd's Adventures in Slime World (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_slimewsRomInfo, md_slimewsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl (Hack, Spanish)
// https://www.romhacking.net/translations/4751/
static struct BurnRomInfo md_toejamsRomDesc[] = {
	{ "toe jam & earl (hack, spanish).bin", 1048576, 0xa11a0710, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejams)
STD_ROM_FN(md_toejams)

struct BurnDriver BurnDrvmd_toejams = {
	"md_toejams", "md_toejam", NULL, NULL, "2019",
	"Toe Jam & Earl (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_ACTION | GBF_ADV, 0,
	MegadriveGetZipName, md_toejamsRomInfo, md_toejamsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toe Jam & Earl in Panic on Funkotron (Hack, Spanish)
// https://www.romhacking.net/translations/3789/
static struct BurnRomInfo md_toejam2sRomDesc[] = {
	{ "toe jam & earl in panic on funkotron (hack, spanish).bin", 2097152, 0xe8e2c74d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toejam2s)
STD_ROM_FN(md_toejam2s)

struct BurnDriver BurnDrvmd_toejam2s = {
	"md_toejam2s", "md_toejam2", NULL, NULL, "2018",
	"Toe Jam & Earl in Panic on Funkotron (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toejam2sRomInfo, md_toejam2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toki - Going Ape Spit ~ JuJu Densetsu (Hack, Spanish v1.2)
// https://www.romhacking.net/translations/3139/
static struct BurnRomInfo md_tokisRomDesc[] = {
	{ "toki - going ape spit ~ juJu densetsu (hack, spanish).bin", 524288, 0xef5bf668, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tokis)
STD_ROM_FN(md_tokis)

struct BurnDriver BurnDrvmd_tokis = {
	"md_tokis", "md_toki", NULL, NULL, "2017",
	"Toki - Going Ape Spit ~ JuJu Densetsu (Hack, Spanish v1.2)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_tokisRomInfo, md_tokisRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toxic Crusaders (Hack, Spanish)
// https://www.romhacking.net/translations/4018/
static struct BurnRomInfo md_toxiccsRomDesc[] = {
	{ "toxic crusaders (hack, spanish).bin", 524288, 0xc2541e0a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toxiccs)
STD_ROM_FN(md_toxiccs)

struct BurnDriver BurnDrvmd_toxiccs = {
	"md_toxiccs", "md_toxicc", NULL, NULL, "2018",
	"Toxic Crusaders (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_toxiccsRomInfo, md_toxiccsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Toy Story (Hack, Spanish)
// https://www.romhacking.net/translations/3588/
static struct BurnRomInfo md_toystorysRomDesc[] = {
	{ "toy story (hack, spanish).bin", 4194304, 0x82cf5f0e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toystorys)
STD_ROM_FN(md_toystorys)

struct BurnDriver BurnDrvmd_toystorys = {
	"md_toystorys", "md_toystory", NULL, NULL, "2018",
	"Toy Story (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_toystorysRomInfo, md_toystorysRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Trouble Shooter (Hack, Spanish)
// https://www.romhacking.net/translations/3092/
static struct BurnRomInfo md_troubshtsRomDesc[] = {
	{ "trouble shooter (hack, spanish).bin", 524288, 0x6549645a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_troubshts)
STD_ROM_FN(md_troubshts)

struct BurnDriver BurnDrvmd_troubshts = {
	"md_troubshts", "md_troubsht", NULL, NULL, "2018",
	"Trouble Shooter (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_troubshtsRomInfo, md_troubshtsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// True Lies (Hack, Spanish)
// https://www.romhacking.net/translations/3689/
static struct BurnRomInfo md_trueliessRomDesc[] = {
	{ "true lies (hack, spanish).bin", 2097152, 0x97821532, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_trueliess)
STD_ROM_FN(md_trueliess)

struct BurnDriver BurnDrvmd_trueliess = {
	"md_trueliess", "md_truelies", NULL, NULL, "2018",
	"True Lies (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_trueliessRomInfo, md_trueliessRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Truxton (Hack, Spanish)
// https://www.romhacking.net/translations/4467/
static struct BurnRomInfo md_truxtonsRomDesc[] = {
	{ "truxton (hack, spanish).bin", 524288, 0x0c92ea14, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_truxtons)
STD_ROM_FN(md_truxtons)

struct BurnDriver BurnDrvmd_truxtons = {
	"md_truxtons", "md_truxton", NULL, NULL, "2019",
	"Truxton (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_truxtonsRomInfo, md_truxtonsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turbo OutRun (Hack, Spanish)
// https://www.romhacking.net/translations/4124/
static struct BurnRomInfo md_toutrunsRomDesc[] = {
	{ "turbo outrun (hack, spanish).bin", 524288, 0x5ee9ce5b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_toutruns)
STD_ROM_FN(md_toutruns)

struct BurnDriver BurnDrvmd_toutruns = {
	"md_toutruns", "md_toutrun", NULL, NULL, "2018",
	"Turbo OutRun (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_toutrunsRomInfo, md_toutrunsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Turrican (Hack, Spanish)
// https://www.romhacking.net/translations/4162/
static struct BurnRomInfo md_turricansRomDesc[] = {
	{ "turrican (hack, spanish).bin", 524288, 0x29991d29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_turricans)
STD_ROM_FN(md_turricans)

struct BurnDriver BurnDrvmd_turricans = {
	"md_turricans", "md_turrican", NULL, NULL, "2019",
	"Turrican (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_turricansRomInfo, md_turricansRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twin Cobra (Hack, Spanish)
// https://www.romhacking.net/translations/3090/
static struct BurnRomInfo md_twincobrsRomDesc[] = {
	{ "twin cobra (hack, spanish).bin", 655360, 0x8102ceea, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twincobrs)
STD_ROM_FN(md_twincobrs)

struct BurnDriver BurnDrvmd_twincobrs = {
	"md_twincobrs", "md_twincobr", NULL, NULL, "2017",
	"Twin Cobra (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_twincobrsRomInfo, md_twincobrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twin Hawk (Hack, Spanish)
// https://www.romhacking.net/translations/4468/
static struct BurnRomInfo md_twinhawksRomDesc[] = {
	{ "twin hawk (hack, spanish).bin", 524288, 0x42115f8e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twinhawks)
STD_ROM_FN(md_twinhawks)

struct BurnDriver BurnDrvmd_twinhawks = {
	"md_twinhawks", "md_twinhawk", NULL, NULL, "2019",
	"Twin Hawk (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_twinhawksRomInfo, md_twinhawksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Twinkle Tale (Hack, Spanish)
// https://www.romhacking.net/translations/3630/
static struct BurnRomInfo md_twinkletsRomDesc[] = {
	{ "twinkle tale (hack, spanish).bin", 1048576, 0xcacdb98e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twinklets)
STD_ROM_FN(md_twinklets)

struct BurnDriver BurnDrvmd_twinklets = {
	"md_twinklets", "md_twinklet", NULL, NULL, "2018",
	"Twinkle Tale (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN, 0,
	MegadriveGetZipName, md_twinkletsRomInfo, md_twinkletsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Two Crude Dudes (Hack, Spanish)
// https://www.romhacking.net/translations/3861/
static struct BurnRomInfo md_twocrudesRomDesc[] = {
	{ "two crude dudes (hack, spanish).bin", 1048576, 0x4d359802, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_twocrudes)
STD_ROM_FN(md_twocrudes)

struct BurnDriver BurnDrvmd_twocrudes = {
	"md_twocrudes", "md_twocrude", NULL, NULL, "2018",
	"Two Crude Dudes (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_twocrudesRomInfo, md_twocrudesRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Ultimate Qix (Hack, Spanish)
// https://www.romhacking.net/translations/4385/
static struct BurnRomInfo md_ultqixsRomDesc[] = {
	{ "ultimate qix (hack, spanish).bin", 262144, 0x94f99786, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ultqixs)
STD_ROM_FN(md_ultqixs)

struct BurnDriver BurnDrvmd_ultqixs = {
	"md_ultqixs", "md_ultqix", NULL, NULL, "2019",
	"Ultimate Qix (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE | GBF_ACTION, 0,
	MegadriveGetZipName, md_ultqixsRomInfo, md_ultqixsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Universal Soldier (Hack, Spanish)
// https://www.romhacking.net/translations/4163/
static struct BurnRomInfo md_univsoldsRomDesc[] = {
	{ "universal soldier (hack, spanish).bin", 1048576, 0xafbc56d4, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_univsolds)
STD_ROM_FN(md_univsolds)

struct BurnDriver BurnDrvmd_univsolds = {
	"md_univsolds", "md_univsold", NULL, NULL, "2019",
	"Universal Soldier (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_univsoldsRomInfo, md_univsoldsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Valis (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/2844/
static struct BurnRomInfo md_valissRomDesc[] = {
	{ "Valis T-Spa v2.0 (2021)(Wave).bin", 1048576, 0xda867603, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_valiss)
STD_ROM_FN(md_valiss)

struct BurnDriver BurnDrvmd_valiss = {
	"md_valiss", "md_valis", NULL, NULL, "2021",
	"Valis (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_valissRomInfo, md_valissRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Valis III (Hack, Spanish v1.1)
// https://www.romhacking.net/translations/2845/
static struct BurnRomInfo md_valis3sRomDesc[] = {
	{ "valis III (hack, spanish).bin", 1048576, 0xefab343b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_valis3s)
STD_ROM_FN(md_valis3s)

struct BurnDriver BurnDrvmd_valis3s = {
	"md_valis3s", "md_valis3", NULL, NULL, "2017",
	"Valis III (Hack, Spanish v1.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_valis3sRomInfo, md_valis3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vapor Trail (Hack, Spanish)
// https://www.romhacking.net/translations/5200/
static struct BurnRomInfo md_vaportrsRomDesc[] = {
	{ "vapor trail (hack, spanish).bin", 1048576, 0x8cb8c8fd, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vaportrs)
STD_ROM_FN(md_vaportrs)

struct BurnDriver BurnDrvmd_vaportrs = {
	"md_vaportrs", "md_vaportr", NULL, NULL, "2019",
	"Vapor Trail (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_vaportrsRomInfo, md_vaportrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vectorman 2 (Hack, Spanish)
// https://www.romhacking.net/translations/5075/
static struct BurnRomInfo md_vecman2sRomDesc[] = {
	{ "vectorman 2 (hack, spanish).bin", 3145728, 0x998989b2, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vecman2s)
STD_ROM_FN(md_vecman2s)

struct BurnDriver BurnDrvmd_vecman2s = {
	"md_vecman2s", "md_vecman2", NULL, NULL, "2019",
	"Vectorman 2 (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_vecman2sRomInfo, md_vecman2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Venom & Spider-Man - Separation Anxiety (Hack, Spanish)
// https://www.romhacking.net/translations/4383/
static struct BurnRomInfo md_venomsRomDesc[] = {
	{ "venom & spider-man - separation anxiety (hack, spanish).bin", 3145728, 0xbbc1ff1f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_venoms)
STD_ROM_FN(md_venoms)

struct BurnDriver BurnDrvmd_venoms = {
	"md_venoms", "md_venom", NULL, NULL, "2019",
	"Venom & Spider-Man - Separation Anxiety (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_venomsRomInfo, md_venomsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Virtua Fighter 2 - Genesis (Hack, Spanish)
// https://www.romhacking.net/translations/5610/
static struct BurnRomInfo md_vf2sRomDesc[] = {
	{ "virtua fighter 2 - genesis (hack, spanish).bin", 4194304, 0x78ab7230, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vf2s)
STD_ROM_FN(md_vf2s)

struct BurnDriver BurnDrvmd_vf2s = {
	"md_vf2s", "md_vf2", NULL, NULL, "2020",
	"Virtua Fighter 2 - Genesis (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_vf2sRomInfo, md_vf2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Vixen 357 (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/4241/
static struct BurnRomInfo md_vixen357sRomDesc[] = {
	{ "vixen 357 (hack, spanish).bin", 1310720, 0xb33b1568, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_vixen357s)
STD_ROM_FN(md_vixen357s)

struct BurnDriver BurnDrvmd_vixen357s = {
	"md_vixen357s", "md_vixen357", NULL, NULL, "2020",
	"Vixen 357 (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_PCB_SEGA_SRAM, GBF_STRATEGY | GBF_RPG, 0,
	MegadriveGetZipName, md_vixen357sRomInfo, md_vixen357sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wardner (Hack, Spanish)
// https://www.romhacking.net/translations/4644/
static struct BurnRomInfo md_wardnersRomDesc[] = {
	{ "wardner (hack, spanish).bin", 524288, 0x87b219a0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wardners)
STD_ROM_FN(md_wardners)

struct BurnDriver BurnDrvmd_wardners = {
	"md_wardners", "md_wardner", NULL, NULL, "2018",
	"Wardner (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wardnersRomInfo, md_wardnersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warlock (Hack, Spanish)
// https://www.romhacking.net/translations/4644/
static struct BurnRomInfo md_warlocksRomDesc[] = {
	{ "warlock (hack, spanish).bin", 2097152, 0xb899bb1b, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warlocks)
STD_ROM_FN(md_warlocks)

struct BurnDriver BurnDrvmd_warlocks = {
	"md_warlocks", "md_warlock", NULL, NULL, "2019",
	"Warlock (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_warlocksRomInfo, md_warlocksRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Warsong (Hack, Spanish)
// https://www.romhacking.net/translations/3143/
static struct BurnRomInfo md_warsongsRomDesc[] = {
	{ "warsong (hack, spanish).bin", 524288, 0x4d9d3607, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_warsongs)
STD_ROM_FN(md_warsongs)

struct BurnDriver BurnDrvmd_warsongs = {
	"md_warsongs", "md_warsong", NULL, NULL, "2017",
	"Warsong (Hack, Spanish)\0", NULL, "Luceid", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_warsongsRomInfo, md_warsongsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Whip Rush (Hack, Spanish)
// https://www.romhacking.net/translations/5565/
static struct BurnRomInfo md_whiprushsRomDesc[] = {
	{ "whip rush (hack, spanish).bin", 524288, 0xa00dead1, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whiprushs)
STD_ROM_FN(md_whiprushs)

struct BurnDriver BurnDrvmd_whiprushs = {
	"md_whiprushs", "md_whiprush", NULL, NULL, "2020",
	"Whip Rush (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_whiprushsRomInfo, md_whiprushsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wimbledon Championship Tennis (Hack, Spanish)
// https://www.romhacking.net/translations/5502/
static struct BurnRomInfo md_wimbledsRomDesc[] = {
	{ "wimbledon championship tennis (hack, spanish).bin", 1048576, 0xacaf26be, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wimbleds)
STD_ROM_FN(md_wimbleds)

struct BurnDriver BurnDrvmd_wimbleds = {
	"md_wimbleds", "md_wimbled", NULL, NULL, "2019",
	"Wimbledon Championship Tennis (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER_PORT2, GBF_SPORTSMISC, 0,
	MegadriveGetZipName, md_wimbledsRomInfo, md_wimbledsRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wiz'n'Liz - The Frantic Wabbit Wescue (Hack, Spanish)
// https://www.romhacking.net/translations/5502/
static struct BurnRomInfo md_wiznlizsRomDesc[] = {
	{ "wiz'n'liz - the frantic wabbit wescue (hack, spanish).bin", 1048576, 0xd33f76a8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wiznlizs)
STD_ROM_FN(md_wiznlizs)

struct BurnDriver BurnDrvmd_wiznlizs = {
	"md_wiznlizs", "md_wiznliz", NULL, NULL, "2020",
	"Wiz'n'Liz - The Frantic Wabbit Wescue (Hack, Spanish)\0", NULL, "m0sca", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_wiznlizsRomInfo, md_wiznlizsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wolfchild (Hack,Spanish)
// https://www.romhacking.net/translations/3920/
static struct BurnRomInfo md_wolfchldsRomDesc[] = {
	{ "wolfchild (hack, spanish).bin", 1048576, 0x335e960d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wolfchlds)
STD_ROM_FN(md_wolfchlds)

struct BurnDriver BurnDrvmd_wolfchlds = {
	"md_wolfchlds", "md_wolfchld", NULL, NULL, "2018",
	"Wolfchild (Hack,Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_RUNGUN, 0,
	MegadriveGetZipName, md_wolfchldsRomInfo, md_wolfchldsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Wonder Boy III - Monster Lair (Hack, Spanish v2.1)
// https://www.romhacking.net/translations/2909/
static struct BurnRomInfo md_wboy3sRomDesc[] = {
	{ "Wonder Boy III - Monster Lair T-Spa v2.1 (2022)(Wave).bin", 524288, 0x59f3d821, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wboy3s)
STD_ROM_FN(md_wboy3s)

struct BurnDriver BurnDrvmd_wboy3s = {
	"md_wboy3s", "md_wboy3", NULL, NULL, "2022",
	"Wonder Boy III - Monster Lair (Hack, Spanish v2.1)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_wboy3sRomInfo, md_wboy3sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Heroes (Hack, Spanish)
// https://www.romhacking.net/translations/5494/
static struct BurnRomInfo md_whsRomDesc[] = {
	{ "world heroes (hack, spanish).bin", 2097152, 0xedbecead, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_whs)
STD_ROM_FN(md_whs)

struct BurnDriver BurnDrvmd_whs = {
	"md_whs", "md_wh", NULL, NULL, "2020",
	"World Heroes (Hack, Spanish)\0", NULL, "Max1323", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_whsRomInfo, md_whsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World of Illusion Starring Mickey Mouse and Donald Duck (Hack, Spanish v2.0)
// https://www.romhacking.net/translations/3666/
static struct BurnRomInfo md_worldillsRomDesc[] = {
	{ "World of Illusion Starring Mickey Mouse & Donald Duck T-Spa v2.0 (2022)(Wave).bin", 1048576, 0xfdb83e1e, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldills)
STD_ROM_FN(md_worldills)

struct BurnDriver BurnDrvmd_worldills = {
	"md_worldills", "md_worldill", NULL, NULL, "2022",
	"World of Illusion Starring Mickey Mouse and Donald Duck (Hack, Spanish v2.0)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_worldillsRomInfo, md_worldillsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// European Club Soccer (Hack, Spanish)
// https://www.romhacking.net/translations/5050/
static struct BurnRomInfo md_euroclubsRomDesc[] = {
	{ "european club soccer (hack, spanish).bin", 524288, 0x67fea477, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_euroclubs)
STD_ROM_FN(md_euroclubs)

struct BurnDriver BurnDrvmd_euroclubs = {
	"md_euroclubs", "md_euroclub", NULL, NULL, "2019",
	"European Club Soccer (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_euroclubsRomInfo, md_euroclubsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// World Trophy Soccer (Hack, Spanish)
// https://www.romhacking.net/translations/5047/
static struct BurnRomInfo md_worldtssRomDesc[] = {
	{ "world trophy soccer (hack, spanish).bin", 524288, 0xcb8df213, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_worldtss)
STD_ROM_FN(md_worldtss)

struct BurnDriver BurnDrvmd_worldtss = {
	"md_worldtss", "md_euroclub", NULL, NULL, "2019",
	"World Trophy Soccer (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SPORTSFOOTBALL, 0,
	MegadriveGetZipName, md_worldtssRomInfo, md_worldtssRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// XDR - X Dazedly Ray (Hack, Spanish)
// https://www.romhacking.net/translations/4536/
static struct BurnRomInfo md_xdrsRomDesc[] = {
	{ "xdr - x dazedly ray (hack, spanish).bin", 524288, 0xd93a9a0d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xdrs)
STD_ROM_FN(md_xdrs)

struct BurnDriver BurnDrvmd_xdrs = {
	"md_xdrs", "md_xdr", NULL, NULL, "2019",
	"XDR - X Dazedly Ray (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_xdrsRomInfo, md_xdrsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Xenon 2 - Megablast (Hack, Spanish)
// https://www.romhacking.net/translations/5522/
static struct BurnRomInfo md_xenon2sRomDesc[] = {
	{ "xenon 2 - megablast (hack, spanish).bin", 524288, 0xd895a752, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xenon2s)
STD_ROM_FN(md_xenon2s)

struct BurnDriver BurnDrvmd_xenon2s = {
	"md_xenon2s", "md_xenon2", NULL, NULL, "2020",
	"Xenon 2 - Megablast (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_xenon2sRomInfo, md_xenon2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// X-Men 2 - Clone Wars (Hack, Spanish)
// https://www.romhacking.net/translations/2885/
static struct BurnRomInfo md_xmen2sRomDesc[] = {
	{ "x-men 2 - clone wars (hack, spanish).bin", 2097152, 0x61914f62, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_xmen2s)
STD_ROM_FN(md_xmen2s)

struct BurnDriver BurnDrvmd_xmen2s = {
	"md_xmen2s", "md_xmen2", NULL, NULL, "2017",
	"X-Men 2 - Clone Wars (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT | GBF_PLATFORM, 0,
	MegadriveGetZipName, md_xmen2sRomInfo, md_xmen2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Yu Yu Hakusho - Sunset Fighters (Hack, Spanish)
// https://www.romhacking.net/translations/5429/
static struct BurnRomInfo md_yuyusfsRomDesc[] = {
	{ "yu yu hakusho - sunset fighters (hack, spanish).bin", 3145728, 0x28d92080, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_yuyusfs)
STD_ROM_FN(md_yuyusfs)

struct BurnDriver BurnDrvmd_yuyusfs = {
	"md_yuyusfs", "md_yuyusf", NULL, NULL, "2020",
	"Yu Yu Hakusho - Sunset Fighters (Hack, Spanish)\0", NULL, "Max1323", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 4, HARDWARE_SEGA_MEGADRIVE | HARDWARE_SEGA_MEGADRIVE_TEAMPLAYER, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_yuyusfsRomInfo, md_yuyusfsRomName, NULL, NULL, NULL, NULL, Megadrive4pInputInfo, Megadrive4pDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero the Kamikaze Squirrel (Hack, Spanish)
// https://www.romhacking.net/translations/3589/
static struct BurnRomInfo md_zerosRomDesc[] = {
	{ "zero the kamikaze squirrel (hack, spanish).bin", 2097152, 0xc1eae5e7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zeros)
STD_ROM_FN(md_zeros)

struct BurnDriver BurnDrvmd_zeros = {
	"md_zeros", "md_zero", NULL, NULL, "2018",
	"Zero the Kamikaze Squirrel (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zerosRomInfo, md_zerosRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zero Wing (Hack, Spanish)
// https://www.romhacking.net/translations/4021/
static struct BurnRomInfo md_zerowingsRomDesc[] = {
	{ "zero wing (hack, spanish).bin", 1048576, 0x75e2703f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zerowings)
STD_ROM_FN(md_zerowings)

struct BurnDriver BurnDrvmd_zerowings = {
	"md_zerowings", "md_zerowing", NULL, NULL, "2018",
	"Zero Wing (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_HORSHOOT, 0,
	MegadriveGetZipName, md_zerowingsRomInfo, md_zerowingsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Zool (Hack, Spanish)
// https://www.romhacking.net/translations/3834/
static struct BurnRomInfo md_zoolsRomDesc[] = {
	{ "zool (hack, spanish).bin", 1048576, 0xb26abdbc, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_zools)
STD_ROM_FN(md_zools)

struct BurnDriver BurnDrvmd_zools = {
	"md_zools", "md_zool", NULL, NULL, "2018",
	"Zool (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_zoolsRomInfo, md_zoolsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};											

// Cannon Fodder (Hack, Spanish)
// https://www.romhacking.net/translations/4557/
static struct BurnRomInfo md_cfoddersRomDesc[] = {
	{ "cannon fodder (hack, spanish).bin", 1572864, 0x14344b29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_cfodders)
STD_ROM_FN(md_cfodders)

struct BurnDriver BurnDrvmd_cfodders = {
	"md_cfodders", "md_cfodder", NULL, NULL, "2019",
	"Cannon Fodder (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RUNGUN | GBF_STRATEGY, 0,
	MegadriveGetZipName, md_cfoddersRomInfo, md_cfoddersRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Flash Point (Hack, Spanish)
// https://www.romhacking.net/translations/4557/
static struct BurnRomInfo md_flashpsRomDesc[] = {
	{ "flash point (hack, spanish) ( prototype).bin", 131072, 0xcedef845, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_flashps)
STD_ROM_FN(md_flashps)

struct BurnDriver BurnDrvmd_flashps = {
	"md_flashps", "md_flashp", NULL, NULL, "2019",
	"Flash Point (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_PUZZLE, 0,
	MegadriveGetZipName, md_flashpsRomInfo, md_flashpsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Fun Car Rally (Prototype) (Hack, Spanish)
// https://www.romhacking.net/translations/4450/
static struct BurnRomInfo md_funcarsRomDesc[] = {
	{ "fun car rally (hack, spanish) (prototype).bin", 1048576, 0xd53f67c7, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_funcars)
STD_ROM_FN(md_funcars)

struct BurnDriver BurnDrvmd_funcars = {
	"md_funcars", "md_funcar", NULL, NULL, "2019",
	"Fun Car Rally (Prototype) (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_PROTOTYPE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_funcarsRomInfo, md_funcarsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Mega SWIV (Hack, Spanish)
// https://www.romhacking.net/translations/4133/
static struct BurnRomInfo md_megaswivsRomDesc[] = {
	{ "mega swiv (hack, spanish).bin", 1048576, 0x70f2d768, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_megaswivs)
STD_ROM_FN(md_megaswivs)

struct BurnDriver BurnDrvmd_megaswivs = {
	"md_megaswivs", "md_megaswiv", NULL, NULL, "2019",
	"Mega SWIV (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VERSHOOT, 0,
	MegadriveGetZipName, md_megaswivsRomInfo, md_megaswivsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Prince of Persia 2 - The Shadow and the Flame (Hack, Spanish)
// https://www.romhacking.net/translations/3341/
static struct BurnRomInfo md_ppersia2sRomDesc[] = {
	{ "prince of persia 2 - the shadow and the flame (hack, spanish) ( prototype).bin", 2097152, 0x59da6398, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_ppersia2s)
STD_ROM_FN(md_ppersia2s)

struct BurnDriver BurnDrvmd_ppersia2s= {
	"md_ppersia2s", "md_ppersia2", NULL, NULL, "2017",
	"Prince of Persia 2 - The Shadow and the Flame (Hack, Spanish)\0", NULL, "Wave", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_ppersia2sRomInfo, md_ppersia2sRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Legend Of Wukong (Hack, Spanish) (SRAM Patched)
// https://www.romhacking.net/translations/3330/
static struct BurnRomInfo md_wukongsRomDesc[] = {
	{ "legend of wukong (hack, spanish) (sram patched).bin", 2097152, 0x53473b5d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wukongs)
STD_ROM_FN(md_wukongs)

struct BurnDriver BurnDrvmd_wukongs = {
	"md_wukongs", "md_wukong", NULL, NULL, "2017",
	"Legend Of Wukong (Hack, Spanish) (SRAM Patched)\0", NULL, "Crimental", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_wukongsRomInfo, md_wukongsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Legend Of Wukong (English) (SRAM Patched)
static struct BurnRomInfo md_wukongeRomDesc[] = {
	{ "legend of wukong (hack, english) (sram patched).bin", 2097152, 0xca5d5966, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_wukonge)
STD_ROM_FN(md_wukonge)

struct BurnDriver BurnDrvmd_wukonge = {
	"md_wukonge", "md_wukong", NULL, NULL, "2008",
	"Legend Of Wukong (English) (SRAM Patched)\0", NULL, "Super Fighter Team", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_wukongeRomInfo, md_wukongeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Monster World IV - WB 6 (Hack, French)
// http://terminus.romhack.net/index.php?page=jv&projet=wboy + FixChecksum
static struct BurnRomInfo md_mworld4fRomDesc[] = {
	{ "Monster World IV - WB 6 (Hack, French).bin", 2097152, 0x1cd6c514, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_mworld4f)
STD_ROM_FN(md_mworld4f)

struct BurnDriver BurnDrvmd_mworld4f = {
	"md_mworld4f", "md_mworld4", NULL, NULL, "20??",
	"Monster World IV - WB 6 (Hack, French)\0", NULL, "Terminus", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM | GBF_ADV, 0,
	MegadriveGetZipName, md_mworld4fRomInfo, md_mworld4fRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse 3 Bloody Edition (USA) (Hack, v1.2)
// http://www.romhacking.net/hacks/6242/
static struct BurnRomInfo md_splatth3beRomDesc[] = {
	{ "Splatterhouse 3 Bloody Edition v1.2 (U) (2021)(CRT_rex).bin", 2097152, 0x5ce040e5, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth3be)
STD_ROM_FN(md_splatth3be)

struct BurnDriver BurnDrvmd_splatth3be = {
	"md_splatth3be", "md_splatth3", NULL, NULL, "2021",
	"Splatterhouse 3 Bloody Edition (USA) (Hack, v1.2)\0", NULL, "CRT_rex", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth3beRomInfo, md_splatth3beRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Splatterhouse Part 3 Bloody Edition (Japan, Korea) (Hack, v1.2)
// http://www.romhacking.net/hacks/6242/
static struct BurnRomInfo md_splatth3jbeRomDesc[] = {
	{ "Splatterhouse Part 3 Bloody Edition v1.2 (J) (2021)(CRT_rex).bin", 2097152, 0x8e2a70e8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_splatth3jbe)
STD_ROM_FN(md_splatth3jbe)

struct BurnDriver BurnDrvmd_splatth3jbe = {
	"md_splatth3jbe", "md_splatth3", NULL, NULL, "2021",
	"Splatterhouse Part 3 Bloody Edition (Japan, Korea) (Hack, v1.2)\0", NULL, "CRT_rex", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_splatth3jbeRomInfo, md_splatth3jbeRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Thunder Pro Wrestling Story (Hack, English)
static struct BurnRomInfo md_tpwresenRomDesc[] = {
	{ "Thunder Pro Wrestling Story T-Eng (Japan).md", 524288, 0xf1bf25f8, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tpwresen)
STD_ROM_FN(md_tpwresen)

struct BurnDriver BurnDrvmd_tpwresen = {
	"md_tpwresen", "md_tpwres", NULL, NULL, "2021",
	"Thunder Pro Wrestling Story (Hack, English)\0", NULL, "MrRichard999", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_VSFIGHT, 0,
	MegadriveGetZipName, md_tpwresenRomInfo, md_tpwresenRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Streets of Rage 2 - Fight'n Rage (Hack)
static struct BurnRomInfo md_sor2fnrRomDesc[] = {
	{ "Streets of Rage 2 - Fight'n Rage Hack (2021)(savok).md", 3623338, 0xade1923d, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_sor2fnr)
STD_ROM_FN(md_sor2fnr)

struct BurnDriver BurnDrvmd_sor2fnr = {
	"md_sor2fnr", "md_sor2", NULL, NULL, "2021",
	"Streets of Rage 2 - Fight'n Rage (Hack)\0", NULL, "Savok", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_SCRFIGHT, 0,
	MegadriveGetZipName, md_sor2fnrRomInfo, md_sor2fnrRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash Improvement (Hack)
static struct BurnRomInfo md_roadrashimpRomDesc[] = {
	{ "Road Rash Improvement (2022)(Ti).bin", 1048576, 0x39ad4dc0, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_roadrashimp)
STD_ROM_FN(md_roadrashimp)

struct BurnDriver BurnDrvmd_roadrashimp = {
	"md_roadrashimp", "md_roadrash", NULL, NULL, "2022",
	"Road Rash Improvement (Hack)\0", NULL, "Ti", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_roadrashimpRomInfo, md_roadrashimpRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road Rash II Improvement (Hack, v1.2)
static struct BurnRomInfo md_rrash2impRomDesc[] = {
	{ "Road Rash II Improvement v1.2 (2022)(Ti).bin", 1179648, 0x71a5bf77, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash2imp)
STD_ROM_FN(md_rrash2imp)

struct BurnDriver BurnDrvmd_rrash2imp = {
	"md_rrash2imp", "md_rrash2", NULL, NULL, "2022",
	"Road Rash II Improvement (Hack, v1.2)\0", NULL, "Ti", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash2impRomInfo, md_rrash2impRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Road 3 Rash Improvement (Hack, v1.04)
// https://www.romhacking.net/hacks/7078/
static struct BurnRomInfo md_rrash3impRomDesc[] = {
	{ "Road Rash 3 Improvement v1.04 (2023)(Ti).bin", 2097152, 0x76a6f6db, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_rrash3imp)
STD_ROM_FN(md_rrash3imp)

struct BurnDriver BurnDrvmd_rrash3imp = {
	"md_rrash3imp", "md_rrash3", NULL, NULL, "2023",
	"Road 3 Rash Improvement (Hack, v1.04)\0", NULL, "Ti", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 2, HARDWARE_SEGA_MEGADRIVE, GBF_RACING, 0,
	MegadriveGetZipName, md_rrash3impRomInfo, md_rrash3impRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

/*
// Masking Test
static struct BurnRomInfo md_spritemaskRomDesc[] = {
	{ "SpriteMaskingTestRom.bin", 262144, 0x6986aa96, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_spritemask)
STD_ROM_FN(md_spritemask)

struct BurnDriverD BurnDrvmd_spritemask = {
	"md_spritemask", NULL, NULL, NULL, "2019",
	"MD Sprite Mask Test (HB)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_spritemaskRomInfo, md_spritemaskRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

static struct BurnRomInfo md_insnspeedRomDesc[] = {
	{ "test_inst_speed.bin", 131072, 0x093f3d29, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_insnspeed)
STD_ROM_FN(md_insnspeed)

struct BurnDriverD BurnDrvmd_insnspeed = {
	"md_testinstspeed", NULL, NULL, NULL, "2019",
	"MD inst speed Test (HB)\0", NULL, "<unknown>", "Sega Megadrive",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HOMEBREW, 1, HARDWARE_SEGA_MEGADRIVE, GBF_PLATFORM, 0,
	MegadriveGetZipName, md_insnspeedRomInfo, md_insnspeedRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

*/

// Di Guo Wang Chao - Ya Se Chuan Shuo (Chinese)
// Audio fix by Ken_Tse - 20230112
static struct BurnRomInfo md_dgwcyscsRomDesc[] = {
	{ "Di Guo Wang Chao - Ya Se Chuan Shuo (Chinese)", 0x200000, 0x87ac7f92, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_dgwcyscs)
STD_ROM_FN(md_dgwcyscs)


struct BurnDriver BurnDrvmd_dgwcyscs = {
	"md_dgwcyscs", NULL, NULL, NULL, "2023",
	"Di Guo Wang Chao - Ya Se Chuan Shuo (Chinese)\0", NULL, "Chuan Pu Ke Ji / Ken_Tse", "Sega Megadrive",
	L"\u5c01\u795e\u82f1\u5091\u8f49 (\u4e2d\u6587)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_dgwcyscsRomInfo, md_dgwcyscsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Feng Shen Ying Jie Zhuan (Chinese)
// Audio fix by Ken_Tse - 20230107
static struct BurnRomInfo md_fsyjzRomDesc[] = {
	{ "Feng Shen Ying Jie Zhuan (Chinese)", 0x200000, 0x88664e2f, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_fsyjz)
STD_ROM_FN(md_fsyjz)


struct BurnDriver BurnDrvmd_fsyjz = {
	"md_fsyjz", NULL, NULL, NULL, "2023",
	"Feng Shen Ying Jie Zhuan (Chinese)\0", NULL, "Chuan Pu Ke Ji / Ken_Tse", "Sega Megadrive",
	L"\u5c01\u795e\u82f1\u5091\u50b3 (\u4e2d\u6587)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_SIM, 0,
	MegadriveGetZipName, md_fsyjzRomInfo, md_fsyjzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Shui Hu Zhuan (Chinese)
// Audio fix by Ken_Tse - 20230107
static struct BurnRomInfo md_shzRomDesc[] = {
	{ "Shui Hu Zhuan (Chinese)", 0x200000, 0x84c2f352, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_shz)
STD_ROM_FN(md_shz)


struct BurnDriver BurnDrvmd_shz = {
	"md_shz", NULL, NULL, NULL, "2023",
	"Shui Hu Zhuan (Chinese)\0", NULL, "Chuan Pu Ke Ji / Ken_Tse", "Sega Megadrive",
	L"\u6c34\u6ef8\u50b3 (\u4e2d\u6587)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_shzRomInfo, md_shzRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

// Barver Battle Saga (Chinese)
// Audio fix by Ken_Tse - 20230107
static struct BurnRomInfo md_tkzsRomDesc[] = {
	{ "Tai Kong Zhan Shi (Chinese)", 0x200000, 0x5c70016a, BRF_PRG | SEGA_MD_ROM_LOAD16_WORD_SWAP | SEGA_MD_ROM_OFFS_000000  },
};

STD_ROM_PICK(md_tkzs)
STD_ROM_FN(md_tkzs)


struct BurnDriver BurnDrvmd_tkzs = {
	"md_barverbs", "md_barver", NULL, NULL, "2023",
	"Barver Battle Saga (China) (Hack)\0", "Audio fix hack", "Chuanpu / Ken_Tse", "Sega Megadrive",
	L"\u592a\u7a7a\u6230\u58eb - \u9b54\u6cd5\u6230\u58eb (\u4e2d\u6587)\0", NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE | BDF_HACK, 1, HARDWARE_SEGA_MEGADRIVE, GBF_RPG, 0,
	MegadriveGetZipName, md_tkzsRomInfo, md_tkzsRomName, NULL, NULL, NULL, NULL, MegadriveInputInfo, MegadriveDIPInfo,
	MegadriveInit, MegadriveExit, MegadriveFrame, MegadriveDraw, MegadriveScan,
	&bMegadriveRecalcPalette, 0x100, 320, 224, 4, 3
};

