Opened 4 years ago

Closed 4 years ago

#12431 closed defect (fixed)

Mixed-Up Mother Goose (mothergoose256-cd)

Reported by: exoscoriae Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords:
Cc: Game: Mixed-Up Mother Goose

Description

The floppy version of this release (mothergoose256) starts up just fine for me. However the CD version gets to the title screen, plays music, and then I get the following error:
ERROR: [VM] Stack index 4096 out of valid range [0..4095]!

This error occurs with the last stable build as well as the most recent daily build I have tried (Mar 3 2021 01:44:20)

This is on Windows 10 Pro Build 19042

Attachments (1)

Screenshot 2021-04-21 110706.png (363.5 KB ) - added by exoscoriae 4 years ago.

Download all attachments as: .zip

Change History (15)

comment:1 by sluicebox, 4 years ago

Hello, thanks for reporting this. I have English-only and multi-lingual CD versions that are working, so I have a few troubleshooting steps so we can figure out where things are going wrong.

When the error occurs, could you type "bt" and press enter and post the results? A screenshot would be fine, whatever's easiest. That should give us a stack trace to show which script is failing.

It would also help if you could post a listing of the files in your game directory with their file sizes. If you're able to post md5sums too that would be a big help in identifying if this is a new or altered version.

Since ScummVM has supported this game for a while and we haven't heard of it failing to start, a likely cause is that something has gone wrong with your game files. Maybe one got modified, maybe one is missing, etc. If you can verify or re-copy the files from CD and see if that fixes it then that might save some time.

I think the AGI version was the first multi-color computer game I ever saw. =)

comment:2 by sluicebox, 4 years ago

Game: Mixed-Up Mother Goose DeluxeMixed-Up Mother Goose

Updating game because Deluxe is SCI32. (There's a lot of versions!)

by exoscoriae, 4 years ago

comment:3 by exoscoriae, 4 years ago

there are so many versions of this game.

To be clear, this may not be the sci32 version. This is
Roberta William's Mixed-Up Mother Goose (CD DOS), released in 1991

I have attached a screen shot of the game after typing "bt". Unfortunately, it scrolls quite far, however the error is repetitive.

Version 1, edited 4 years ago by exoscoriae (previous) (next) (diff)

comment:4 by sluicebox, 4 years ago

Thanks! The game is going into an infinite loop because it can't set the language to use. It scans files to see if there are any languages besides English to offer. (Export 12 of script 0 calls itself recursively until kDoAudio(kSciAudioLanguage, language) == language)

Since this is failing in an area that deals with game files, that suggests missing or messed up game files. (Or extra files somehow?) A directory listing with file sizes would clear this up. Were you able to do a clean copy of all the files from CD to a fresh directory? I'm still betting on that.

The scummvm.log file should have gory details about why it's failing to set the language. It gets regenerated after each run. I think you'll find that on Win10 in %userprofile%\AppData\Roaming\ScummVM\ or you go to Options\Path on the main screen and see what the ScummVM config path is.

That log file and directory listing is the next step we need to diagnose this, if a fresh copy of the files from CD doesn't work.

comment:5 by exoscoriae, 4 years ago

I checked, and these files are directly copied from my CD. I recopied them again just to make sure.

The scummvm log simply states:
[2021-04-21 12:37:54] ScummVM 2.3.0git12629-g23503620f1 (Feb 13 2021 06:36:51)
[2021-04-21 12:37:54] TAINTED Vorbis FLAC MP3 RGB zLib MPEG2 FluidSynth Theora AAC A/52 FreeType2 JPEG PNG cloud (servers, local) TinyGL OpenGL (with shaders) GLEW
[2021-04-21 12:37:54] --- Log opened.
[2021-04-21 12:38:02] [VM] Stack index 4096 out of valid range [0..4095]!
[2021-04-21 12:38:04] --- Log closed successfully.

Here is a directory listing:
04/21/2021 12:41 PM <DIR> .
04/21/2021 12:41 PM <DIR> ..
11/26/1990 04:30 AM 7,976 ADL.DRV
04/28/1991 11:35 PM 9,850 AUDBLAST.DRV
04/29/1991 02:10 AM 853 AUDCDROM.DRV
01/15/1991 08:42 AM 5,082 AUDDISNY.DRV
01/21/1991 01:48 PM 32,030,720 AUDIO033.002
01/21/1991 01:33 PM 5,830 AUDIO033.MAP
01/30/1991 04:23 AM 30,652,416 AUDIO034.002
01/30/1991 04:23 AM 5,830 AUDIO034.MAP
01/30/1991 05:18 AM 31,016,960 AUDIO049.002
01/30/1991 05:18 AM 5,830 AUDIO049.MAP
12/28/1990 01:20 AM 31,414,272 AUDIO081.002
01/21/1991 09:50 AM 5,860 AUDIO081.MAP
01/21/1991 12:20 PM 32,499,712 AUDIO133.002
01/21/1991 12:20 PM 5,830 AUDIO133.MAP
01/30/1991 05:03 AM 32,430,080 AUDIO134.002
01/30/1991 05:03 AM 5,830 AUDIO134.MAP
12/28/1990 12:42 PM 31,477,760 AUDIO181.002
12/28/1990 12:42 PM 5,860 AUDIO181.MAP
03/05/1991 01:58 PM 9,204 AUDPS1.DRV
02/14/1991 08:49 AM 9,363 AUDTANDY.DRV
04/29/1991 03:37 AM 5,860 CDAUDIO.MAP
09/05/1988 04:24 AM 507 GODIR.COM
04/11/1989 06:57 AM 446 IBMKBD.DRV
12/20/1991 02:18 AM 27,784 INSTALL.EXE
03/16/1989 03:36 AM 7,322 INSTALL.HLP
10/12/1990 12:49 PM 607 JOYSTICK.DRV
04/29/1991 06:34 AM 39 MGCD.BAT
12/20/1991 02:50 AM 116 MGCD.CFG
03/04/1991 12:23 PM 133 MGCDMT.CFG
03/07/1991 03:10 AM 130 MGCDPS1.CFG
04/29/1991 06:49 AM 133 MGCDSB.CFG
03/04/1991 12:22 PM 132 MGCDTDY.CFG
04/29/1991 06:34 AM 42 MGCDZ.BAT
03/04/1991 12:22 PM 132 MGCDZ.CFG
11/26/1990 04:28 AM 1,989 MT32.DRV
01/16/1992 08:08 AM 6 PATCHES.001
03/08/1991 04:26 AM 4,369,438 RESOURCE.001
03/08/1991 04:11 AM 5,790 RESOURCE.MAP
01/16/1992 08:16 AM 3,660 SCRIPT.043
12/12/1991 05:00 AM 2,060 SCRIPT.313
01/13/1992 09:45 AM 117,510 SIERRA.EXE
01/15/1991 08:43 AM 124,553 SIERRADZ.EXE
11/26/1990 04:29 AM 1,448 STD.DRV
05/06/1991 06:21 AM 4,307 VGA320.DRV
05/06/1991 06:21 AM 4,369 VGA320M.DRV

45 File(s) 226,283,631 bytes

2 Dir(s) 655,010,435,072 bytes free

comment:6 by exoscoriae, 4 years ago

It may be worth noting, this disc has a single audio track. It is clearly designed to be used by the game, as it is a combination of voices, background sounds (water running), and nursery rhymes.

I have seen other copies of the game that do not have any digital audio.

comment:7 by exoscoriae, 4 years ago

I just went and found a copy that had no cd audio. ScummVM was able to start that one without issue.

comment:8 by sluicebox, 4 years ago

Interesting, nice job narrowing it down. Could you enter this command into the ScummVM debugger when it crashes and report the output? (should just be a number)

vo MG printLang

This will show what language the game thinks it is

comment:9 by exoscoriae, 4 years ago

0000:0001 (1)

comment:10 by exoscoriae, 4 years ago

also, for the file listing I sent earlier, that was straight off the cd. On my folder I am launching from I have those files as well as track1.flac, which was ripped from the disc in an attempt to preserve the cd audio. I doubt that matters right this second, but I wanted to record that difference for the sake of completion.

comment:11 by sluicebox, 4 years ago

Wow it's looking like you have a very unusual version of this CD. Are you on the ScummVM Discord by any chance? I have maybe more questions than I can jam into this thread. =)

According to the files you have a multi-lingual version with every language *except* English. Each of those AUDIOXXX.002/MAP files is the speech audio for a language, where XXX is the language code. But you're missing the 001 set for English.

It's hard to imagine Sierra shipping a CD with German, French, Spanish, Italian, Japanese, but *not* English. But you have one, and you also have script patch files that aren't in the versions I have, and one is dated 1992 which is later than everything else.

The CD audio won't be related to this; it's just the music.

comment:12 by exoscoriae, 4 years ago

That is odd... as the game plays in english for me. I have it running in dosbox. And yes, I have discord. I'll head over there soon.

comment:13 by sluicebox, 4 years ago

After troubleshooting this on Discord, this version is a hybrid where the English speech is indeed on the CD audio track (like Jones CD) but the speech for all the other languages are in resource files.

This appears to have required a custom interpreter to handle this, as it has new error messages:

Unable to initialize your CD-Rom drive for audio playback.
You will not be able to play the 'ENGLISH' version.

This is transparent to the game scripts, as they're the same in every version. They call kDoAudio SetLanguage and test the return value to see if they can indeed offer the language, and update the main menu accordingly. I've disassembled the set-language function in the interpreter and indeed it handles language 1 (English) completely differently.

The infinite script loop error is because we're not setting a return value from kDoAudio SetLanguage. We're giving it the Jones CD treatment and passing the call to kDoCdAudio which isn't setting a return value.

I'm working on sorting this out but even once it's fixed, this version won't be doing English audio with just the resource files. It will require providing the CD audio track.

This is a January 1992 version which appears to be the final one. Its two script patch files clean up Jack Be Nimble code and significantly restructure the Hey Diddle Diddle script.

comment:14 by sluicebox, 4 years ago

Owner: set to sluicebox
Resolution: fixed
Status: newclosed

Fixed in: https://github.com/scummvm/scummvm/commit/77b93c77ab4a1236cacb657a35bf1b3296534a4a

Thanks again for reporting this; bring on the weird versions! =)

Note: See TracTickets for help on using tickets.