I am in the midst of a project to review nearly 30 freeware Japanese visual novels officially translated into English as part of the three al|together translation festivals which took place in 2005, 2006, and 2008. With only a few exceptions exceptions, all of the English translations were written with the ONScripter-En scripting engine. Most of the 2005 and 2006 ONScripter-En visual novels are available for Windows, Linux, and MacOS. However, a few visual novels, including the 2008 entries, are only available for download for Windows. I have found that all of the Windows executables run on Linux under WINE. However, while I have no objection to running Windows game under Wine or similar compatibility tools such as Proton on Linux, running native Linux versions of visual novels and other games is preferred.
While researching different issues involving running ONScripter-En games natively on Linux, I discovered that there is a way to take a .exe executable for an ONScripter-En game designed for Windows and run it natively on Linux without relying on WINE or a similar compatibility tool.
In this post, we are going to examine the process step-by-step.
Before continuing, let us clarify a few points.
Before continuing with this article, I urge you to read my two articles on running older Linux visual novels with ONScripter-En:
The instant guide will employ the second method, but these directions will also work for those who have ONScripter-En installed system-wide. Do note that in theory this guide should work for games using other versions of ONScripter, including PONScripter, but I am only testing it for ONScripter-En. See my below disclaimer.
No Guarantee This Will Always Work
I cannot guarantee that this guide will work for every ONScripter or PONScripter (an ONScripter fork) .exe. I have tested it with a small number of al|together visual novels from released between 2005 and 2008.
My understanding is that the steps outlined in this guide should work on MacOS provided that the user has ONScripter-En installed or extracts the latest ONScripter-En build for MacOS in the applicable game directory after extracting the contents of the Windows .exe. However, I do not have a Mac and thus cannot test it.
Defining Key Terms
We should clarify a few key terms. NScripter is an older Japanese visual novel scripting engine. ONScripter is a free and open source implementation of NScripter. Many English-language translations of NScripter visual novels are written in ONScripter-En, an ONScripter implementation with English-language support. We will be dealing with ONScripter-En visual novels that came from the al|together festivals. Some English releases of NScripter visual novels are also written in PONscripter, which is a fork of ONScripter. One notable example is the official English language releases of Umineko: When They Cry, released by Manga Gamer. I have found that older ONScripter-En visual novels can be run with PONScripter, albeit sometimes at unintended resolutions.
I noted earlier that some of the al|together visual novels were not written in ONScripter-En. The three exceptions from the 2006 collection were written in KiriKiri, another free and open source Japanese visual novel scripting engine. I have already reviewed one of those three visual novels, Summer, Cicadas, and the Girl. The three KiriKiri games are only available for Windows and require a Japanese language environment to run, and in my review I discussed in the context of running them on Linux. KiriKiri is still used for some modern games; I reviewed Return to Shironagasu Island, a 2018 example. So note that this guide does not apply to the three KiriKiri visual novels from al|together 2006, and if there is a way to run them on Linux without WINE, I am not aware of it. There are a couple of entries from the 2005 and 2008 festivals — including the excellent Crimsoness, which are not written in ONScripter.
For its part, WINE is a compatibility layer for running Windows games on Linux. It will come up in this article because many of the old ONScripter-En games, including every one of the al|together translations, runs well on top of WINE. However, the point of this article is to show how to run these Windows executables natively on Linux without WINE as an intermediary.
Extracting ONScripter-En .exe and Running on Linux
I had the idea to try extracting a Windows .exe and running it on Linux from Kaisernet’s list of NScripter games in English (archived) (note: this page is a great resource for downloading old freeware visual novels). See the following passage:
These are the original, untouched Windows installers; if you do not use Windows, they can be extracted like normal zips.
While I knew that one can extract a .exe file, it never occurred to me to use this process for running an ONScripter game packaged as an .exe on Linux. But this passage, gave me an idea inspired by my two general guides on running ONScripter-En games on Linux (see from ONScripter-En install and after extracting ONScripter-En in game directory).
1. Obtain .exe
For testing purposes, I decided to try an al|together game for which a Linux download is not offered. I reviewed one such visual novel – May Sky – on May 31, 2022 (see my review). The official festival page (archived) for May Sky has direct download links for Windows and Mac, but not for Linux. It is for this reason that my review was based on the Windows version of May Sky running under WINE. But today, we will try to run it natively on Linux instead of on top of WINE. Note that May Sky is also available for direct download for Windows on Kaisernet.
We now have the MaySkySetup[insani][AT2008].exe. Now we need to extract it.
2. Extract .exe
When I reviewed May Sky in May 2022, I ran the executable file under WINE. Today, we are going to extract the contents of the .exe into the current directory. You can extract the .exe with your preferred method. I will use PeaZip, a terrific free and open source file archive utility available for Linux, Windows, and MacOS.
Now we need to open May Sky with PeaZip.
What you see here are the contents of the .exe file. We want to extract these contents into what will be the visual novel’s working directory. I have already created a working directory for May Sky at ~Games/may-sky, so I will extract the contents of the .exe into that.
Now let us see result:
My may-sky directory contains the contents of the Windows .exe. However, the only executables in the directory are maysky.exe and uinst.exe, which are both Windows .exe files. I want to run this natively on Linux, not under Wine. We are still short of the goal.
3. Intermediate Step
Kaisernet’s guide warns users to “add a game.id containing the name of the game inside each installed game folder before playing.” I had to do this in my previous article when I was demonstrating a method for running the Linux version of Shooting Star Hill. However, in May Sky’s case, the extracted contents of the .exe contain a game.id file with the name of the game. Thus, we can skip this step here.
4. Adding ONScripter-En Executable
Your next step will depend on how you are running ONScripter-En. If you have an ONScripter-En package installed on your Linux system, you can cd into the game’s directory from the command line and run onscripter-en (or the relevant command for whatever version of ONScripter you have installed). Thus, in that case, you may skip ahead to part five of this guide (although I still recommend reading about the alternative method here in part 4).
For reasons I explained in my previous ONScripter guide, I do not have ONScripter-En installed on my system. Thus, I will add the relevant file to the game manually.
Although I already have a copy of ONScripter-En on my system, I will fetch it from Kaisernet to demonstrate the steps for those of you who are running Linux and do not have ONScripter-En installed system-wide. Although there are many ONScripter-En versions and forks, I will use the one available on the Kaisernet website, which I have already tested. Those of you trying this on MacOS (or testing a different version on Windows) can download the correct version for your operating system.
Before continuing, two observations:
- I emphasize again that I have not tested this on MacOS – but the process should be the same
- The Kaisernet guide addresses issues with running ONScripter on Wayland. My main desktop uses Xorg, so I cannot comment on Wayland issues, including whether they still exist and, if so, whether a different version of ONScripter could resolve them. However, Kaisernet explained that Linux users for whom ONScripter-En does not work can run the Windows .exe files under WINE. I concur with this assessment, and I have not had issues running the al|together games under WINE.
- Kaisernet notes that ONScripter-En has been ported to BSD, but it does not include links to BSD builds. I do not use BSD as a desktop, so I have no specific guidance other than tthat the process should be similar to what I am describing for Linux with the proper ONScripter implementation.
With those notes down, I will download ONScripter-En from the Kaisernet site:
I downloaded it into my Home directory. The download is a tar file, so we will need to extract the tar file into the May Sky directory – here being the folder to which I extracted the files from the May Sky .exe. For consistency’s sake, I will use PeaZip again:
Now we check our May Sky directory:
The ONScripter-En folder was successfully extracted into the May Sky directory. We can peek inside the folder.
The key file here is the onscripter-en executable. This is what we will need to run to play May Sky.
5. Executing onscripter-en
I could run onscripter-en by double clicking it, but I will use the command line to better illustrate what is happening.
First, from the terminal, I will change into the directory containing the executable:
Now that we are inside the correct directory, we can execute onscripter-en from the command line:
As you can see, we are now running a Linux native ONScripter-En executable for May Sky after having started with a Windows .exe.
Before continuing, I note again that if you have ONScripter-En or a different ONScripter version installed, you can change into the game’s directory (where you extracted the .exe) and execute your ONScripter version from the command line without downloading it from Kaisernet.
6. Bonus: Add to Lutris
Lest you are unpersuaded, I will now create a shortcut for May Sky on Lutris – a popular game manager and launcher for Linux. One of Lutris’s neat features is that it makes it easy to configure compatibility tools for Windows games. However, we are running May Sky as a native Linux game now – so we have no need to take full advantage of Lutris.
As I explained in my previous article on setting up a native Linux al|together game with Lutris, make sure to point Lutris to the onscripter-en executable.
Now we can test it…
As expected, it launches properly from Lutris. We have our makeshift native Linux version of May Sky.
It is usually not necessary for most Linux users to run older Windows executables for ONScripter-En games natively because, at least for the al|together games, they work perfectly fine under WINE. However, I (and most other) Linux users would prefer running native versions of games instead of using WINE. This guide shows how this can easily be done for many ONScripter-En games, likely including many that are not part of the al|together translations. I chose May Sky for the example for two reasons. Firstly, it is one of the al|together games that does not offer a native Linux download (not to mention it is also one of the best al|together games). Secondly, I still need to write an analysis piece on May Sky, and I look forward to doing so running its Linux version instead of the Windows version under WINE.
If you have any corrections or suggestions, feel free to let me know through our Contact Form or with a public Hypothes.is annotation and comment on the relevant part of the article. I will be more than happy to credit useful contributions to my guide.