mirror of
https://github.com/holub/mame
synced 2025-04-28 03:02:52 +03:00
(MESS) machine\megadriv.c - Fixes segfault when trying to load the homebrew megadrive tutorial file "firststeps". [Felipe Sanches]
This commit is contained in:
parent
bf10dd16fa
commit
afd50d578c
@ -403,33 +403,33 @@ int base_md_cart_slot_device::load_list()
|
|||||||
/* code taken directly from GoodGEN by Cowering */
|
/* code taken directly from GoodGEN by Cowering */
|
||||||
static int genesis_is_SMD(unsigned char *buf, unsigned int len)
|
static int genesis_is_SMD(unsigned char *buf, unsigned int len)
|
||||||
{
|
{
|
||||||
if (buf[0x2080] == 'S' && buf[0x80] == 'E' && buf[0x2081] == 'G' && buf[0x81] == 'A')
|
if (len > 0x2081 && buf[0x2080] == 'S' && buf[0x80] == 'E' && buf[0x2081] == 'G' && buf[0x81] == 'A')
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* aq quiz */
|
/* aq quiz */
|
||||||
if (!strncmp("UZ(-01 ", (const char *) &buf[0xf0], 8))
|
if (len > (0xf0 + 8) && !strncmp("UZ(-01 ", (const char *) &buf[0xf0], 8))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Phelios USA redump */
|
/* Phelios USA redump */
|
||||||
/* target earth */
|
/* target earth */
|
||||||
/* klax (namcot) */
|
/* klax (namcot) */
|
||||||
if (buf[0x2080] == ' ' && buf[0x0080] == 'S' && buf[0x2081] == 'E' && buf[0x0081] == 'G')
|
if (len > 0x2081 && buf[0x2080] == ' ' && buf[0x0080] == 'S' && buf[0x2081] == 'E' && buf[0x0081] == 'G')
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* jap baseball 94 */
|
/* jap baseball 94 */
|
||||||
if (!strncmp("OL R-AEAL", (const char *) &buf[0xf0], 9))
|
if (len > (0xf0 + 9) && !strncmp("OL R-AEAL", (const char *) &buf[0xf0], 9))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* devilish Mahjong Tower */
|
/* devilish Mahjong Tower */
|
||||||
if (!strncmp("optrEtranet", (const char *) &buf[0xf3], 11))
|
if (len > (0xf3 + 11) && !strncmp("optrEtranet", (const char *) &buf[0xf3], 11))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* golden axe 2 beta */
|
/* golden axe 2 beta */
|
||||||
if (buf[0x0100] == 0x3c && buf[0x0101] == 0 && buf[0x0102] == 0 && buf[0x0103] == 0x3c)
|
if (len > 0x0103 && buf[0x0100] == 0x3c && buf[0x0101] == 0 && buf[0x0102] == 0 && buf[0x0103] == 0x3c)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* omega race */
|
/* omega race */
|
||||||
if (!strncmp("OEARC ", (const char *) &buf[0x90], 8))
|
if (len > (0x90 + 8) && !strncmp("OEARC ", (const char *) &buf[0x90], 8))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* budokan beta */
|
/* budokan beta */
|
||||||
@ -437,15 +437,15 @@ static int genesis_is_SMD(unsigned char *buf, unsigned int len)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* cdx pro 1.8 bios */
|
/* cdx pro 1.8 bios */
|
||||||
if (!strncmp("so fCXP", (const char *) &buf[0x2c0], 7))
|
if (len > (0x2c0 + 7) && !strncmp("so fCXP", (const char *) &buf[0x2c0], 7))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* ishido (hacked) */
|
/* ishido (hacked) */
|
||||||
if (!strncmp("sio-Wyo ", (const char *) &buf[0x0090], 8))
|
if (len > (0x90 + 8) && !strncmp("sio-Wyo ", (const char *) &buf[0x0090], 8))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* onslaught */
|
/* onslaught */
|
||||||
if (!strncmp("SS CAL ", (const char *) &buf[0x0088], 8))
|
if (len > (0x88 + 8) && !strncmp("SS CAL ", (const char *) &buf[0x0088], 8))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* tram terror pirate */
|
/* tram terror pirate */
|
||||||
@ -453,7 +453,7 @@ static int genesis_is_SMD(unsigned char *buf, unsigned int len)
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* breath of fire 3 chinese */
|
/* breath of fire 3 chinese */
|
||||||
if (buf[0x0007] == 0x1c && buf[0x0008] == 0x0a && buf[0x0009] == 0xb8 && buf[0x000a] == 0x0a)
|
if (len > 0xa && buf[0x0007] == 0x1c && buf[0x0008] == 0x0a && buf[0x0009] == 0xb8 && buf[0x000a] == 0x0a)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/*tetris pirate */
|
/*tetris pirate */
|
||||||
|
Loading…
Reference in New Issue
Block a user