mirror of
https://github.com/holub/mame
synced 2025-06-21 19:56:53 +03:00
reverse logic of IMAGE_VERIFY (nw)
This commit is contained in:
parent
6f5e223853
commit
22c7a00d57
@ -378,7 +378,7 @@ bool a78_cart_slot_device::call_load()
|
|||||||
char head[128];
|
char head[128];
|
||||||
fread(head, 128);
|
fread(head, 128);
|
||||||
|
|
||||||
if (verify_header((char *)head) == IMAGE_VERIFY_FAIL)
|
if (!verify_header((char *)head))
|
||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
|
|
||||||
len = (head[49] << 24) | (head[50] << 16) | (head[51] << 8) | head[52];
|
len = (head[49] << 24) | (head[50] << 16) | (head[51] << 8) | head[52];
|
||||||
@ -506,11 +506,11 @@ bool a78_cart_slot_device::verify_header(char *header)
|
|||||||
if (strncmp(magic, header + 1, 9))
|
if (strncmp(magic, header + 1, 9))
|
||||||
{
|
{
|
||||||
logerror("Not a valid A7800 image\n");
|
logerror("Not a valid A7800 image\n");
|
||||||
return IMAGE_VERIFY_FAIL;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
logerror("returning ID_OK\n");
|
logerror("returning ID_OK\n");
|
||||||
return IMAGE_VERIFY_PASS;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -215,13 +215,13 @@ static const char *sega8_get_slot(int type)
|
|||||||
|
|
||||||
bool sega8_cart_slot_device::verify_cart( UINT8 *magic, int size )
|
bool sega8_cart_slot_device::verify_cart( UINT8 *magic, int size )
|
||||||
{
|
{
|
||||||
int retval = IMAGE_VERIFY_FAIL;
|
int retval = false;
|
||||||
|
|
||||||
// Verify the file is a valid image - check $7ff0 for "TMR SEGA"
|
// Verify the file is a valid image - check $7ff0 for "TMR SEGA"
|
||||||
if (size >= 0x8000)
|
if (size >= 0x8000)
|
||||||
{
|
{
|
||||||
if (!strncmp((char*)&magic[0x7ff0], "TMR SEGA", 8))
|
if (!strncmp((char*)&magic[0x7ff0], "TMR SEGA", 8))
|
||||||
retval = IMAGE_VERIFY_PASS;
|
retval = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
@ -368,7 +368,7 @@ bool sega8_cart_slot_device::call_load()
|
|||||||
memcpy(ROM, get_software_region("rom"), get_software_region_length("rom"));
|
memcpy(ROM, get_software_region("rom"), get_software_region_length("rom"));
|
||||||
|
|
||||||
/* check the image */
|
/* check the image */
|
||||||
if (verify_cart(ROM, len) == IMAGE_VERIFY_FAIL)
|
if (!verify_cart(ROM, len))
|
||||||
logerror("Warning loading image: verify_cart failed\n");
|
logerror("Warning loading image: verify_cart failed\n");
|
||||||
|
|
||||||
if (software_entry() != nullptr)
|
if (software_entry() != nullptr)
|
||||||
|
@ -112,8 +112,6 @@ typedef void (*device_image_partialhash_func)(util::hash_collection &, const uns
|
|||||||
|
|
||||||
#define IMAGE_INIT_PASS false
|
#define IMAGE_INIT_PASS false
|
||||||
#define IMAGE_INIT_FAIL true
|
#define IMAGE_INIT_FAIL true
|
||||||
#define IMAGE_VERIFY_PASS false
|
|
||||||
#define IMAGE_VERIFY_FAIL true
|
|
||||||
|
|
||||||
#define DEVICE_IMAGE_LOAD_MEMBER_NAME(_name) device_image_load_##_name
|
#define DEVICE_IMAGE_LOAD_MEMBER_NAME(_name) device_image_load_##_name
|
||||||
#define DEVICE_IMAGE_LOAD_NAME(_class,_name) _class::DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)
|
#define DEVICE_IMAGE_LOAD_NAME(_class,_name) _class::DEVICE_IMAGE_LOAD_MEMBER_NAME(_name)
|
||||||
|
@ -354,13 +354,13 @@ void coleco_state::machine_reset()
|
|||||||
|
|
||||||
//static bool coleco_cart_verify(const UINT8 *cartdata, size_t size)
|
//static bool coleco_cart_verify(const UINT8 *cartdata, size_t size)
|
||||||
//{
|
//{
|
||||||
// int retval = IMAGE_VERIFY_FAIL;
|
// int retval = false;
|
||||||
//
|
//
|
||||||
// /* Verify the file is in Colecovision format */
|
// /* Verify the file is in Colecovision format */
|
||||||
// if ((cartdata[0] == 0xAA) && (cartdata[1] == 0x55)) /* Production Cartridge */
|
// if ((cartdata[0] == 0xAA) && (cartdata[1] == 0x55)) /* Production Cartridge */
|
||||||
// retval = IMAGE_VERIFY_PASS;
|
// retval = true;
|
||||||
// if ((cartdata[0] == 0x55) && (cartdata[1] == 0xAA)) /* "Test" Cartridge. Some games use this method to skip ColecoVision title screen and delay */
|
// if ((cartdata[0] == 0x55) && (cartdata[1] == 0xAA)) /* "Test" Cartridge. Some games use this method to skip ColecoVision title screen and delay */
|
||||||
// retval = IMAGE_VERIFY_PASS;
|
// retval = true;
|
||||||
//
|
//
|
||||||
// return retval;
|
// return retval;
|
||||||
//}
|
//}
|
||||||
|
@ -162,7 +162,7 @@ QUICKLOAD_LOAD_MEMBER( lynx_state, lynx )
|
|||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
|
|
||||||
/* Check the image */
|
/* Check the image */
|
||||||
if (lynx_verify_cart((char*)header, LYNX_QUICKLOAD) == IMAGE_VERIFY_FAIL)
|
if (!lynx_verify_cart((char*)header, LYNX_QUICKLOAD))
|
||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
|
|
||||||
start = header[3] | (header[2]<<8); //! big endian format in file format for little endian cpu
|
start = header[3] | (header[2]<<8); //! big endian format in file format for little endian cpu
|
||||||
|
@ -288,17 +288,17 @@ bool lviv_state::lviv_verify_snapshot (UINT8 * data, UINT32 size)
|
|||||||
if( strncmp( tag, (char*)data, strlen(tag) ) )
|
if( strncmp( tag, (char*)data, strlen(tag) ) )
|
||||||
{
|
{
|
||||||
logerror("Not a Lviv snapshot\n");
|
logerror("Not a Lviv snapshot\n");
|
||||||
return IMAGE_VERIFY_FAIL;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size != LVIV_SNAPSHOT_SIZE)
|
if (size != LVIV_SNAPSHOT_SIZE)
|
||||||
{
|
{
|
||||||
logerror ("Incomplete snapshot file\n");
|
logerror ("Incomplete snapshot file\n");
|
||||||
return IMAGE_VERIFY_FAIL;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
logerror("returning ID_OK\n");
|
logerror("returning ID_OK\n");
|
||||||
return IMAGE_VERIFY_PASS;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
SNAPSHOT_LOAD_MEMBER( lviv_state, lviv )
|
SNAPSHOT_LOAD_MEMBER( lviv_state, lviv )
|
||||||
@ -307,7 +307,7 @@ SNAPSHOT_LOAD_MEMBER( lviv_state, lviv )
|
|||||||
|
|
||||||
image.fread( &lviv_snapshot_data[0], LVIV_SNAPSHOT_SIZE);
|
image.fread( &lviv_snapshot_data[0], LVIV_SNAPSHOT_SIZE);
|
||||||
|
|
||||||
if(lviv_verify_snapshot(&lviv_snapshot_data[0], snapshot_size) == IMAGE_VERIFY_FAIL)
|
if(!lviv_verify_snapshot(&lviv_snapshot_data[0], snapshot_size))
|
||||||
{
|
{
|
||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
}
|
}
|
||||||
|
@ -2037,7 +2037,7 @@ bool lynx_state::lynx_verify_cart (char *header, int kind)
|
|||||||
if (strncmp("BS93", &header[6], 4))
|
if (strncmp("BS93", &header[6], 4))
|
||||||
{
|
{
|
||||||
logerror("This is not a valid Lynx image\n");
|
logerror("This is not a valid Lynx image\n");
|
||||||
return IMAGE_VERIFY_FAIL;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -2051,11 +2051,11 @@ bool lynx_state::lynx_verify_cart (char *header, int kind)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
logerror("This is not a valid Lynx image\n");
|
logerror("This is not a valid Lynx image\n");
|
||||||
return IMAGE_VERIFY_FAIL;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return IMAGE_VERIFY_PASS;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
DEVICE_IMAGE_LOAD_MEMBER( lynx_state, lynx_cart )
|
DEVICE_IMAGE_LOAD_MEMBER( lynx_state, lynx_cart )
|
||||||
@ -2082,7 +2082,7 @@ DEVICE_IMAGE_LOAD_MEMBER( lynx_state, lynx_cart )
|
|||||||
image.fread(header, 0x40);
|
image.fread(header, 0x40);
|
||||||
|
|
||||||
// Check the image
|
// Check the image
|
||||||
if (lynx_verify_cart((char*)header, LYNX_CART) == IMAGE_VERIFY_FAIL)
|
if (!lynx_verify_cart((char*)header, LYNX_CART))
|
||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
|
|
||||||
/* 2008-10 FP: According to Handy source these should be page_size_bank0. Are we using
|
/* 2008-10 FP: According to Handy source these should be page_size_bank0. Are we using
|
||||||
|
@ -527,18 +527,18 @@ bool microtan_state::microtan_verify_snapshot(UINT8 *data, int size)
|
|||||||
if (size == 8263)
|
if (size == 8263)
|
||||||
{
|
{
|
||||||
logerror("microtan_snapshot_id: magic size %d found\n", size);
|
logerror("microtan_snapshot_id: magic size %d found\n", size);
|
||||||
return IMAGE_VERIFY_PASS;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (4 + data[2] + 256 * data[3] + 1 + 16 + 16 + 16 + 1 + 1 + 16 + 16 + 64 + 7 == size)
|
if (4 + data[2] + 256 * data[3] + 1 + 16 + 16 + 16 + 1 + 1 + 16 + 16 + 64 + 7 == size)
|
||||||
{
|
{
|
||||||
logerror("microtan_snapshot_id: header RAM size + structures matches filesize %d\n", size);
|
logerror("microtan_snapshot_id: header RAM size + structures matches filesize %d\n", size);
|
||||||
return IMAGE_VERIFY_PASS;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return IMAGE_VERIFY_FAIL;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int microtan_state::parse_intel_hex(UINT8 *snapshot_buff, char *src)
|
int microtan_state::parse_intel_hex(UINT8 *snapshot_buff, char *src)
|
||||||
@ -827,7 +827,7 @@ SNAPSHOT_LOAD_MEMBER( microtan_state, microtan )
|
|||||||
if (!snapshot_buff)
|
if (!snapshot_buff)
|
||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
|
|
||||||
if (microtan_verify_snapshot(snapshot_buff, snapshot_size)==IMAGE_VERIFY_FAIL)
|
if (!microtan_verify_snapshot(snapshot_buff, snapshot_size))
|
||||||
return IMAGE_INIT_FAIL;
|
return IMAGE_INIT_FAIL;
|
||||||
|
|
||||||
microtan_snapshot_copy(snapshot_buff, snapshot_size);
|
microtan_snapshot_copy(snapshot_buff, snapshot_size);
|
||||||
|
Loading…
Reference in New Issue
Block a user