Menu

#459 DOTT: Running MM from Ed's room.

Engine: SCUMM
open
nobody
None
5
2014-08-21
2008-06-29
Zorbid
No

This has been requested twice already, and was rejected at that time because MM wasn't supported yet.

Now that engines are on the verge of being able to clean up after themselves (most already are if I'm not mistaken), it would be nice to get that easter egg...

Discussion

  • Zorbid

    Zorbid - 2008-06-29
    • summary: DOTT: Run MM from Ed's room. --> DOTT: Running MM from Ed's room.
     
  • digitall

    digitall - 2014-04-20
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -1,4 +1,3 @@
    -
     This has been requested twice already, and was rejected at that time because MM wasn't supported yet.
    
     Now that engines are on the verge of being able to clean up after themselves \(most already are if I'm not mistaken\), it would be nice to get that easter egg...
    
    • Group: --> Engine: SCUMM
     
  • digitall

    digitall - 2014-04-20

    Doing this is not easy as it requires either running a second copy of ScummVM from within ScummVM, or by triggering an autosave of DOTT, then restarting the engine with Maniac Mansion... and then autoloading the autosave for DOTT and restarting when you exit.

    Up till now, the team has always said on this. It is much easier if you just point ScummVM at the sudirectory of the DOTT gamefiles which contains the Maniac Mansion LFL files, and then start MM as normal.

     
  • digitall

    digitall - 2014-05-29

    Have done some experimental WIP here to do this by starting a second copy of the SCUMM engine with Maniac Mansion:
    https://github.com/digitall/scummvm/tree/tentacleMMStart

    This pauses the SCUMM instance running DOTT and then passes control down to the new nested SCUMM instance running MM. It has a number of hacks to fix re-entrance i.e. running two copies of SCUMM engine as the engine uses a few global / static pointers and it assumes that the MM datafiles are present.

    It does work fine, but exiting back to the SCUMM engine afterwards only works for RTL, not QUIT due to the way that the event loop processes QUIT events i.e they can't be reset, so the QUIT cancels both engine copies. Also, it is necessary to trigger a full screen redraw after leaving MM to ensure that the screen state is correct... and do the "Wow" that Bernard normally says! :)

     
  • digitall

    digitall - 2014-05-29

    Note that I am not suggesting this as a final solution. For small devices especially, the engine exit or restart with new target would be better and much more economic on memory etc.

    However, the SCUMM engine being the oldest engine is not quite as easy to modify to do this as the detection / engine version code is quite complex and intertwined into the engine, plus the previous issues with restart need to be fully fixed.

     
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.