Possible to cleanly skip MI2 codewheel after all?

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
marzipan
Posts: 301
Joined: Fri Nov 25, 2005 4:10 pm

Possible to cleanly skip MI2 codewheel after all?

Post by marzipan »

Yes, I'm aware that the protection is disabled by default in MI2 anyway, but since playing the Kixx XL budget rerelease of the Amiga version, and noticing how it skips the whole recipe business at startup and takes you straight to the difficulty select option (I believe the FM-Towns version does something very similar), I was wondering whether it'd be possible for one to implement this sort of 'hackery' into the DOS version.

From hex-comparing, it seems "monkey2.001" was edited for the Kixx Amiga version (matching the way "disk01.lec" was edited for their reissue of MI1), compared to the original retail one. So with careful trepidation, many hours of testing and endless editing later, I finally managed to replicate it! My edited MONKEY2.001 now jumps past the codewheel recipe entirely, but unlike the CD-ROM version, it'll still let you select out of "Monkey Island 2" or "Monkey 2 Lite". :)


This is something I don't intend on sharing round of course, but if any developer would be interested in my (rather simple) code changes, in the possibility that this could be 'officially' inducted into the ScummVM code, feel free to PM me. :)
Kirben
Posts: 421
Joined: Wed Sep 21, 2005 12:15 pm
Location: Melbourne, Victoria, Australia

Post by Kirben »

No, the scripts were changed in the Amiga version of Monkey Island 2.
marzipan
Posts: 301
Joined: Fri Nov 25, 2005 4:10 pm

Post by marzipan »

Do feel free to explain? The Amiga MI2 had the protection present on retail, but on budget it was clean-disabled.
Kirben
Posts: 421
Joined: Wed Sep 21, 2005 12:15 pm
Location: Melbourne, Victoria, Australia

Post by Kirben »

Scripts 128/130 were altered/hacked in the Kixx XL budget release of Amiga version of Monkey Island 2, in order to remove the copy protection code. Specifically they replaced several segments of those scripts, with opcode A7.
marzipan
Posts: 301
Joined: Fri Nov 25, 2005 4:10 pm

Post by marzipan »

I see. Well, like I said, I managed to replicate it somewhat for the DOS version, but I've not 100% playtested my hack through to the end to date.
marzipan
Posts: 301
Joined: Fri Nov 25, 2005 4:10 pm

Post by marzipan »

Though I should add that running either the Kixx XL Amiga version or my hacked DOS one through ScummVM will report countless instances of the following 'error'(?) in the console window:

Code: Select all

WARNING: o5_dummy invoked (opcode 167)!
I call it 'error' that way since the game will still continue onwards regardless - at least it doesn't crash to a debug console, or simply terminate the app altogether.


I take it this is what you meant by the opcode A7 stuff? Bear in mind this is all gobbledegook to someone like moi.
fingolfin
Retired
Posts: 1452
Joined: Wed Sep 21, 2005 4:12 pm

Post by fingolfin »

Hex A7 = Decimal 167 = opcode o5_dummy :-)

In other words, they overwrote lots of script code with operations doing nothing ("NO-OPs" or "NOPs").
marzipan
Posts: 301
Joined: Fri Nov 25, 2005 4:10 pm

Post by marzipan »

Thanks for the info.

So what you're saying is...... if the changes are script-based, they can't really be "emulated"/replicated by ScummVM as such? Was the codewheel-skipping in MI1 et al done in a different manner?
Post Reply