Handle m_RomName for disks that don't have any disk ID (use CRC instead) and also forge disk header differently for plugins.
This commit is contained in:
parent
15ceec5d38
commit
29a97e6c8b
|
@ -49,18 +49,16 @@ bool CN64Disk::LoadDiskImage(const char * FileLoc)
|
||||||
}
|
}
|
||||||
|
|
||||||
char RomName[5];
|
char RomName[5];
|
||||||
//Get the disk ID from the disk image
|
|
||||||
RomName[0] = (char)*(m_DiskImage + 0x43673);
|
|
||||||
RomName[1] = (char)*(m_DiskImage + 0x43672);
|
|
||||||
RomName[2] = (char)*(m_DiskImage + 0x43671);
|
|
||||||
RomName[3] = (char)*(m_DiskImage + 0x43670);
|
|
||||||
RomName[4] = '\0';
|
|
||||||
|
|
||||||
m_RomName = RomName;
|
|
||||||
m_FileName = FileLoc;
|
m_FileName = FileLoc;
|
||||||
if (*(uint32_t *)(&m_DiskImage[0x43670]) != 0)
|
if (*(uint32_t *)(&m_DiskImage[0x43670]) != 0)
|
||||||
{
|
{
|
||||||
m_DiskIdent.Format("%08X-%08X-C:%X", *(uint32_t *)(&m_DiskImage[0]), *(uint32_t *)(&m_DiskImage[0x43670]), m_DiskImage[0x43670]);
|
m_DiskIdent.Format("%08X-%08X-C:%X", *(uint32_t *)(&m_DiskImage[0]), *(uint32_t *)(&m_DiskImage[0x43670]), m_DiskImage[0x43670]);
|
||||||
|
//Get the disk ID from the disk image
|
||||||
|
RomName[0] = (char)*(m_DiskImage + 0x43673);
|
||||||
|
RomName[1] = (char)*(m_DiskImage + 0x43672);
|
||||||
|
RomName[2] = (char)*(m_DiskImage + 0x43671);
|
||||||
|
RomName[3] = (char)*(m_DiskImage + 0x43670);
|
||||||
|
RomName[4] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -70,7 +68,20 @@ bool CN64Disk::LoadDiskImage(const char * FileLoc)
|
||||||
crc += *(uint32_t *)(m_DiskImage + i);
|
crc += *(uint32_t *)(m_DiskImage + i);
|
||||||
}
|
}
|
||||||
m_DiskIdent.Format("%08X-%08X-C:%X", *(uint32_t *)(&m_DiskImage[0]), crc, m_DiskImage[0x43670]);
|
m_DiskIdent.Format("%08X-%08X-C:%X", *(uint32_t *)(&m_DiskImage[0]), crc, m_DiskImage[0x43670]);
|
||||||
|
|
||||||
|
//Get the disk ID from the disk image
|
||||||
|
RomName[0] = m_DiskIdent[12];
|
||||||
|
RomName[1] = m_DiskIdent[11];
|
||||||
|
RomName[2] = m_DiskIdent[10];
|
||||||
|
RomName[3] = m_DiskIdent[9];
|
||||||
|
RomName[4] = '\0';
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 8; i++)
|
||||||
|
{
|
||||||
|
m_DiskHeader[0x20 + (i ^ 3)] = (uint8_t)m_DiskIdent[9 + i];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
m_RomName = RomName;
|
||||||
m_Country = (Country)m_DiskImage[0x43670];
|
m_Country = (Country)m_DiskImage[0x43670];
|
||||||
|
|
||||||
if (g_Disk == this)
|
if (g_Disk == this)
|
||||||
|
|
Loading…
Reference in New Issue