Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Runtime Issue]: Mercenary game assets confusion #255

Closed
4 tasks done
JeodC opened this issue May 1, 2024 · 3 comments · Fixed by #260
Closed
4 tasks done

[Runtime Issue]: Mercenary game assets confusion #255

JeodC opened this issue May 1, 2024 · 3 comments · Fixed by #260
Labels
bug Something isn't working
Milestone

Comments

@JeodC
Copy link
Member

JeodC commented May 1, 2024

Build Version

current

Operating System Environment

  • Microsoft Windows (32-bit)
  • Microsoft Windows (64-bit)
  • Mac OS X
  • Linux (specify distribution and version below)

Description

The game will check for the existence of Mercenary expansion via registry string. If it doesn't exist, the Black Pyro ship is supposedly unable to be selected at Pilot->Configure (after passing Merc Level 2). #254 attempts to fix that, but Merc assets still failed to load from the steam version of the game where they are located in extra.hog.

Only after installing the CD-ROM, installing the Merc CD, then patching to 1.4, can the game function as expected by copying merc.hog and EXTRA.HOG (renamed to extra.hog) to the other install directory.

In essence #254 is only a partial fix. The underlying cause of this bug is unknown.

File breakdown:

EXTRA.HOG contains the following:
image

merc.hog contains a lot more:
image

In comparing the two, it appears the steam release extra.hog is a copy of merc.hog, and EXTRA.HOG from the CD is missing entirely.

@JeodC JeodC added the bug Something isn't working label May 1, 2024
@JeodC
Copy link
Member Author

JeodC commented May 1, 2024

In the digital releases, merc.hog is renamed to extra.hog, and EXTRA.HOG is renamed to extra1.hog.

@Jayman2000
Copy link
Contributor

The underlying cause of this bug is unknown.

I actually think that this is intentional, and I think that I know the underlying cause. I believe that this chunk of code is what causes the behavior, but I haven’t tested it yet.

Only after installing the CD-ROM, installing the Merc CD, then patching to 1.4, can the game function as expected by copying merc.hog and EXTRA.HOG (renamed to extra.hog) to the other install directory.

Here’s the mechanics of how installing Descent 3: Mercenary via CD fixes the issue. The Descent 3: Mercenary CD has a file in its root directory named AUTORUN.INF. Here’s the contents of that file:

[autorun]
open=setup.exe -autorun
icon=Descent3AutoRun.ico

That AUTORUN.INF file will make it so that when the CD is inserted, older versions of Windows will automatically run setup.exe -autorun. If you run the installer without the -autorun option, then it won’t create the …Uninstall\Descent3 Mercenary registry key.

I believe that this is a crude form of DRM. If you were to download the files illegally from the Internet, then AUTORUN.INF probably won’t get used because you probably won’t bother putting the files onto a CD. If AUTORUN.INF doesn’t get used, then the -autorun parameter probably won’t get used which means that the …Uninstall\Descent3 Mercenary registry key won’t get created. If those registry keys don’t get created, then Descent 3 will refused to load some of Descent 3: Mecenary’s content.

@JeodC
Copy link
Member Author

JeodC commented May 1, 2024

That is only part of the issue. See the latest commit in the PR. Still testing.

@JeodC JeodC linked a pull request May 1, 2024 that will close this issue
9 tasks
@JeodC JeodC added this to the 1.5 Stable milestone May 1, 2024
@JeodC JeodC closed this as completed in #260 May 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
2 participants