As I think of it, command line bootparms don’t work with every interpreter version. Some official versions have a hardcodec bootparm. Especially the v5 talkie uses -7873 to skip the protection of Fate of Atlantis. Thus, command line bootparms can not be used in the Ultimate Talkie Editions. It is still possible to enable debug mode and enter them in-game, though.
I didn’t check, but I suspect that the officially hacked MI2 also uses a hardcoded bootparm, thus skipping the difficulty screen.
Those are my changes in MI2 copycrap, which I made by comparing the regular pc version with the Amiga Kixx release:
--- 001_SCRP_128_orig.dmp.txt 2026-10-17 09:02:30.024511300 +0200
+++ 001_SCRP_128.dmp.txt 2020-10-18 11:43:50.000000000 +0200
@@ -1,3 +1,6 @@
+ if (Local[0]==0){
+ goto 1000;
+ }
[0000] (1A) Local[0] = 3;
[0005] (1A) Local[1] = 11;
[000A] (2C) CursorHide();
@@ -50,4 +53,13 @@
[019F] (27) PutCodeInString(48, "MONKEY ISLAND 2\xFE\x01 `I want it all\\ All the\xFE\x01 puzzles\\ All the work\\`");
[01E9] (27) PutCodeInString(49, "MONKEY 2 LITE\xFE\x01 `I've never played an\xFE\x01 adventure game before.\xFE\x01 I'm scared.`");
[023D] (A0) stopObjectCode();
+[1000] Local[0] = 1;
+ Local[1] = 1;
+ CursorHide();
+ UserputOff();
+ VAR_VERB_SCRIPT = 132;
+ beginOverride();
+ goto 1018;
+[1018] (62) stopScript(142);
+ goto 00EC;
END
--- 003_SCRP_130_orig.dmp.txt 2026-10-17 09:04:55.469778100 +0200
+++ 003_SCRP_130.dmp.txt 2020-10-18 11:43:50.000000000 +0200
@@ -1,5 +1,10 @@
-[0000] (1A) Local[8] = 3;
-[0005] (1A) Local[9] = 11;
+[0005] (1A) if(Local[0]==0){
+ Local[8] = 1;
+ Local[9] = 1;
+ } else {
+ Local[8] = 3;
+ Local[9] = 11;
+ }
[000A] (1A) Local[10] = 1;
[000F] (2C) InitCharset(7);
[0012] (2C) CursorCommand([0,0,0,0]);
@@ -14,10 +19,13 @@
[0038] (80) breakHere();
[0039] (80) breakHere();
[003A] (80) breakHere();
-[003B] (0A) startScript(128,[]);
+[003B] (0A) startScript(128,[Local[0]]);
[003E] (80) breakHere();
[003F] (68) VAR_RESULT = isScriptRunning(128);
[0043] (28) unless (!VAR_RESULT) goto 003E;
+ if(Local[0]==0){
+ goto 0282;
+ }
[0048] (14) print(255,[Text(" ")]);
[004D] (14) print(255,[Text(" ")]);
[0052] (9A) Local[6] = VAR_TMR_1;
@@ -77,7 +85,7 @@
[01A6] (48) if (Var[106] == 11) {
[01AD] (18) goto 0139;
[01B0] (**) }
-[01B0] (44) if (VAR_DEBUGMODE > 1) {
+[01B0] (44) if (VAR_DEBUGMODE >= 1) {
[01B7] (48) if (Var[106] == -100) {
[01BE] (18) goto 027E;
[01C1] (**) }
@@ -114,13 +122,18 @@
[027B] (**) }
[027B] (18) goto 003B;
[027E] (**) }
-[027E] (2E) delay(30);
+[027E] (2E) Local[0]=1;
+ delay(30);
[0282] (3F) drawBox(0,0;,319,60,160);
[028D] (07) setState(1154,0);
[0291] (07) setState(1155,0);
[0295] (14) print(255,[Text(" ")]);
[029A] (14) print(255,[Text(" ")]);
[029F] (80) breakHere();
+ if(Local[0]==0){
+ CursorCommand([0,10,3]);
+ RoomIntensity(0,3,3);
+ }
[02A0] (14) print(254,[Color(81),Center(),Pos(157,27),Text("\xFF\x07/\x00")]);
[02B0] (14) print(254,[Color(81),Left(),Pos(51,57),Text("\xFF\x070\x00")]);
[02C0] (14) print(254,[Color(81),Left(),Pos(51,122),Text("\xFF\x071\x00")]);
@@ -130,10 +143,14 @@
[02E3] (5D) setClass(1157,[32]);
[02EA] (5D) setClass(1158,[32]);
[02F1] (5D) setClass(1159,[32]);
+ if(Local[0]==0){
+ VAR_VERB_SCRIPT = 131;
+ }
[02F8] (2C) CursorShow();
[02FA] (1A) Var[106] = 0;
[02FF] (80) breakHere();
[0300] (48) unless (Var[106] == -2) goto 02FF;
+ VAR_MAINMENU_KEY = 319;
[0307] (2C) CursorHide();
[0309] (2C) UserputOff();
[030B] (14) print(255,[Text(" ")]);