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

Before continuing, let us clarify a few points.

Read First

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.

MacOS?

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. (Note: Most current ONScripter-EN builds do not work on the newer Mac CPUs but I understand that Insani is working on builds that will support modern MacOS.)

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 installer 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.

Running wget in the Terminator terminal emulator to download .exe for the May Sky visual novel.
Using wget to download May Sky from the al|together 2008 website. I am using Terminator as my terminal.
May Sky visual novel .exe in Thunar file manager.
You can see the May Sky .exe that I downloaded on the far right. This is the Thunar file manager.

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.

Contents of May Sky visual novel .exe as seen in 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.

Using PeaZip to extract contents of ONScripter .exe file into empty Linux directory.
I opened the .exe with PeaZip and am using PeaZip to extract the contents of the .exe into a folder in the Games directory of my home user directory called may-sky.

Now let us see result:

Extracted contents of May Sky Windows .exe in Linux directory.

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:

Using wget to download ONScripter-En from Kaisernet onto a Linux system.
Using wget to download ONScripter-En from Kaisernet into my Home directory.

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:

Using PeaZip to extract ONScripter-En tar into May Sky game directory.
Using PeaZip to extract ONScripter-En tar into our may-sky game directory.

Now we check our May Sky directory:

May Sky directory on Linux after extract from .exe with additional ONScripter-EN directory.
My Pokémon cursor highlights the important folder.

The ONScripter-En folder was successfully extracted into the May Sky directory. We can peek inside the folder.

ONScripter-EN folder inside May Sky directory on Linux.
ONScripter-En folder inside May Sky (see full path in title bar).

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:

Linux terminal window showing changing directory into folder of ONScripter-EN visual novel extracted from Windows .exe on Linux.

Now that we are inside the correct directory, we can execute onscripter-en from the command line:

Running May Sky visual novel natively on Linux after starting with Windows .exe.
It works.

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.

Configuring May Sky to run native Linux version on Lutris.
Note that I chose Linux as our runner instead of WINE for Windows games.

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.

Designating ONScripter-EN executable for May Sky in Lutris.
Executable file path highlighted.

Now we can test it…

Launching native Linux version of May Sky visual novel from Lutris.
Running May Sky natively from Lutris after starting with .exe.

As expected, it launches properly from Lutris. We have our makeshift native Linux version of May Sky.

Conclusion

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.