Opened 18 years ago

Closed 13 years ago

Last modified 5 years ago

#2524 closed defect (fixed)

MANIAC: Invalid actor 255 in o5_putActorInRoom

Reported by: SF/adiro69 Owned by: fingolfin
Priority: low Component: Engine: SCUMM
Version: Keywords: original
Cc: Game: Maniac Mansion


Platform: WinCE ScummVM 0.8.2 Game: Maniac Mansion german/DOS (The one included in the german DOTT) Bug description: (Please see the attached saved game) Playing Razor, after some time I try to enter Ted's room (The one with the hamster). He is there and he wants to catch me and bring me to the basement. But on this moment his package arrives and, instead of bring me to the basement he say "Not again!" and goes down (exit the room). After 2-3 seconds, the debug console apears with the message:

Error: (26:89:0x14): Invalid actor 255 in o5_putActorInRoom

and I can type exit and exit PocketScummVM with the same message in a popup window. There is no error log generated. I can avoid this problem by waiting for this action to happened and than entering Ted's room.

Sorry about my english.

Regards Adi

Ticket imported from: #1447058. Ticket imported from: bugs/2524.

Attachments (1)

maniac.s02 (7.5 KB ) - added by SF/adiro69 18 years ago.
Save game

Download all attachments as: .zip

Change History (13)

by SF/adiro69, 18 years ago

Attachment: maniac.s02 added

Save game

comment:1 by SF/adiro69, 18 years ago

Using the savegame I have reproduced the problem with the Windows 0.8.2 and 0.9 svn builds.


comment:2 by fingolfin, 18 years ago

Summary: Maniac Mansion: script errorMANIAC: Invalid actor 255 in o5_putActorInRoom

comment:3 by fingolfin, 18 years ago

I can't reproduce the issue over here. Please provide detailed (step-by-step) instructions as to how to reproduce the issue.

For reference: This the german V2 MM, with MD5 = 183d7464902d40d00800e8ee1f04117c

comment:4 by fingolfin, 18 years ago

Script 89 starts like as follows:

... [0000] (40) cutscene [0001] (58) beginOverride() [0002] (18) goto 0057; [0005] (07) setState08(159) [0008] (9A) Var[109] = Var[113]; [000B] (42) startScript(146) [000D] (AD) putActorInRoom(Var[113],4) [0010] (C1) putActor(Var[113],Var[110],63) [0014] (91) animateActor(Var[113],249) [0017] (2D) putActorInRoom(11,4) ...

The error you posted here means that Var[113] is equal -1.

While I was not (yet?) able to reproduce the issue you described, it sounds like a typical race conditions between two cutscenes. It's likely a scripting bug already present in the original. It's possible that it slipped through in the original engine, since that was for more lenient when it comes to invalid actor ids being used and stuff like that. We probably could add a dedicated workaround for this issue, if required. But for that we first have to be able to reproduce the issue.

comment:5 by SF/adiro69, 18 years ago


I am using the following versions of ScummVM:

- 0.8.2 Windows - 0.9 svn Windows - 0.8.2 Windows CE port by Arisme

The steps to reproduce this issue are:

1. Start the game 2. Load the previously attached save game (maniac.s02). You are playing Razor and you stay near the door to Ted's room.(the first closed one on the left) 3. Enter that room. Ted is there and than the following are happening: - He tells you to stop - He says "Not again" - He leaves the room (He goes down to pick up the post) - You remain into the room. - After 2-3 seconds the debug console appear...

I have been able to reproduce it any time with the save game.

Regards Adi

comment:6 by fingolfin, 18 years ago

Ah. The trick to reproduce is to wait with entering the door to Ted's room until the door bell chimed once. If you enter it before that, the bug won't happen. Which is yet another indicator that this is a bug in the original script. A classical race condition.

comment:7 by fingolfin, 18 years ago

Lowering priority, since a simple workaround exists (just either be quick, or wait until the door-bell cutscene is finished).

comment:8 by fingolfin, 18 years ago

Priority: normallow

comment:9 by fingolfin, 14 years ago

Testing tracker monitoring feature -- please ignore & sorry for the annoyance.

comment:10 by fingolfin, 13 years ago

Fixed in SVN after only 4.5 years :) To be precise, I added a workaround for this script bug which makes Ted ignore the door bell if he is currently busy with imprisoning the player.

comment:11 by fingolfin, 13 years ago

Keywords: original added
Owner: set to fingolfin
Resolution: fixed
Status: newclosed

comment:12 by digitall, 5 years ago

Component: Engine: SCUMM
Game: Maniac Mansion
Note: See TracTickets for help on using tickets.