mirror of
https://github.com/holub/mame
synced 2025-04-18 22:49:58 +03:00
(MESS) sms/gamegear: fixed a few regressions in the new code (mostly due to missing bits in the softlist),
improved handling of proto dumps with weird sizes, added cart internal header logging. nw.
This commit is contained in:
parent
659fcb5c34
commit
238d365b0c
@ -1705,6 +1705,7 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
<year>1991</year>
|
||||
<publisher>Codemasters</publisher>
|
||||
<part name="cart" interface="gamegear_cart">
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="262144">
|
||||
<rom name="cj elephant fugitive.bin" size="262144" crc="72981057" sha1="a60815aa0c6ec2bc5ad7f817668b74a42bb64026" offset="000000" />
|
||||
</dataarea>
|
||||
@ -1819,12 +1820,13 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="cosmic" supported="partial">
|
||||
<software name="cosmic">
|
||||
<description>Cosmic Spacehead (Euro)</description>
|
||||
<year>1993</year>
|
||||
<publisher>Codemasters</publisher>
|
||||
<info name="serial" value="T-120028-50"/>
|
||||
<part name="cart" interface="gamegear_cart">
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="262144">
|
||||
<rom name="cosmic spacehead (europe).bin" size="262144" crc="6caa625b" sha1="c24f48ca3fb7df3b50b4353095c7a070653f3539" offset="000000" />
|
||||
</dataarea>
|
||||
@ -2207,6 +2209,8 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
<feature name="u1?" value="DROPZONE GGDZ E7F1" />
|
||||
<feature name="u2?" value="TI16R4-25" />
|
||||
<feature name="u3?" value="GD4011BD" />
|
||||
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="131072">
|
||||
<rom name="dropzone ggdz e7f1.u1" size="131072" crc="152f0dcc" sha1="b78bc3fe6bfbc7d6f5e85d59d79be19bf7372bcc" offset="000000" />
|
||||
</dataarea>
|
||||
@ -4400,6 +4404,7 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
<year>1993</year>
|
||||
<publisher>Codemasters</publisher>
|
||||
<part name="cart" interface="gamegear_cart">
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="262144">
|
||||
<rom name="micro machines (europe).bin" size="262144" crc="f7c524f6" sha1="7b2d39b68622e18eac6c27fd961133b1d002342b" offset="000000" />
|
||||
</dataarea>
|
||||
@ -4412,6 +4417,7 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
<publisher>Codemasters</publisher>
|
||||
<info name="serial" value="T-120108-50"/>
|
||||
<part name="cart" interface="gamegear_cart">
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="524288">
|
||||
<rom name="micro machines 2 - turbo tournament (europe).bin" size="524288" crc="dbe8895c" sha1="53ad6546462638ab246b4fdd7ca4b8966dde0d96" offset="000000" />
|
||||
</dataarea>
|
||||
@ -5798,6 +5804,7 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
<year>1994</year>
|
||||
<publisher>Codemasters</publisher>
|
||||
<part name="cart" interface="gamegear_cart">
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="262144">
|
||||
<rom name="pete sampras tennis (europe).bin" size="262144" crc="c1756bee" sha1="ab9b4c833207824efb14b712b4ec82721c8436bc" offset="000000" />
|
||||
</dataarea>
|
||||
@ -6522,9 +6529,11 @@ A few games have been listed as rumored, but they might very well be fake (pleas
|
||||
|
||||
<software name="sslucifr">
|
||||
<description>S.S. Lucifer - Man Overboard! (Euro)</description>
|
||||
<year>199?</year>
|
||||
<publisher><unknown></publisher>
|
||||
<year>1994</year>
|
||||
<publisher>Codemasters</publisher>
|
||||
<info name="serial" value="T-120088"/>
|
||||
<part name="cart" interface="gamegear_cart">
|
||||
<feature name="slot" value="codemasters" />
|
||||
<dataarea name="rom" size="262144">
|
||||
<rom name="s.s. lucifer - man overboard! (europe).bin" size="262144" crc="d9a7f170" sha1="b167fda9f0e7a6a47027f782a08149e8d4f46e0c" offset="000000" />
|
||||
</dataarea>
|
||||
|
@ -1558,6 +1558,7 @@
|
||||
<year>1991</year>
|
||||
<publisher>Zemina</publisher>
|
||||
<part name="cart" interface="sms_cart">
|
||||
<feature name="slot" value="zemina" />
|
||||
<dataarea name="rom" size="131072">
|
||||
<rom name="cyborg z (kr).bin" size="131072" crc="77efe84a" sha1="c2e661e9b68a78e5a5fae5ae297b5d964d82491e" offset="000000" />
|
||||
</dataarea>
|
||||
@ -4209,6 +4210,7 @@
|
||||
<publisher>Zemina</publisher>
|
||||
<info name="alt_title" value="그라디우 2 ~ Gradius 2 (Box?)"/>
|
||||
<part name="cart" interface="sms_cart">
|
||||
<feature name="slot" value="zemina" />
|
||||
<dataarea name="rom" size="131072">
|
||||
<rom name="nemesis 2 (kr).bin" size="131072" crc="0a77fa5e" sha1="4b0c286448bde49f9247a4f9a5add38d48021fd7" offset="000000" />
|
||||
</dataarea>
|
||||
@ -6147,6 +6149,7 @@
|
||||
<publisher>Zemina</publisher>
|
||||
<info name="alt_title" value="수퍼보이 I" />
|
||||
<part name="cart" interface="sms_cart">
|
||||
<feature name="slot" value="korean" />
|
||||
<dataarea name="rom" size="49152">
|
||||
<rom name="super boy 1.bin" size="49152" crc="bf5a994a" sha1="f0e6a20c72f0fb0feb1681217eeec3b69950e897" offset="000000"/>
|
||||
</dataarea>
|
||||
@ -6170,6 +6173,7 @@
|
||||
<year>1991</year>
|
||||
<publisher>Zemina</publisher>
|
||||
<part name="cart" interface="sms_cart">
|
||||
<feature name="slot" value="zemina" />
|
||||
<dataarea name="rom" size="131072">
|
||||
<rom name="super boy 3.bin" size="131072" crc="9195c34c" sha1="5d65a308bb9ec8c4b4ce334b18d699b1f53227ef" offset="000000"/>
|
||||
</dataarea>
|
||||
|
@ -195,43 +195,43 @@ void sega8_janggun_device::device_start()
|
||||
void sega8_rom_device::late_bank_setup()
|
||||
{
|
||||
m_rom_bank_base[0] = 0;
|
||||
m_rom_bank_base[1] = 1 & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[2] = 2 & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[1] = 1 % m_rom_page_count;
|
||||
m_rom_bank_base[2] = 2 % m_rom_page_count;
|
||||
}
|
||||
|
||||
void sega8_eeprom_device::late_bank_setup()
|
||||
{
|
||||
m_rom_bank_base[0] = 0;
|
||||
m_rom_bank_base[1] = 1 & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[2] = 2 & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[1] = 1 % m_rom_page_count;
|
||||
m_rom_bank_base[2] = 2 % m_rom_page_count;
|
||||
}
|
||||
|
||||
void sega8_codemasters_device::late_bank_setup()
|
||||
{
|
||||
m_rom_bank_base[0] = 0;
|
||||
m_rom_bank_base[1] = 1 & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[1] = 1 % m_rom_page_count;
|
||||
m_rom_bank_base[2] = 0;
|
||||
}
|
||||
|
||||
void sega8_zemina_device::late_bank_setup()
|
||||
{
|
||||
m_rom_bank_base[0] = 0;
|
||||
m_rom_bank_base[1] = 1 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[2] = 2 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[3] = 3 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[4] = 4 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[5] = 5 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[1] = 1 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[2] = 2 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[3] = 3 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[4] = 4 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[5] = 5 % (m_rom_page_count * 2);
|
||||
}
|
||||
|
||||
void sega8_nemesis_device::late_bank_setup()
|
||||
{
|
||||
// Nemesis starts with last 8kb bank in page 0 (m_rom_page_count is for 16kb pages)
|
||||
m_rom_bank_base[0] = m_rom_page_count * 2 - 1;
|
||||
m_rom_bank_base[1] = 1 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[2] = 2 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[3] = 3 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[4] = 4 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[5] = 5 & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[1] = 1 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[2] = 2 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[3] = 3 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[4] = 4 % (m_rom_page_count * 2);
|
||||
m_rom_bank_base[5] = 5 % (m_rom_page_count * 2);
|
||||
}
|
||||
|
||||
void sega8_janggun_device::late_bank_setup()
|
||||
@ -303,7 +303,7 @@ WRITE8_MEMBER(sega8_rom_device::write_mapper)
|
||||
case 1: // Select 16k ROM bank for 0000-3fff
|
||||
case 2: // Select 16k ROM bank for 4000-7fff
|
||||
case 3: // Select 16k ROM bank for 8000-bfff
|
||||
m_rom_bank_base[offset - 1] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[offset - 1] = data % m_rom_page_count;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -362,7 +362,7 @@ WRITE8_MEMBER(sega8_eeprom_device::write_mapper)
|
||||
case 1: // Select 16k ROM bank for 0000-3fff
|
||||
case 2: // Select 16k ROM bank for 4000-7fff
|
||||
case 3: // Select 16k ROM bank for 8000-bfff
|
||||
m_rom_bank_base[offset - 1] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[offset - 1] = data % m_rom_page_count;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -458,7 +458,7 @@ WRITE8_MEMBER(sega8_codemasters_device::write_cart)
|
||||
switch (offset)
|
||||
{
|
||||
case 0x0000:
|
||||
m_rom_bank_base[0] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[0] = data % m_rom_page_count;
|
||||
break;
|
||||
case 0x4000:
|
||||
if (data & 0x80)
|
||||
@ -469,11 +469,11 @@ WRITE8_MEMBER(sega8_codemasters_device::write_cart)
|
||||
else
|
||||
{
|
||||
m_ram_enabled = 0;
|
||||
m_rom_bank_base[1] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[1] = data % m_rom_page_count;
|
||||
}
|
||||
break;
|
||||
case 0x8000:
|
||||
m_rom_bank_base[2] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[2] = data % m_rom_page_count;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -494,16 +494,16 @@ WRITE8_MEMBER(sega8_4pak_device::write_cart)
|
||||
{
|
||||
case 0x3ffe:
|
||||
m_reg[0] = data;
|
||||
m_rom_bank_base[0] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[2] = ((m_reg[0] & 0x30) + m_reg[2]) & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[0] = data % m_rom_page_count;
|
||||
m_rom_bank_base[2] = ((m_reg[0] & 0x30) + m_reg[2]) % m_rom_page_count;
|
||||
break;
|
||||
case 0x7fff:
|
||||
m_reg[1] = data;
|
||||
m_rom_bank_base[1] = data & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[1] = data % m_rom_page_count;
|
||||
break;
|
||||
case 0xbfff:
|
||||
m_reg[2] = data;
|
||||
m_rom_bank_base[2] = ((m_reg[0] & 0x30) + m_reg[2]) & (m_rom_page_count - 1);
|
||||
m_rom_bank_base[2] = ((m_reg[0] & 0x30) + m_reg[2]) % m_rom_page_count;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -537,16 +537,16 @@ WRITE8_MEMBER(sega8_zemina_device::write_cart)
|
||||
switch (offset & 3)
|
||||
{
|
||||
case 0:
|
||||
m_rom_bank_base[4] = data & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[4] = data % (m_rom_page_count * 2);
|
||||
break;
|
||||
case 1:
|
||||
m_rom_bank_base[5] = data & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[5] = data % (m_rom_page_count * 2);
|
||||
break;
|
||||
case 2:
|
||||
m_rom_bank_base[2] = data & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[2] = data % (m_rom_page_count * 2);
|
||||
break;
|
||||
case 3:
|
||||
m_rom_bank_base[3] = data & (m_rom_page_count * 2 - 1);
|
||||
m_rom_bank_base[3] = data % (m_rom_page_count * 2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -611,8 +611,8 @@ WRITE8_MEMBER(sega8_janggun_device::write_mapper)
|
||||
case 1: // Select 16k ROM bank for 0000-3fff
|
||||
case 2: // Select 16k ROM bank for 4000-7fff
|
||||
case 3: // Select 16k ROM bank for 8000-bfff
|
||||
m_rom_bank_base[(offset - 1) * 2] = (data & (m_rom_page_count - 1)) * 2;
|
||||
m_rom_bank_base[(offset - 1) * 2 + 1] = (data & (m_rom_page_count - 1)) * 2 + 1;
|
||||
m_rom_bank_base[(offset - 1) * 2] = (data % m_rom_page_count) * 2;
|
||||
m_rom_bank_base[(offset - 1) * 2 + 1] = (data % m_rom_page_count) * 2 + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,24 @@
|
||||
/***********************************************************************************************************
|
||||
|
||||
|
||||
Sega 8-bit cart emulation
|
||||
(through slot devices)
|
||||
|
||||
Master System (Mark III) and Game Gear memory map can access 3 x 16K banks of ROM in
|
||||
0x0000-0xbfff memory range. These banks can however point to different ROM or RAM area
|
||||
of the cart (or to BIOS banks, but these are handled directly in SMS emulation).
|
||||
|
||||
Hence, carts can interface with the main system through the following handlers
|
||||
* read_cart : to read from ROM/RAM in memory range [0000-bfff]
|
||||
* write_cart : to write to ROM/RAM in memory range [0000-bfff]
|
||||
* write_mapper : to write to range [fffc-ffff] (called by the handler accessing those
|
||||
same addresses in sms.c)
|
||||
|
||||
|
||||
TODO:
|
||||
- investigate SG-1000 carts so to reduce duplicated code and to add full .sg support to sg1000m3
|
||||
- add support for sms card slot (using the same code, since the access are basically the same as
|
||||
the cart ones)
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
@ -60,6 +77,8 @@ void device_sega8_cart_interface::rom_alloc(running_machine &machine, UINT32 siz
|
||||
m_rom = auto_alloc_array_clear(machine, UINT8, size);
|
||||
m_rom_size = size;
|
||||
m_rom_page_count = size / 0x4000;
|
||||
if (!m_rom_page_count)
|
||||
m_rom_page_count = 1; // we compute rom pages through (XXX % m_rom_page_count)!
|
||||
late_bank_setup();
|
||||
}
|
||||
}
|
||||
@ -255,7 +274,7 @@ bool sega8_cart_slot_device::call_load()
|
||||
offset = 512;
|
||||
len -= 512;
|
||||
}
|
||||
|
||||
|
||||
// make sure that we only get complete (0x4000) rom banks
|
||||
if (len & 0x3fff)
|
||||
len = ((len >> 14) + 1) << 14;
|
||||
@ -290,7 +309,7 @@ bool sega8_cart_slot_device::call_load()
|
||||
{
|
||||
// for now
|
||||
m_cart->ram_alloc(machine(), 0x08000);
|
||||
m_cart->set_has_battery(TRUE);
|
||||
//m_cart->set_has_battery(TRUE);
|
||||
}
|
||||
|
||||
set_lphaser_xoffset(ROM, len);
|
||||
@ -310,7 +329,7 @@ bool sega8_cart_slot_device::call_load()
|
||||
|
||||
//printf("Type: %s\n", sega8_get_slot(type));
|
||||
|
||||
internal_header_logging(ROM + offset, len);
|
||||
internal_header_logging(ROM + offset, len, m_cart->get_ram_size());
|
||||
|
||||
return IMAGE_INIT_PASS;
|
||||
}
|
||||
@ -524,6 +543,137 @@ WRITE8_MEMBER(sega8_cart_slot_device::write_cart)
|
||||
Internal header logging
|
||||
-------------------------------------------------*/
|
||||
|
||||
void sega8_cart_slot_device::internal_header_logging(UINT8 *ROM, UINT32 len)
|
||||
void sega8_cart_slot_device::internal_header_logging(UINT8 *ROM, UINT32 len, UINT32 nvram_len)
|
||||
{
|
||||
static const char *const system_region[] =
|
||||
{
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"Master System Japan",
|
||||
"Master System Export",
|
||||
"Game Gear Japan",
|
||||
"Game Gear Export",
|
||||
"Game Gear International",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
};
|
||||
|
||||
static int csum_length[] =
|
||||
{
|
||||
0x40000,
|
||||
0x80000,
|
||||
0x100000,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0x1ff0,
|
||||
0x3ff0,
|
||||
0x7ff0,
|
||||
0xcff0,
|
||||
0x10000,
|
||||
0x20000,
|
||||
};
|
||||
|
||||
char reserved[10];
|
||||
UINT8 version, csum_size, region, serial[3];
|
||||
UINT16 checksum, csum = 0;
|
||||
UINT32 csum_end = 0;
|
||||
|
||||
// LOG FILE DETAILS
|
||||
logerror("FILE DETAILS\n" );
|
||||
logerror("============\n" );
|
||||
logerror("Name: %s\n", basename());
|
||||
logerror("File Size: 0x%" I64FMT "x\n", (software_entry() == NULL) ? length() : get_software_region_length("rom"));
|
||||
logerror("Detected type: %s\n", sega8_get_slot(m_type));
|
||||
logerror("ROM (Allocated) Size: 0x%X\n", len);
|
||||
logerror("RAM: %s\n", nvram_len ? "Yes" : "No");
|
||||
if (nvram_len)
|
||||
logerror("RAM (Allocated) Size: 0x%X - Battery: %s\n", nvram_len, m_cart->get_has_battery() ? "Yes" : "No");
|
||||
logerror("\n" );
|
||||
|
||||
|
||||
// LOG HEADER DETAILS
|
||||
if (len < 0x8000)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
reserved[i] = ROM[0x7ff0 + i];
|
||||
|
||||
checksum = ROM[0x7ffa] | (ROM[0x7ffb] << 8);
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
serial[i] = ROM[0x7ffc + i];
|
||||
serial[2] &= 0x0f;
|
||||
|
||||
version = (ROM[0x7ffe] & 0xf0) >> 4;
|
||||
|
||||
csum_size = ROM[0x7fff] & 0x0f;
|
||||
csum_end = csum_length[csum_size];
|
||||
if (!csum_end || csum_end > len)
|
||||
csum_end = len;
|
||||
|
||||
region = (ROM[0x7fff] & 0xf0) >> 4;
|
||||
|
||||
// compute cart checksum to compare with expected one
|
||||
for (int i = 0; i < csum_end; i++)
|
||||
{
|
||||
if (i < 0x7ff0 || i >= 0x8000)
|
||||
{
|
||||
csum += ROM[i];
|
||||
csum &= 0xffff;
|
||||
}
|
||||
}
|
||||
|
||||
logerror("INTERNAL HEADER\n" );
|
||||
logerror("===============\n" );
|
||||
logerror("Reserved String: %.10s\n", reserved);
|
||||
logerror("Region: %s\n", system_region[region]);
|
||||
logerror("Checksum: (Expected) 0x%x - (Computed) 0x%x\n", checksum, csum);
|
||||
logerror(" [checksum over 0x%X bytes]\n", csum_length[csum_size]);
|
||||
logerror("Serial String: %X\n", serial[0] | (serial[1] << 8) | (serial[2] << 16));
|
||||
logerror("Software Revision: %x\n", version);
|
||||
logerror("\n" );
|
||||
|
||||
|
||||
if (m_type == SEGA8_CODEMASTERS)
|
||||
{
|
||||
UINT8 day, month, year, hour, minute;
|
||||
csum = 0;
|
||||
|
||||
day = ROM[0x7fe1];
|
||||
month = ROM[0x7fe2];
|
||||
year = ROM[0x7fe3];
|
||||
hour = ROM[0x7fe4];
|
||||
minute = ROM[0x7fe5];
|
||||
checksum = ROM[0x7fe6] | (ROM[0x7fe7] << 8);
|
||||
csum_size = ROM[0x7fe0];
|
||||
|
||||
// compute cart checksum to compare with expected one
|
||||
for (int i = 0; i < len; i += 2)
|
||||
{
|
||||
if (i < 0x7ff0 || i >= 0x8000)
|
||||
{
|
||||
csum += (ROM[i] | (ROM[i + 1] << 8));
|
||||
csum &= 0xffff;
|
||||
}
|
||||
}
|
||||
|
||||
logerror("CODEMASTERS HEADER\n" );
|
||||
logerror("==================\n" );
|
||||
logerror("Build date & time: %x/%x/%x %.2x:%.2x\n", day, month, year, hour, minute);
|
||||
logerror("Checksum: (Expected) 0x%x - (Computed) 0x%x\n", checksum, csum);
|
||||
logerror(" [checksum over 0x%X bytes]\n", csum_size * 0x4000);
|
||||
logerror("\n" );
|
||||
}
|
||||
}
|
||||
|
@ -94,7 +94,7 @@ public:
|
||||
int get_type() { return m_type; }
|
||||
int get_cart_type(UINT8 *ROM, UINT32 len);
|
||||
|
||||
void internal_header_logging(UINT8 *ROM, UINT32 len);
|
||||
void internal_header_logging(UINT8 *ROM, UINT32 len, UINT32 nvram_len);
|
||||
int verify_cart(UINT8 *magic, int size);
|
||||
void set_lphaser_xoffset(UINT8 *rom, int size);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user