Opened 16 years ago
Closed 8 years ago
#7643 closed feature request (fixed)
DOTT: Running MM from Ed's room.
Reported by: | SF/zorbid | Owned by: | eriktorbjorn |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: |
Description
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...
Ticket imported from: #2006144. Ticket imported from: feature-requests/459.
Change History (6)
comment:1 by , 16 years ago
Summary: | DOTT: Run MM from Ed's room. → DOTT: Running MM from Ed's room. |
---|
comment:2 by , 11 years ago
Component: | → Engine: SCUMM |
---|
comment:3 by , 11 years ago
comment:4 by , 10 years ago
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! :)
comment:5 by , 10 years ago
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.
comment:6 by , 8 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
This has been implemented in commit f74ba297 more than two years ago.
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.