SCI CP
Conflicts: engines/sci/engine/script_patches.cpp
This commit is contained in:
parent
e2fa898021
commit
6611a1c289
2 changed files with 64 additions and 0 deletions
|
@ -257,6 +257,10 @@ reg_t kDisposeClone(EngineState *s, int argc, reg_t *argv) {
|
|||
// Returns script dispatch address index in the supplied script
|
||||
reg_t kScriptID(EngineState *s, int argc, reg_t *argv) {
|
||||
int script = argv[0].toUint16();
|
||||
|
||||
if (Sci::g_sci->getGameId() == GID_KQ4 && script == 701)
|
||||
script--;
|
||||
|
||||
uint16 index = (argc > 1) ? argv[1].toUint16() : 0;
|
||||
|
||||
if (argv[0].getSegment())
|
||||
|
|
|
@ -5255,6 +5255,24 @@ static const uint16 laurabow1PatchLeftStairsLockupFix[] = {
|
|||
PATCH_END
|
||||
};
|
||||
|
||||
// Copy Protection
|
||||
static const uint16 laurabow1SignatureCp[] = {
|
||||
SIG_MAGICDWORD,
|
||||
0x30, 0x48, 0x00, 0x8f, 0x01, 0x8d, 0x00, 0x35, 0x04, 0x06,
|
||||
0x93, 0x05, 0x1e, 0x30, 0x36, 0x00, 0x8f, 0x02, 0x8d, 0x00,
|
||||
SIG_END
|
||||
};
|
||||
|
||||
static const uint16 laurabow1PatchCp[] = {
|
||||
0x39, 0x00, 0xab, 0x00, 0x39, 0x00, 0xab, 0x01, 0x39, 0x00,
|
||||
0xab, 0x35, 0x39, 0x27, 0xaf, 0x01, 0x39, 0x27, 0xaf, 0x02,
|
||||
PATCH_GETORIGINALBYTE(0), PATCH_GETORIGINALBYTE(1), PATCH_GETORIGINALBYTE(2),
|
||||
PATCH_GETORIGINALBYTE(3), PATCH_GETORIGINALBYTE(4), PATCH_GETORIGINALBYTE(5),
|
||||
PATCH_GETORIGINALBYTE(6), PATCH_GETORIGINALBYTE(7), PATCH_GETORIGINALBYTE(8),
|
||||
PATCH_GETORIGINALBYTE(9), PATCH_GETORIGINALBYTE(10),
|
||||
PATCH_END
|
||||
};
|
||||
|
||||
// script, description, signature patch
|
||||
static const SciScriptPatcherEntry laurabow1Signatures[] = {
|
||||
{ true, 4, "easter egg view fix", 1, laurabow1SignatureEasterEggViewFix, laurabow1PatchEasterEggViewFix },
|
||||
|
@ -5267,6 +5285,7 @@ static const SciScriptPatcherEntry laurabow1Signatures[] = {
|
|||
{ true, 58, "chapel candles persistence", 1, laurabow1SignatureChapelCandlesPersistence, laurabow1PatchChapelCandlesPersistence },
|
||||
{ true, 236, "tell Lilly about Gertie blocking fix 1/2", 1, laurabow1SignatureTellLillyAboutGerieBlockingFix1, laurabow1PatchTellLillyAboutGertieBlockingFix1 },
|
||||
{ true, 236, "tell Lilly about Gertie blocking fix 2/2", 1, laurabow1SignatureTellLillyAboutGerieBlockingFix2, laurabow1PatchTellLillyAboutGertieBlockingFix2 },
|
||||
{ true, 414, "copy protection", 1, laurabow1SignatureCp, laurabow1PatchCp },
|
||||
{ true, 998, "obstacle collision lockups fix", 1, laurabow1SignatureObstacleCollisionLockupsFix, laurabow1PatchObstacleCollisionLockupsFix },
|
||||
SCI_SIGNATUREENTRY_TERMINATOR
|
||||
};
|
||||
|
@ -14005,6 +14024,44 @@ static const SciScriptPatcherEntry torinSignatures[] = {
|
|||
|
||||
#endif
|
||||
|
||||
|
||||
// Copy Protection
|
||||
static const uint16 pq2EnSignatureCp[] = {
|
||||
SIG_MAGICDWORD,
|
||||
0x35, 0x07, 0x12, 0xa5,
|
||||
SIG_ADDTOOFFSET(67),
|
||||
0x30, 0xcf, 0x00, 0x35,
|
||||
SIG_END
|
||||
};
|
||||
|
||||
static const uint16 pq2EnPatchCp[] = {
|
||||
0x35, 0x00, 0x12, 0xa5,
|
||||
PATCH_ADDTOOFFSET(67),
|
||||
0x30, 0x00, 0x00, 0x35,
|
||||
PATCH_END
|
||||
};
|
||||
|
||||
static const uint16 pq2JpSignatureCp[] = {
|
||||
SIG_MAGICDWORD,
|
||||
0x35, 0x07, 0x12, 0xa5,
|
||||
SIG_ADDTOOFFSET(75),
|
||||
0x30, 0xcf, 0x00, 0x35,
|
||||
SIG_END
|
||||
};
|
||||
|
||||
static const uint16 pq2JpPatchCp[] = {
|
||||
0x35, 0x00, 0x12, 0xa5,
|
||||
PATCH_ADDTOOFFSET(75),
|
||||
0x30, 0x00, 0x00, 0x35,
|
||||
PATCH_END
|
||||
};
|
||||
|
||||
static const SciScriptPatcherEntry pq2Signatures[] = {
|
||||
{ true, 701, "copy protection", 1, pq2EnSignatureCp, pq2EnPatchCp },
|
||||
{ true, 701, "copy protection", 1, pq2JpSignatureCp, pq2JpPatchCp },
|
||||
SCI_SIGNATUREENTRY_TERMINATOR
|
||||
};
|
||||
|
||||
// =================================================================================
|
||||
|
||||
ScriptPatcher::ScriptPatcher() {
|
||||
|
@ -14536,6 +14593,9 @@ void ScriptPatcher::processScript(uint16 scriptNr, SciSpan<byte> scriptData) {
|
|||
case GID_PQ1:
|
||||
signatureTable = pq1vgaSignatures;
|
||||
break;
|
||||
case GID_PQ2:
|
||||
signatureTable = pq2Signatures;
|
||||
break;
|
||||
case GID_PQ3:
|
||||
signatureTable = pq3Signatures;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue