Fixed force code. Thrown in some casts (thanks MKendora). Possibly fixed up Hi/Lo a bit.
This commit is contained in:
@@ -70,12 +70,12 @@ bool EHiHeader(unsigned char *ROM, int BankLoc)
|
|||||||
|
|
||||||
void swapBlocks(char *blocks)
|
void swapBlocks(char *blocks)
|
||||||
{
|
{
|
||||||
int i,j,k;
|
unsigned int i,j,k;
|
||||||
for (i = 0; i < NumofBanks; i++)
|
for (i = 0; i < NumofBanks; i++)
|
||||||
{
|
{
|
||||||
for (j = 0; j < NumofBanks; j++)
|
for (j = 0; j < NumofBanks; j++)
|
||||||
{
|
{
|
||||||
if (blocks[j] == i)
|
if (blocks[j] == (char)i)
|
||||||
{
|
{
|
||||||
char b;
|
char b;
|
||||||
unsigned int temp,
|
unsigned int temp,
|
||||||
@@ -168,7 +168,7 @@ void CheckIntlEHi(unsigned char *ROM)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//ROM loading functions, which some strangly enough were in guiload.inc
|
//ROM loading functions, which some strangly enough were in guiload.inc
|
||||||
bool AllASCII(char *b, int size)
|
bool AllASCII(unsigned char *b, int size)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < size; i++)
|
for (i = 0; i < size; i++)
|
||||||
@@ -181,12 +181,11 @@ bool AllASCII(char *b, int size)
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int InfoScore(char *Buffer)
|
int InfoScore(unsigned char *Buffer)
|
||||||
{
|
{
|
||||||
int score = 0;
|
int score = 0;
|
||||||
if (validChecksum(Buffer, 0)) { score += 3; }
|
if (validChecksum(Buffer, 0)) { score += 4; }
|
||||||
if (Buffer[26] == 0x33) { score += 2; }
|
if (Buffer[26] == 0x33) { score += 2; }
|
||||||
if ((Buffer[21] & 0xf) < 4) { score += 2; }
|
|
||||||
if (!(Buffer[61] & 0x80)) { score -= 4; }
|
if (!(Buffer[61] & 0x80)) { score -= 4; }
|
||||||
if ((1 << (Buffer[23] - 7)) > 48) { score -= 1; }
|
if ((1 << (Buffer[23] - 7)) > 48) { score -= 1; }
|
||||||
if (Buffer[25] < 14) { score += 1; }
|
if (Buffer[25] < 14) { score += 1; }
|
||||||
@@ -217,6 +216,7 @@ void BankCheck()
|
|||||||
|
|
||||||
if (!infoloc)
|
if (!infoloc)
|
||||||
{
|
{
|
||||||
|
static bool CommandLineForce2 = false;
|
||||||
int loscore, hiscore;
|
int loscore, hiscore;
|
||||||
|
|
||||||
//Deinterleave if neccesary
|
//Deinterleave if neccesary
|
||||||
@@ -228,6 +228,7 @@ void BankCheck()
|
|||||||
switch(ROM[Lo + 21])
|
switch(ROM[Lo + 21])
|
||||||
{
|
{
|
||||||
case 32: case 35: case 48: case 50:
|
case 32: case 35: case 48: case 50:
|
||||||
|
loscore += 2;
|
||||||
case 128: case 156: case 176: case 188: case 252: //BS
|
case 128: case 156: case 176: case 188: case 252: //BS
|
||||||
loscore += 1;
|
loscore += 1;
|
||||||
break;
|
break;
|
||||||
@@ -235,16 +236,30 @@ void BankCheck()
|
|||||||
switch(ROM[Hi + 21])
|
switch(ROM[Hi + 21])
|
||||||
{
|
{
|
||||||
case 33: case 49: case 53: case 58:
|
case 33: case 49: case 53: case 58:
|
||||||
|
hiscore += 2;
|
||||||
case 128: case 156: case 176: case 188: case 252: //BS
|
case 128: case 156: case 176: case 188: case 252: //BS
|
||||||
hiscore += 1;
|
hiscore += 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ForceHiLoROM)
|
/*
|
||||||
|
Force code.
|
||||||
|
ForceHiLoROM is from the GUI.
|
||||||
|
forceromtype is from Command line, we have a static var
|
||||||
|
to prevent forcing a secong game loaded from the GUI when
|
||||||
|
the first was loaded from the command line with forcing.
|
||||||
|
*/
|
||||||
|
if (ForceHiLoROM == 1 ||
|
||||||
|
(forceromtype == 1 && !CommandLineForce2))
|
||||||
{
|
{
|
||||||
//asm volatile("int $3");
|
CommandLineForce2 = true;
|
||||||
if (forceromtype == 1) { loscore += 50; }
|
loscore += 50;
|
||||||
else if (forceromtype == 2) { hiscore += 50; }
|
}
|
||||||
|
else if (ForceHiLoROM == 2 ||
|
||||||
|
(forceromtype == 2 && !CommandLineForce2))
|
||||||
|
{
|
||||||
|
CommandLineForce2 = true;
|
||||||
|
hiscore += 50;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hiscore > loscore)
|
if (hiscore > loscore)
|
||||||
@@ -312,11 +327,11 @@ void CalcChecksum()
|
|||||||
void MirrorROM()
|
void MirrorROM()
|
||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
int size, StartMirror = 0, ROMSize = curromspace;
|
unsigned int size, StartMirror = 0, ROMSize = curromspace;
|
||||||
//This will mirror up non power of two ROMs to powers of two
|
//This will mirror up non power of two ROMs to powers of two
|
||||||
for (size = 1; size <= 64; size +=size)
|
for (size = 1; size <= 64; size +=size)
|
||||||
{
|
{
|
||||||
int fullSize = size * Mbit_bytes,
|
unsigned int fullSize = size * Mbit_bytes,
|
||||||
halfSize = fullSize >> 1;
|
halfSize = fullSize >> 1;
|
||||||
if ((ROMSize > halfSize) && (ROMSize < fullSize))
|
if ((ROMSize > halfSize) && (ROMSize < fullSize))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user