[Scummvm-tracker] [ScummVM :: Bugs] #17232: MACVENTURE: Uninvited: Going through the black hole crashes the game

ScummVM :: Bugs trac at scummvm.org
Fri Sep 25 11:55:51 UTC 2026


#17232: MACVENTURE: Uninvited: Going through the black hole crashes the game
-------------------------+---------------------------------
Reporter:  eriktorbjorn  |       Owner:  (none)
    Type:  defect        |      Status:  new
Priority:  normal        |   Component:  Engine: Macventure
 Version:                |  Resolution:
Keywords:                |        Game:
-------------------------+---------------------------------
Description changed by eriktorbjorn:

Old description:

> Zojoin re-release of the game.
>
> If you try to go through the black hole in the Library, the game will
> crash from the `op89PUI` script opcode trying to read outside an array.
>
> What black hole, I hear you ask. Well, it's right there on the star map
> though you have to select the map to even get a hint about it:
>
> [[Image(star-map.png)]]
>
> And why would you try to go through it? Well, that's actually part of an
> elaborate Easter Egg. The instructions I've found for it are:
>
> 1. Pick up the two lamps in the first room of the house.
> 2. Put the lamps on top of each other in the inventory, so that they look
> like one.
> 3. Go to the library.
> 4. Close the inventory.
> 5. Examine the black hole.
> 6. Open the black hole.
> 7. Close the black hole.
> 8. Speak to the black hole. (It probably doesn't matter what you say.)
> 9. Go through the black hole.
>
> (The commands are in the order they appear in the verb window, so that
> makes it easier to remember.)
>
> This will take you to this hidden room:
>
> [[Image(easter-egg.png)]]
>
> But you don't have to go through all of that (and in fact I've never
> tried the correct steps in ScummVM, because I forgot about the lamps and
> the inventory window). Just trying to go through the black hole produces
> this backtrace:
>
> {{{
> (gdb) bt
> #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized
> out>)
>     at ./nptl/pthread_kill.c:44
> #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)
>     at ./nptl/pthread_kill.c:78
> #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo at entry=6)
>     at ./nptl/pthread_kill.c:89
> #3  0x00007ffff604527e in __GI_raise (sig=sig at entry=6)
>     at ../sysdeps/posix/raise.c:26
> #4  0x00007ffff60288ff in __GI_abort () at ./stdlib/abort.c:79
> #5  0x00007ffff602881b in __assert_fail_base
>     (fmt=0x7ffff61d1208 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
> assertion=assertion at entry=0x5555573f3d27 "idx < _size",
> file=file at entry=0x5555573f3d16 "./common/array.h", line=line at entry=275,
> function=function at entry=0x5555573f3cb8 "T&
> Common::Array<T>::operator[](size_type) [with T = unsigned char;
> size_type = unsigned int]") at ./assert/assert.c:96
> #6  0x00007ffff603b517 in __assert_fail
>     (assertion=0x5555573f3d27 "idx < _size", file=0x5555573f3d16
> "./common/array.h", line=275, function=0x5555573f3cb8 "T&
> Common::Array<T>::operator[](size_type) [with T = unsigned char;
> size_type = unsigned int]")
>     at ./assert/assert.c:105
> #7  0x000055555859e91b in Common::Array<unsigned char>::operator[]
>     (this=0x555564a88670, idx=26) at ./common/array.h:275
> #8  0x000055555b5f21b9 in MacVenture::ScriptAsset::fetch
> (this=0x555564a88660)
>     at engines/macventure/script.cpp:1246
> #9  0x000055555b5ef772 in MacVenture::ScriptEngine::op89PUI
>     (this=0x55556490bc70, state=0x55556395a0d4, frame=0x55556395a0c0,
> script=0x555564a88660) at engines/macventure/script.cpp:587
> #10 0x000055555b5ee885 in MacVenture::ScriptEngine::runFunc
>     (this=0x55556490bc70, frame=0x55556395a0c0)
>     at engines/macventure/script.cpp:220
> #11 0x000055555b5ee60e in MacVenture::ScriptEngine::loadScript
>     (this=0x55556490bc70, frame=0x55556395a0c0, scriptID=1335)
>     at engines/macventure/script.cpp:165
> #12 0x000055555b5ee4ed in MacVenture::ScriptEngine::execFrame
>     (this=0x55556490bc70, execAll=true) at
> engines/macventure/script.cpp:148
> #13 0x000055555b5ee157 in MacVenture::ScriptEngine::resume
>     (this=0x55556490bc70, execAll=true) at
> engines/macventure/script.cpp:70
> #14 0x000055555b5ee0d8 in MacVenture::ScriptEngine::runControl
>     (this=0x55556490bc70, action=MacVenture::kGo, source=691,
> destination=0, delta=...) at engines/macventure/script.cpp:64
> #15 0x000055555b5e6e4b in MacVenture::MacVentureEngine::runScriptEngine
>     (this=0x5555641e9310) at engines/macventure/macventure.cpp:579
> #16 0x000055555b5e5883 in MacVenture::MacVentureEngine::run
>     (this=0x5555641e9310) at engines/macventure/macventure.cpp:189
> #17 0x0000555558566200 in runGame
>     (enginePlugin=0x5555606662f0, system=..., game=...,
> meDescriptor=0x555562abf590) at base/main.cpp:328
> #18 0x0000555558568881 in scummvm_main (argc=1, argv=0x7fffffffdae8)
>     at base/main.cpp:840
> #19 0x0000555558562dea in main (argc=1, argv=0x7fffffffdae8)
>     at backends/platform/sdl/posix/posix-main.cpp:56
> }}}

New description:

 Zojoin re-release of the game.

 If you try to go through the black hole in the Library, the game will
 crash from the `op89PUI` script opcode trying to read outside an array.

 What black hole, I hear you ask. Well, it's right there on the star map
 though you have to select the map to even get a hint about it:

 [[Image(star-map.png)]]

 And why would you try to go through it? Well, that's actually part of an
 elaborate Easter Egg. The instructions I've found for it are:

 1. Pick up the two lamps in the first room of the house.
 2. Put the lamps on top of each other in the inventory, so that they look
 like one.
 3. Go to the library.
 4. Close the inventory.
 5. Examine the black hole.
 6. Open the black hole.
 7. Close the black hole.
 8. Speak to the black hole. (It probably doesn't matter what you say.)
 9. Go through the black hole.

 (The commands are in the order they appear in the verb window, so that
 makes it easier to remember.)

 This should take you to this hidden room:

 [[Image(easter-egg.png)]]

 But you don't have to go through all of that (and in fact I've never tried
 the correct steps in ScummVM, because I forgot about the lamps and the
 inventory window). Just trying to go through the black hole produces this
 backtrace:

 {{{
 (gdb) bt
 #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized
 out>)
     at ./nptl/pthread_kill.c:44
 #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)
     at ./nptl/pthread_kill.c:78
 #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo at entry=6)
     at ./nptl/pthread_kill.c:89
 #3  0x00007ffff604527e in __GI_raise (sig=sig at entry=6)
     at ../sysdeps/posix/raise.c:26
 #4  0x00007ffff60288ff in __GI_abort () at ./stdlib/abort.c:79
 #5  0x00007ffff602881b in __assert_fail_base
     (fmt=0x7ffff61d1208 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
 assertion=assertion at entry=0x5555573f3d27 "idx < _size",
 file=file at entry=0x5555573f3d16 "./common/array.h", line=line at entry=275,
 function=function at entry=0x5555573f3cb8 "T&
 Common::Array<T>::operator[](size_type) [with T = unsigned char; size_type
 = unsigned int]") at ./assert/assert.c:96
 #6  0x00007ffff603b517 in __assert_fail
     (assertion=0x5555573f3d27 "idx < _size", file=0x5555573f3d16
 "./common/array.h", line=275, function=0x5555573f3cb8 "T&
 Common::Array<T>::operator[](size_type) [with T = unsigned char; size_type
 = unsigned int]")
     at ./assert/assert.c:105
 #7  0x000055555859e91b in Common::Array<unsigned char>::operator[]
     (this=0x555564a88670, idx=26) at ./common/array.h:275
 #8  0x000055555b5f21b9 in MacVenture::ScriptAsset::fetch
 (this=0x555564a88660)
     at engines/macventure/script.cpp:1246
 #9  0x000055555b5ef772 in MacVenture::ScriptEngine::op89PUI
     (this=0x55556490bc70, state=0x55556395a0d4, frame=0x55556395a0c0,
 script=0x555564a88660) at engines/macventure/script.cpp:587
 #10 0x000055555b5ee885 in MacVenture::ScriptEngine::runFunc
     (this=0x55556490bc70, frame=0x55556395a0c0)
     at engines/macventure/script.cpp:220
 #11 0x000055555b5ee60e in MacVenture::ScriptEngine::loadScript
     (this=0x55556490bc70, frame=0x55556395a0c0, scriptID=1335)
     at engines/macventure/script.cpp:165
 #12 0x000055555b5ee4ed in MacVenture::ScriptEngine::execFrame
     (this=0x55556490bc70, execAll=true) at
 engines/macventure/script.cpp:148
 #13 0x000055555b5ee157 in MacVenture::ScriptEngine::resume
     (this=0x55556490bc70, execAll=true) at
 engines/macventure/script.cpp:70
 #14 0x000055555b5ee0d8 in MacVenture::ScriptEngine::runControl
     (this=0x55556490bc70, action=MacVenture::kGo, source=691,
 destination=0, delta=...) at engines/macventure/script.cpp:64
 #15 0x000055555b5e6e4b in MacVenture::MacVentureEngine::runScriptEngine
     (this=0x5555641e9310) at engines/macventure/macventure.cpp:579
 #16 0x000055555b5e5883 in MacVenture::MacVentureEngine::run
     (this=0x5555641e9310) at engines/macventure/macventure.cpp:189
 #17 0x0000555558566200 in runGame
     (enginePlugin=0x5555606662f0, system=..., game=...,
 meDescriptor=0x555562abf590) at base/main.cpp:328
 #18 0x0000555558568881 in scummvm_main (argc=1, argv=0x7fffffffdae8)
     at base/main.cpp:840
 #19 0x0000555558562dea in main (argc=1, argv=0x7fffffffdae8)
     at backends/platform/sdl/posix/posix-main.cpp:56
 }}}

--
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/17232#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list