Opened 7 weeks ago

Last modified 3 days ago

#15301 new defect

ADL: Mystery House: Barely seen title screen

Reported by: eriktorbjorn Owned by:
Priority: normal Component: Engine: ADL
Version: Keywords:
Cc: Game:

Description (last modified by eriktorbjorn)

When starting the game Mystery House, there is a slight flicker before the first room is displayed. This is a title screen that I never even realized was there:


You can see it for yourself by adding this patch:

diff --git a/engines/adl/hires1.cpp b/engines/adl/hires1.cpp
index d3b95b9a6d4..4660f76acd7 100644
--- a/engines/adl/hires1.cpp
+++ b/engines/adl/hires1.cpp
@@ -248,10 +248,16 @@ void HiRes1Engine::runIntro() {
                inputString();
        }

+       // Scroll the start game prompt out of sight
+       for (int i = 0; i < 3; i++)
+               _display->scrollUp();
+       _display->renderText();
+
        stream.reset(_files->createReadStream(IDS_HR1_EXE_1));
        stream->seek(0x1800);
        static_cast<Display_A2 *>(_display)->loadFrameBuffer(*stream);
        _display->renderGraphics();
+       delay(3000);

        _display->setMode(Display::kModeMixed);

So perhaps we should add a delay here? But there are so many versions of the game that I'm hesitant to even make this a pull request. I've only been able to test it with the Public Domain version. There's one included in the Roberta Williams Anthology. Another one can be found in the IF Archive at http://www.ifarchive.org/indexes/if-archive/games/appleII/ though you have to change the name of the file from mystery.dsk to mysthous.dsk for ScummVM to recognize it.

Attachments (2)

scummvm-hires1-apple2-00000.png (11.6 KB ) - added by eriktorbjorn 7 weeks ago.
simplescreenrecorder-2024-09-13_19.45.41.mp4 (401.4 KB ) - added by eriktorbjorn 3 days ago.

Download all attachments as: .zip

Change History (7)

by eriktorbjorn, 7 weeks ago

comment:1 by eriktorbjorn, 7 weeks ago

Description: modified (diff)

comment:2 by eriktorbjorn, 3 weeks ago

You can play the game in Apple II emulation on https://archive.org/details/mm_Mystery_House

I feel comfortable saying this since the game is public domain.

The title screen is visible there, because of the speed of emulation. (It's also gratifying to see that the bugginess of the game isn't because of ScummVM. It really is that way.)

Last edited 3 weeks ago by eriktorbjorn (previous) (diff)

comment:3 by eriktorbjorn, 3 weeks ago

I also noticed that the original apparently didn't scroll the "ENTER G FOR GAME..." prompt away, so that leads to an even simpler patch:

diff --git a/engines/adl/hires1.cpp b/engines/adl/hires1.cpp
index d3b95b9a6d4..4b24eae324f 100644
--- a/engines/adl/hires1.cpp
+++ b/engines/adl/hires1.cpp
@@ -252,6 +252,7 @@ void HiRes1Engine::runIntro() {
        stream->seek(0x1800);
        static_cast<Display_A2 *>(_display)->loadFrameBuffer(*stream);
        _display->renderGraphics();
+       delay(3000);
 
        _display->setMode(Display::kModeMixed);

comment:4 by eriktorbjorn, 3 days ago

For a while, I thought there was a similar thing in Time Zone, after the menu, but that turned out to be just a flash of the same title screen again. This seems to happen in the original as well, but I think it's more distracting the way ScummVM does it. So perhaps that should be changed?

Something like this seems to help:

diff --git a/engines/adl/hires5.cpp b/engines/adl/hires5.cpp
index 8a14b0ab24f..01d390d5e44 100644
--- a/engines/adl/hires5.cpp
+++ b/engines/adl/hires5.cpp
@@ -251,6 +251,7 @@ void HiRes5Engine::runIntro() {
 
        inputKey();
 
+       _graphics->clearScreen();
        display->home();
        display->setMode(Display::kModeText);
 

by eriktorbjorn, 3 days ago

comment:5 by eriktorbjorn, 3 days ago

I've attached a video of the Mystery House title screen in MAME.

Note: See TracTickets for help on using tickets.