Opened 21 years ago

Closed 21 years ago

Last modified 21 years ago

#610 closed defect (fixed)

MI1&Mi2: unable to win the game (cheat)

Reported by: SF/sir_kill_a_lot Owned by: eriktorbjorn
Priority: low Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 1

Description

In MI1 and MI2 there are cheats to "win" the game, but they don't work with ScummVM. (cheat for MI1 is CTRL+W and for MI2 CTRL+ALT+W, then a yes/no question is asked if you like to win the game)

Playing MI1VGA German with ScummVM displays the question when pressing CTRL+SHIFT+W, but there is no y/n (german: j/n) query implemented. MI2 don't display it at all.

Ticket imported from: #647860. Ticket imported from: bugs/610.

Change History (8)

comment:1 by SF/sir_kill_a_lot, 21 years ago

Priority: normallow

comment:2 by fingolfin, 21 years ago

Owner: set to SF/ender

comment:3 by fingolfin, 21 years ago

I don't think it should be our goal to make those work. IMHO this should be closed as WONTFIX.

comment:4 by SF/sir_kill_a_lot, 21 years ago

Ohhh, but only completing the game is boring in the long run, I want to WIN the game and get the high score! :)

I just thougt it wouldn't be that hard to implement this.

comment:5 by eriktorbjorn, 21 years ago

I looked a bit at these, and part of the bug is in the way ScummVM handles keypresses. ScummVM intercepts *all* Ctrl-<key> keypresses, and sends the wrong key code for Ctrl-Alt-<key>. That part, at least, probably should be fixed.

The second part of the bug is that our InfoDialog doesn't pass the keypress used to dismiss it back to the game. I guess we may need this functionality later anyway.

For reference, here are the scripts that handle the "win" key:

Monkey1:

[025A] (48) } else if (Local[1] == 23) { [0261] (14) print(252,[Color(12),Text("Are you sure you want to win? (Y/N)")]); [028A] (48) if (Var[0] == 121) { [0291] (0A) startScript(130,[1]) [0297] (62) stopScript(0) [0299] (**) } [0299] (48) if (Var[0] == 89) { [02A0] (0A) startScript(130,[1]) [02A6] (62) stopScript(0) [02A8] (**) }

Monkey2:

[038D] (48) } else if (Local[1] == 273) { [0394] (14) print(252,[Color(12),Text("Are you sure you want to win? (Y/N)")]); [03BD] (48) if (Var[0] == 121) { [03C4] (0A) startScript(165,[1]) [03CA] (62) stopScript(0) [03CC] (**) } [03CC] (48) if (Var[0] == 89) { [03D3] (0A) startScript(165,[1]) [03D9] (62) stopScript(0) [03DB] (**) }

I can understand where key code 23 (Ctrl-W) comes from, but 273 (Ctrl-Alt-W)...? How does that work?

comment:6 by SF/sir_kill_a_lot, 21 years ago

It seems I was wrong, the cheat code for MI2 is ALT-W.

comment:7 by fingolfin, 21 years ago

Works with latest CVS.

comment:8 by fingolfin, 21 years ago

Owner: changed from SF/ender to eriktorbjorn
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.