X Tutup
Skip to content

SCUMM: Add enhancement for missing message when entering ship's hold#6540

Merged
bluegr merged 1 commit intoscummvm:masterfrom
eriktorbjorn:scumm-monkey-enter-hold
Apr 7, 2025
Merged

SCUMM: Add enhancement for missing message when entering ship's hold#6540
bluegr merged 1 commit intoscummvm:masterfrom
eriktorbjorn:scumm-monkey-enter-hold

Conversation

@eriktorbjorn
Copy link
Member

@eriktorbjorn eriktorbjorn commented Apr 6, 2025

The first time Guybrush enters the ship's hold, there is a message where he remarks that the whole thing reeks of monkeys. But the way it's scripted, it's only shown if it has already been shown. Here's how Nutcracker renders the script:

	enter { ; ENCD LECF_0001/LFLF_0008/ROOM/ENCD
		start-script bak 200 ()
		break-here
		if (B.321) {
			B.321 = 1
			say-line "Yech!!!\\xFF\\x03The unmistakable stench of Monkeys!!!\\xFF\\x03This whole ship smells like hot, sweaty primates.\\xFF\\x03I knew I should have taken it for a test sail."
		}
		end-object
	}

I assume that variables are automatically initialized to 0, because these are the only references I can find to B.321. We can enable the message by inverting the check:

scummvm-monkey-2-00002

In most versions, you should be able to reach the scene easily by using boot param 2222. Alternatively, you can teleport to room 9 and walk down into the hold.

I have tested this with:

  • English VGA CD version.
  • English VGA floppy version.
  • English Mac version (two different ones).
  • English Sega CD version.
  • English Special Edition. (The lines are voiced there.)

Theoretically it could also apply to the "Ultimate Talkie" version, but we don't expose the enhancement settings to that version because of how many script changes it already includes.

But I could really use some help in testing it for the other versions and translations.

The first time Guybrush enters the ship's hold, there is a message where
he remarks that the whole thing reeks of monkeys. But the way it's
scripted, it's only shown if it has already been shown. We can enable
the message by inverting the check.
@dwatteau
Copy link
Contributor

dwatteau commented Apr 6, 2025

That’s the kind of content restoration I love!

I have a vague memory that I may have a version where it was enabled. Unfortunately I won’t have access to all my game editions this week.

(It might just be me misremembering things, though.)

@eriktorbjorn
Copy link
Member Author

I have a vague memory that I may have a version where it was enabled.

I guess I should double-check that it can't be triggered in any other way.

@eriktorbjorn
Copy link
Member Author

eriktorbjorn commented Apr 6, 2025

Judging by Nutcracker, at least in the English DOS CD version there are no references to that flag or that message outside of the entry script. So I see no possible way of triggering it in any other way.

@eriktorbjorn
Copy link
Member Author

When asking around on Facebook, two people so far said they recognized the message but one admitted he might be suffering from the Mandela effect.

Aric Wilmunder chimed in to say that his copy of the script (from March of 1992) had this bug. Facebook probably made mincemeat out of the formatting, but this is probably what he meant the script looked like:

enter {
    start-script bak run-water
    break-here
    if (said-hot-monkey-line) {
        said-hot-monkey-line = true
        say-line SH-HULL-LINE1 ;"Yech!!!":
    }
}

He agreed that it should have been if (said-hot-monkey-line is false) or if (!said-hot-monkey-line), and speculated that it might have been changed during the FM Towns conversion. He suggested looking at the 16 color version. Unfortunately I don't have that one, but a YouTube playthrough I found didn't have the message. So the mystery remains unsolved for now.

@dwatteau
Copy link
Contributor

dwatteau commented Apr 7, 2025

Very interesting.

So Aric sometimes looks in his Vault for such stuff, very cool. I may have a few things where it'd be quite useful (e.g. that "cut" script where Wally would cry for help when you start walking down the stairs in LeChuck's fortress in Monkey2) but I guess that's something for later 😄

Anyway, this change looks good to me. Don't worry about that vague memory of mine. Maybe it was in the patches of the Ultimate Talkie edition. I don't have access to all my games this week, but it's OK to me to check them myself after it's merged.

@bluegr
Copy link
Member

bluegr commented Apr 7, 2025

Thanks for your work! Merging

@bluegr bluegr merged commit d06c600 into scummvm:master Apr 7, 2025
7 checks passed
@dwatteau
Copy link
Contributor

Hi,

It appears that this caused a V1/V2 regression in daily builds.

Commit 920513e should explain why and should provide a quick fix for this.

@eriktorbjorn: Could you check whether this new change is fine to you? Thanks!

@eriktorbjorn
Copy link
Member Author

eriktorbjorn commented Apr 14, 2025

@dwatteau Thanks for catching that! I remember being a bit worried about it at first, but thought I was safe. I didn't realize that earlier versions used o5_notEqualZero() with a different readVar().

I think this is the only use of o5_notEqualZero() in that script, so that we wouldn't really have to check which variable it used at all. But that seemed unnecessarily optimistic to me. So the current version looks good to me.

@dwatteau
Copy link
Contributor

OK, thanks!

Coming back to this:

When asking around on Facebook, two people so far said they recognized the message but one admitted he might be suffering from the Mandela effect.

So, I've checked all the copies I have (including the ones I had in the Monkey Island Anthology from LimitedRunGames), and yeah, I was misremembering and having a Mandela effect too. None of my English or French copies displayed it, before this enhancement.

The Ultimate Talkie edition didn't display it either.

I guess I had a memory of having already seen this line, because of… the years I spent working on my own translation with scummtr, and never finishing it, eh.


Also, for posterity, here was Ron's answer about this game script:
https://mastodon.gamedev.place/@grumpygamer/114299438195152396

"[...] Not sure I'd call that a coding error. The lines were just cut. But what do I know. [...]"

So yeah, maybe it was originally cut because it was a bit long, or something like that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

X Tutup