Skip to content

Add NSIS Windows installer #1645

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

RedBlackAka
Copy link

@RedBlackAka RedBlackAka commented Jul 15, 2025

Addition of an NSIS Windows installer to Cemu's build and distribution. Addresses #1491

Installers are more familiar to many Windows users and have the following benefits:

  • Automatically creates shortcuts on the Desktop and in the Start Menu
  • Appearance in Apps and Programs, and uninstallation through it
    • Cleans registry leftovers
    • User files in AppData\Roaming remain untouched
  • Gives the application a dedicated default path in AppData\Local, rather than just leaving it float in Downloads or Documents, which is true for most users
    • For inexperienced users, this can avoid problems caused by OneDrive syncing
  • Automatically assigns Rom files (.wud, .wux, .wua) to be opened with Cemu
  • Portable single-file installer for easy distribution and offline updates

The .nsi file is based upon the one from Azahar (originally taken from Dolphin), which I have touched-up recently.

Tested and verified as working.

I have also adjusted spacing for consistency in the build files.

@Exzap
Copy link
Member

Exzap commented Jul 15, 2025

One question, I assume this causes problems with the auto-updater in Cemu since by default there is no write access to C:\Program Files? How would we handle that?

The .nsi file is based upon the one from Azahar (originally taken from Dolphin), which I have touched-up recently.

The original file is GPLv2 licensed which is incompatible with our MPL-2.0 license. I assume you are not the original author (or at least not the only one), so there are multiple ways to solve this:

  • Rewrite the file from scratch without using GPL licensed code
  • Ask the original author(s) to grant us a special exemption
  • Ask the original author(s) to dual license the file under GPLv2 and MPL-2.0 (or anything less restrictive and non copyleft would also be fine, e.g. MIT or BSD)

@RedBlackAka
Copy link
Author

One question, I assume this causes problems with the auto-updater in Cemu since by default there is no write access to C:\Program Files? How would we handle that?

Overlooked that, that is indeed an issue and updates do not progress without opening as administrator. The already running process cannot be elevated, so to do it smoothly, having it in Program Files would require splitting out the updater into a separate exe that would be requested to run as administrator, or making the updater detect if the installed version is used and instead download and run the newest installer. The installer gives the choice of both installing system-wide (Program Files) or just for the user (AppData\Local). So the simplest solution for now would be to just cut system-wide. Would potentially see how to solve system-wide later then (if you permit larger changes to the updater).

In regard to license, I have now asked in Dolphin and Azahar for permission of use.
However noticing this:

Cemu is licensed under Mozilla Public License 2.0. Exempt from this are all files in the dependencies directory for which the licenses of the original code apply as well as some individual files in the src folder, as specified in those file headers respectively.

Can I simply use the original GPL-2 license for this file?

@Exzap
Copy link
Member

Exzap commented Jul 16, 2025

Can I simply use the original GPL-2 license for this file?

Short answer is no, we cannot include a GPL-2 source file. Some other licenses are compatible (like BSD and MIT) hence the paragraph you quoted, but GPL is very strict in it's copyleft requirements.

@RedBlackAka
Copy link
Author

RedBlackAka commented Jul 18, 2025

I have contacted the earliest documented author delroth, who gave me full permission to use their parts under any open license, plus made further changes that make me responsible for most of the modern file (I give permission for licensing under MPL-2.0 lol). So licensing should be fixed now.

Installer is changed to be user-only, and I now actually don't see any need for a system-wide one in this case. Also made several improvements and cleanups, fixed things I missed, plus mentioned in the README that it is available as both installer and portable.

Did some more throughout testing with it and would say that it is in a mature state!
Try it for yourself here:
cemu-installer-windows-x64.zip

License, user-install only and cleanups, mention in README
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.

2 participants