RPG maker launcher for MacOS/OSX [3.3.4]

, , , ,

This topic is to keep parity with the old forum and for bug reporting/support. Check out Xenolauncher for a more versatile launcher!

A tool to let MacOS/OSX gamers play most RPG MV, MZ, XP, VX, VX Ace, 2000, and 2003 games natively without the need to manually port each one.

How to open an app from an unidentified developer <—You will need this for first setup

By downloading this application you agree to the end user license agreements for the RPG maker VX Ace, VX, and XP RTP applications.

GitHub <—Recommended Download Link (Apple Silicon / ARM is supported.)

If you have any suggestions please leave them here!

v3.3.4 Universal2 (both intel and apple silicon)

Changelog

Changelog:

Added getPixel Patch to fix possible NaN/Infinity bug in some games

Edit 3/21/26: Added version number to bundle, no functional change

Under the hood

This is a brief explanation on how it works:

1. Downloads nwjs, mkxp-z, and EasyRPG

2. Checks package.json, Game.ini, or RTP_RT

3. Unpacks game_en.exe if it exists

4. Points nwjs, mkxp-z, or EasyRPG to directory

5. Launches game

FAQ

Q: How to use?

A: Open the app, making sure to bypass apple, and tell the app where the game is.

Q: This game doesn’t work?!

A: Some games have issues with plugin support. These will need to be manually ported.

Q: [Other Issue]

A: Post it here or as an issue on the GitHub repo.

Continuing from the thread on the old forum…

I think you may be misunderstanding what I did. Xenolauncher itself is an nwjs app, but it was using a version of nwjs that’s too new for my machine, so I essentially downgraded its nwjs to the version that ships with MZ (only reason I chose that version was because it happened to be handy; maybe it would’ve been better to choose the latest version that does run on my machine).

I did indeed install MKXP-Z through the launcher, so that shouldn’t be the issue. Though, even if it was, I would’ve expected to see an error message about it. (Side note: the fact that NW.js is a module you need to install is pretty silly when the launcher itself is built on nwjs. The NW.js module should just be installed by default.)

Given that I’m running your app with a lower nwjs version than is officially supported (in other words, it’s kind of like I made a custom build of Xenolauncher), I would’ve totally understood if there were errors because you used an API that didn’t exist yet in the version I’m using; but like I said, there were no errors in the console.

Honestly, the main problem here isn’t that it didn’t work. The main problem is that there was absolutely no feedback on why it didn’t work. If it gave a useful error message, I’d either be able to fix it, or just conclude “Oh, this isn’t going to work”. But there’s no feedback at all. I just click or double-click, and absolutely nothing happens.

Ah ok, I thought you were still using the old launcher. In NWjs there are actually two seperate logs (I didn’t design this), one for the built in browser (the one from pressing f12) and one that gets output to the terminal (only shows up if you launch it that way).

It’s a terrible design, and I plan on getting a better logging system going so issues are easier to diagnose.

To see the other output, open up the terminal, type:

open [path to app]/Xenolauncher.app

If that doesn’t work, try:

./[path to app]/Xenolauncher.app/Contents/MacOS/nwjs

As for why there is a separate NWjs module, its because each “copy” of the app is only allowed one active instance, so you can’t have Xenolauncher open and also open up the game without a second copy. Also having the module allows for easier management of multiple NWjs versions.

Okay, that got me somewhere. It said “Error: Command failed” and gave a path to a file in Application Support:

xenolauncher/modules/mkxpz/deps/mkxpz/Z-Universal.app/Contents/MacOS/Z-Universal

I dug into the location and found that the Z-Universal.app bundle didn’t even have a MacOS folder, only a Game folder… but right beside it was a zip file which apparently contained the app that was supposed to be there. No idea how that happened.

Extracting that zip and replacing the app bundle managed to elicit a reaction from double-clicking the game entry in the launcher, but it still popped up an error:

Failed to mount xenolauncher/modules/mkxpz/deps/RTP/RTP/RPGVXace (not found)
(the above path is, again, relative to Application Support)

And sure enough, there is no RTP folder under mkxpz/deps. Does that need to be installed separately somehow? Or should I try reinstalling mkxpz?

Ok, that narrows down the problem. The installation likely failed halfway through, and you should try to reinstall the module.

The module installer window should have some basic logs to tell you how far the installation has progressed. It will install mkxpz, the RTPs, and some supporting scripts.

If it fails again, post the error here, or try using an NWjs version above 0.70 if you can.

1 Like

It did indeed have an error while installing:

Failed: Cannot find module 'node:stream/promises'

So I updated its nwjs to 0.99 (because I happened to have that version downloaded), and it looks like that worked. The install completed successfully, and the game launched (though it was a bit delayed, so I accidentally ended up with 6 copies of the game running).

It’s minor, but I’d say it would be nice if the Game Engines list would distinguish “Installed” from “Failed Install”. I probably would’ve figured this out much faster if it had been obvious from the beginning that it failed to install.

yeah, I’ll probably add some checks to make sure all the files are in place before marking a module as installed

Alot of other changes will be made to make the user experience better in an upcoming UI update

1 Like