[Scummvm-tracker] [ScummVM :: Bugs] #14556: SCI: Crash in Island of Dr. Brain robot maze puzzle
ScummVM :: Bugs
trac at scummvm.org
Tue Dec 12 20:27:08 UTC 2023
#14556: SCI: Crash in Island of Dr. Brain robot maze puzzle
-------------------------+----------------------------------
Reporter: eriktorbjorn | Owner: sluicebox
Type: defect | Status: closed
Priority: normal | Component: Engine: SCI
Version: | Resolution: fixed
Keywords: | Game: Island of Dr. Brain
-------------------------+----------------------------------
Changes (by sluicebox):
* owner: (none) => sluicebox
* status: new => closed
* resolution: => fixed
Comment:
Fixed in
https://github.com/scummvm/scummvm/commit/b7522b2bb9f851265de441e1828a5a1dd52c10af
This one was a lot of fun.
To reproduce:
1. Program the robot to drop a piece on the start position
2. Program the robot to leave the start space and collide with a wall
3. Robot will collide with a wall, reverse course, and collide with the
piece
5. The second collision is unexpected and crashes
I've attached a save that's in this state. Use the cartridge and click Go
to reproduce.
This is not an infinite recursion bug, this is a stack underflow bug. Our
`validate_variable` function allows a lot of nonsense through, and in this
case the VM happily served OOB process memory to the script without even
logging it. Those undefined values just happened to cause infinite
recursion.
(There is an unrelated non-fatal bug in the maze involving floor pieces.
When picking up a piece, the tile is still an obstacle until the piece is
dropped. This isn't noticeable when picking up a piece from a wall tile,
but when picking up a dropped piece from a floor tile, the robot will
collide with an invisible obstacle if moved onto it.)
--
Ticket URL: <https://bugs.scummvm.org/ticket/14556#comment:14>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list