This is the repository of the launcher for SM64Plus, made using GameMaker 2022.2.
Originally I intended to release the source code for it at SM64Plus's initial launch, but as I was working on the launcher the code for it started getting messier and messier, and I always told myself that I'd release it once I refactored it and made it more presentable.
This never happened, so I'm releasing the code as is. There are a lot of improvements that can be made with the code at places, but it gets the job done well regardless.
I could build all the functionality of the launcher directly into the game, but I chose to go with GameMaker for a few reasons:
Using GameMaker paid off in the sense that it saved me a lot of time I would have wasted otherwise, but it also introduced a couple of problems.
All of these issues (except the last) could be solved with a custom C/C++ extension, but this is not something I have the time to look into at the moment. If anyone wants to help on this aspect, please let me know.
As mentioned earlier, having a dependency on a marketplace extension prevents me from releasing a functional Linux version of the launcher. Once I solve that issue the Linux launcher will be available. This is also the reason why the Windows launcher is compiled for 32-bit as opposed to 64-bit.
Clone this repository. (We can either use git or the green "Code" button that's at the top right of this page.)
Open the project in GameMaker.
Trying to run the launcher directly now would force us to clone the game's repository and recompile the game every single time we want to run the launcher, which is not ideal. In addition, it would try to download the stable branch of the repository, which would likely not work. We need to work with the dev
branch.
So we need to manually build the game according to the Manual Building Guide. The only thing we need to do differently is to use the command git clone https://github.com/MorsGames/sm64plus.git --branch dev
in step 4 instead.
The folder we choose for the cloned repository doesn't entirely matter, just try not to forget it because we will be needing it later.
Run the launcher from GameMaker in debug mode, using the bug icon that's right next to the run triangle. It will tell you to enter the repository path to a specific text file. This repository path is the sm64plus
folder created by the clone command. Do that.
Run the launcher again the same way, and voila!
All the information you will need about the base game can be found in its own repository.