diff --git a/src/burn/drv/sega/d_sys16a.cpp b/src/burn/drv/sega/d_sys16a.cpp index bbc37be68..d82c9b14a 100644 --- a/src/burn/drv/sega/d_sys16a.cpp +++ b/src/burn/drv/sega/d_sys16a.cpp @@ -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; } diff --git a/src/burn/drv/sega/d_sys16b.cpp b/src/burn/drv/sega/d_sys16b.cpp index 6d11038e2..9327bbb53 100644 --- a/src/burn/drv/sega/d_sys16b.cpp +++ b/src/burn/drv/sega/d_sys16b.cpp @@ -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; diff --git a/src/burn/drv/sega/sys16.h b/src/burn/drv/sega/sys16.h index 06e8de30d..a1666b64d 100644 --- a/src/burn/drv/sega/sys16.h +++ b/src/burn/drv/sega/sys16.h @@ -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; diff --git a/src/burn/drv/sega/sys16_run.cpp b/src/burn/drv/sega/sys16_run.cpp index fe3189bdd..2efc4a707 100644 --- a/src/burn/drv/sega/sys16_run.cpp +++ b/src/burn/drv/sega/sys16_run.cpp @@ -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;