Fixed checksum and CRC32 on add on ROMs.

This commit is contained in:
n-a-c-h
2004-01-04 20:24:46 +00:00
parent b5dd7e0ae7
commit 3f96861df9
2 changed files with 29 additions and 6 deletions

View File

@@ -61,6 +61,11 @@ unsigned int maxromspace;
unsigned int curromspace;
unsigned int infoloc;
bool SplittedROM;
unsigned int addOnStart;
unsigned int addOnSize;
//Deinterleave functions
bool validChecksum(unsigned char *ROM, int BankLoc)
{
@@ -314,7 +319,13 @@ extern unsigned short Checksumvalue;
void CalcChecksum()
{
unsigned char *ROM = (unsigned char *)romdata;
if (SPC7110Enable)
if (SplittedROM)
{
Checksumvalue = sum(ROM+addOnStart, addOnSize);
Checksumvalue -= sum(&ROM[infoloc+addOnStart - 16], 48);
}
else if (SPC7110Enable)
{
Checksumvalue = sum(ROM, NumofBytes);
if (NumofBanks == 96)
@@ -598,10 +609,6 @@ void loadZipFile()
}
}
bool SplittedROM;
int addOnStart;
int addOnSize;
void SplitSetup(const char *basefile, unsigned int MirrorSystem)
{
unsigned char *ROM = (unsigned char *)romdata;