Clear Opposites for Alien Syndrome, fixes sprite corruption & craziness

This commit is contained in:
dinkc64 2014-11-26 21:46:01 +00:00
parent 02ab1b3c05
commit 12a1990a37
4 changed files with 12 additions and 0 deletions

View File

@ -2550,6 +2550,7 @@ static INT32 AliensynjoInit()
memcpy(System16Sprites + 0x50000, pTemp + 0x30000, 0x10000);
memcpy(System16Sprites + 0x60000, pTemp + 0x50000, 0x10000);
memcpy(System16Sprites + 0x70000, pTemp + 0x70000, 0x10000);
AlienSyndrome = true;
} else {
nRet = 1;
}
@ -2576,6 +2577,7 @@ static INT32 Aliensyn5Init()
memcpy(System16Sprites + 0x50000, pTemp + 0x30000, 0x10000);
memcpy(System16Sprites + 0x60000, pTemp + 0x50000, 0x10000);
memcpy(System16Sprites + 0x70000, pTemp + 0x70000, 0x10000);
AlienSyndrome = true;
} else {
nRet = 1;
}

View File

@ -6455,6 +6455,7 @@ static INT32 AliensynInit()
SekMapHandler(1, 0xc00006, 0xc00007, SM_WRITE);
SekSetWriteByteHandler(1, AliensynWriteByte);
SekClose();
AlienSyndrome = true;
}
return nRet;
@ -6469,6 +6470,7 @@ static INT32 Aliensyn3Init()
SekMapHandler(1, 0xc00006, 0xc00007, SM_WRITE);
SekSetWriteByteHandler(1, AliensynWriteByte);
SekClose();
AlienSyndrome = true;
}
return nRet;

View File

@ -102,6 +102,7 @@ extern INT32 System16SoundLatch;
extern bool System16BTileAlt;
extern bool Shangon;
extern bool Hangon;
extern bool AlienSyndrome;
extern bool System16Z80Enable;
extern INT32 System16YM2413IRQInterval;

View File

@ -127,6 +127,7 @@ INT32 System16SoundLatch;
bool System16BTileAlt = false;
bool Shangon = false;
bool Hangon = false;
bool AlienSyndrome = false;
bool System16Z80Enable = true;
INT32 nSystem16CyclesDone[4];
@ -2544,6 +2545,8 @@ INT32 System16Exit()
System16BTileAlt = false;
Shangon = false;
Hangon = false;
AlienSyndrome = false;
bSystem16BootlegRender = false;
System16YM2413IRQInterval = 0;
@ -2714,6 +2717,10 @@ INT32 System16BFrame()
if (System16Reset) System16DoReset();
System16MakeInputs();
if (AlienSyndrome) {
System16ClearOpposites(&System16Input[1]); // P1
System16ClearOpposites(&System16Input[2]); // P2
}
nCyclesTotal[0] = (INT32)((INT64)System16ClockSpeed * nBurnCPUSpeedAdjust / (0x0100 * 60));
nCyclesTotal[1] = 5000000 / 60;