SCI32: Fix slow transitions in SQ6
This commit is contained in:
parent
699a147348
commit
a05ae2e24a
1 changed files with 35 additions and 0 deletions
|
@ -4536,11 +4536,46 @@ static const SciScriptPatcherEntry sq5Signatures[] = {
|
|||
#pragma mark -
|
||||
#pragma mark Space Quest 6
|
||||
|
||||
// After the explosion in the Quarters of Deepship 86, the game tries to perform
|
||||
// a dramatic long fade, but does this with an unreasonably large number of
|
||||
// divisions which takes tens of seconds to finish (because transitions are not
|
||||
// CPU-dependent in ScummVM).
|
||||
static const uint16 sq6SlowTransitionSignature1[] = {
|
||||
SIG_MAGICDWORD,
|
||||
0x38, SIG_UINT16(0x578), // pushi $0578
|
||||
0x51, 0x33, // class Styler
|
||||
SIG_END
|
||||
};
|
||||
|
||||
static const uint16 sq6SlowTransitionPatch1[] = {
|
||||
0x38, SIG_UINT16(180), // pushi 180
|
||||
PATCH_END
|
||||
};
|
||||
|
||||
// For whatever reason, SQ6 sets the default number of transition divisions to
|
||||
// be a much larger value at startup (200 vs 30) if it thinks it is running in
|
||||
// Windows. Room 410 (eulogy room) also unconditionally resets divisions to the
|
||||
// larger value.
|
||||
static const uint16 sq6SlowTransitionSignature2[] = {
|
||||
SIG_MAGICDWORD,
|
||||
0x38, SIG_UINT16(0xc8), // pushi $c8
|
||||
0x51, 0x33, // class Styler
|
||||
SIG_END
|
||||
};
|
||||
|
||||
static const uint16 sq6SlowTransitionPatch2[] = {
|
||||
0x38, SIG_UINT16(30), // pushi 30
|
||||
PATCH_END
|
||||
};
|
||||
|
||||
// script, description, signature patch
|
||||
static const SciScriptPatcherEntry sq6Signatures[] = {
|
||||
{ true, 0, "fix slow transitions", 1, sq6SlowTransitionSignature2, sq6SlowTransitionPatch2 },
|
||||
{ true, 15, "invalid array construction", 1, sci21IntArraySignature, sci21IntArrayPatch },
|
||||
{ true, 22, "invalid array construction", 1, sci21IntArraySignature, sci21IntArrayPatch },
|
||||
{ true, 410, "fix slow transitions", 1, sq6SlowTransitionSignature2, sq6SlowTransitionPatch2 },
|
||||
{ true, 460, "invalid array construction", 1, sci21IntArraySignature, sci21IntArrayPatch },
|
||||
{ true, 500, "fix slow transitions", 1, sq6SlowTransitionSignature1, sq6SlowTransitionPatch1 },
|
||||
{ true, 510, "invalid array construction", 1, sci21IntArraySignature, sci21IntArrayPatch },
|
||||
{ true, 64990, "increase number of save games", 1, sci2NumSavesSignature1, sci2NumSavesPatch1 },
|
||||
{ true, 64990, "increase number of save games", 1, sci2NumSavesSignature2, sci2NumSavesPatch2 },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue