Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing opcode causes fatal error in MANIAC-V2-EN #12

Open
dwatteau opened this issue Dec 24, 2020 · 1 comment
Open

Missing opcode causes fatal error in MANIAC-V2-EN #12

dwatteau opened this issue Dec 24, 2020 · 1 comment

Comments

@dwatteau
Copy link
Owner

dwatteau commented Dec 24, 2020

ScummTR fails on MANIAC-PC-V2-EN (which can be bought on GOG, or extracted from the DOTT Remaster which is also on GOG), probably because of a script error:

$ scummtr -cw -l en -gp maniacv2 . -of tmp.txt

ERROR: Script error at 0x2449 in 07.LFL (roomOps) [007:SCv2#0059]

MANIAC-PC-V1-EN and MANIAC-PC-V2-FR don't have this problem.

descumm (from ScummVM-tools) also has troubles with this script:

$ descumm -2 ./DUMP/LFv2_0007/SCv2_0059

ERROR: do_room_ops_old: unknown subop 12!

Indeed, here's how the script is interpreted on MANIAC-PC-V1-EN:

[00EF] (62) stopScript(0);
[00F1] (49) faceActor(116,VAR_KEYPRESS);
ERROR: do_room_ops_old: unknown subop 12!

while MANIAC-PC-V1-FR looks correct:

[0115] (62) stopScript(0);
[0117] (D8) printEgo("Il est déjà plein."); 
[0128] (A0) stopObjectCode();

It looks like the erroneous script missed a D8 (printEgo()) opcode, and directly used a 49 byte (which is interpreted as as bogus faceActor() opcode) instead of the intended D849... sequence (starting a call to printEgo("I)...). It seems that adding the missing D8 byte would fix this, but then offsets & all must be fixed.

dwatteau added a commit that referenced this issue Dec 24, 2020
Some versions of MANIAC-V2-EN miss a byte in the opcode sequence for
printEgo, causing a fatal error while trying to export the subtitles.

See #12.
@dwatteau
Copy link
Owner Author

PR #13 is a tentative fix for this.

dwatteau added a commit that referenced this issue Dec 25, 2020
Some versions of MANIAC-V2-EN miss a byte in the opcode sequence for
printEgo, causing a fatal error while trying to export the subtitles.

See #12.
@dwatteau dwatteau pinned this issue Feb 5, 2022
@dwatteau dwatteau unpinned this issue Feb 5, 2022
dwatteau added a commit that referenced this issue Feb 6, 2022
This particular version has an original script bug that corrupts the
game when you modify it (the game will always switch to Demo mode).

The V1 English variant, and the V2 non-English variants don't have
this bug.

#12
@dwatteau dwatteau changed the title Fatal ScummTR error with MANIAC-PC-V2-EN (original script error) Missing opcode causes fatal error in MANIAC-V2-EN Feb 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant