Skip to content

Instantly share code, notes, and snippets.

@bgK
Last active September 13, 2026 14:28
Show Gist options
  • Select an option

  • Save bgK/4889543f687a2dfc21992ea0c1615bac to your computer and use it in GitHub Desktop.

Select an option

Save bgK/4889543f687a2dfc21992ea0c1615bac to your computer and use it in GitHub Desktop.
Myst III HD modding guide

Introduction

ResidualVM is gaining the ability to create mods for Myst III. It is possible to replace the original game assets with hi-resolution versions. This combined with the emergence of machine learning image upscaling tools enables the creation of a hi-resolution mod for Myst III.

I am releasing here a version of ResidualVM usable to create and play such a mod. However, graphics processing is not my forte. I need help from the community to figure out how to upscale the original assets to produce the best visuals and to put together a mod.

A HD mod has already been successfully completed for The Longuest Journey, another game supported by ResidualVM: https://tljhd.github.io/. Hopefully the the same feat can be replicated with the same quality for Myst III.

Example mod

I am providing here a proof of concept mod I've used to test the programming changes. This example mod is not meant to be pretty, nor to be used by regular players. It is not representative of the visual quality the final mod might have. It contains an upscaled version of most of the exterior of the J'nanin age and the English journals. It is meant to be used with the DVD version of the game.

Screenshots:

Downloads:

To try the mod, set ResidualVM up to play Myst III (https://github.com/residualvm/residualvm#4-running-myst-iii). Then uncompress the mod archive in the game folder, so the mods directory is at the same level as the Data and M3Data directories. Then run the game using the ResidualVM version from this post.

Modding guide

In this section I will succinctly explain how to create a simple mod. You can contact me for more details (by private message here or on the #myst IRC channel on libera.chat).

The first step is to configure ResidualVM for modding. Open the residualvm.ini file and perform the following changes (https://github.com/residualvm/residualvm#61-location-of-configuration-file):

  • Add enable_external_assets=true in your existing myst3 target section. This will cause ResidualVM to prefer loading files outside of the game archives.
  • Add debugflags=modding in the [residualvm] section. This will make ResidualVM to print the names of the external files it tries to open.

Next, extract the game archives to access the assets. To do so, open Myst III in ResidualVM, open the debug console using the ctrl-d keyboard shortcut and enter the dumpArchive LEISnodes.m3a command. This will create a dump folder containing the assets for the J'nanin exterior in the ResidualVM folder. There are a lot of files. You can use the log output of ResidualVM to match the files to their in-game use.

ResidualVM will now load the files from the dump directory instead of from the game archives if it can find them. It will look for files with the following extension in that order: .dds, .png, .jpg. This means it's possible to experiment very quickly. Modify the extracted files, go to the corresponding location in game and observe the changes.

Next the modded assets need to be prepared for packing. PNG files are fine to experiment with but are not suitable for distribution as they are bulky and slow to load. ResidualVM expects the images to be in DDS format to prepare the mod for distribution. It accepts uncompressed, BC1, BC2, BC3 and BC7 compressed DDS files.

For the example mod, I've used the following process:

Next the prepared assets can be packed into a mod archive. Open Myst III in ResidualVM and enter the modArchive LEISnodes.m3a command. This will pack the modified files from the dump directory into a LEISnodes.m3a.patch file created in the ResidualVM folder. This command takes a long time to run as it compresses some of the files. You can disable the compression to experiment quickly using the modArchive LEISnodes.m3a false command.

Finally, the mod is ready to be tested and distributed. Place the mod archive in a directory corresponding to the mod name in the mods directory in the game directory. Set enable_external_assets to false in residualvm.ini so the files are loaded from the mod archive instead of the dump folder.

The same process can be used to mod the following asset types:

  • Bink videos (The example mod replaces two of the Squee videos)
  • Cursors (Bitmap files in RSRC.m3r)
  • Inventory and font used in the load and save menus (.data files in RSRC.m3r, open as raw with The Gimp)

Note that there are some limitations:

  • The mod archives are limited to 4 GB. Generate multiple archives to work around the limitation.
  • Some of the videos will not display at the correct scale when they are loaded from the dump directory. They should play correctly once packed.
  • I have probably left behind a number of bugs :) Report them to me so I can fix them.
@MsSepeteus

MsSepeteus commented Apr 8, 2025 •

Copy link
Copy Markdown

Hi @ctoroman

If you mean that clip where Saavedro says at the very beginning "It's not so easy, isn't it Atrus", I never found it from dumps.
I couldn't dig any deeper, because I don't know which packer is used. Maby @bgK can give a clue.

Edit:
I think that I found that missing clip, It's LEOS-24004.bik in LEOSnodes.m3a but with alpha channel.
If you play it by radtools or ffmpeg, it's transparent. Thats why I skipped that clip a couple of years ago when I converted those clips.

Because I couldn't find anything else and it's only clip with solid mask trough, so I converted that clip without alpha and it works.
I think it's a bug in the original game(not residual engine), which they fixed removing that mask by code.

I tested that in console.. go leos 6 > fillinventory , put symbol on the scanner , and correct clip plays at HD-30fps.

I'll put fixed LEOSnodes.m3a.patch to moddb for testing.

@ctoroman

Copy link
Copy Markdown

Hi @MsSepeteus

Thanks a lot, I'll test it, I'll write about the result.

@ctoroman

Copy link
Copy Markdown

Hi @MsSepeteus

I've tested it. Everything all right)

@MsSepeteus

MsSepeteus commented May 25, 2025 •

Copy link
Copy Markdown

Hi @bgK

Steam has switched to scummvm with latest update of the game, so it's more complicated to use your build on steam.

Does your team have plans to add modded assets support for myst3 at scummvm ?

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