I am in the midst of a project to review nearly 30 doujin freeware Japanese visual novels that were translated into English between 2004 and 2008 as part of the al|together translation festivals. With three exceptions, all of the English versions of the al|together visual novels were built with ONScripter (and its English variant, ONScripter-En), a free and open source implementation of NScripter, a Japanese visual novel scripting engine. In June 2022, I wrote an article about running the Linux versions of the translations of the visual novels with ONScripter-En. That guide was based on my experience with Manjaro Linux, wherein I installed ONScripter-En from the Arch User repository and then executed it from the command line in the folders of the relevant games. In this post, I will demonstrate another way to run the Linux versions of certain ONScripter visual novels without installing anything system-wide.

Before continuing, note that I am writing this post as a follow-up to my guide on running Linux visual novels with ONScripter. Thus, unless you are already very familiar with ONScripter visual novel issues (in which case this article may not contain too much news for you), I recommend reading the original article before continuing here.

In August, I switched from Manjaro Linux to EndeavourOS. EndeavourOS, like Manjaro, is based on Arch Linux. Moreover, it is much closer to Arch Linux than Manjaro is, meaning installing packages built for Arch is generally better on EndeavourOS than on Manjaro.

However, after recent updates, I found myself unable to install ONScripter-En from the Arch User Repository. While I am looking into the issue, I was curious whether there was another way to run the native Linux versions of my visual novels that require ONScripter-En to be installed. While I was able to install the ponscripter-sekaiproject package on EndeavourOS just the same as I was able to on Manjaro — and it works the same as well– but ONScripter-En works better for most of the visual novels that I am currently reviewing.

After reading this guide, see my follow up guide on how go frome a .exe file for an ONScripter-En visual novel to running the game natively on Linux. That process involves extracting the contents of the .exe before using the steps outlined generally in this guide.

Note

While I figured out this second method of running certain ONScripter-En games on Linux, I note repeatedly in the article that I am not the foremost authority on the subject (albeit considering the small number of people who are interested in this subject, I may now qualify as something resembling an authority). If you happen to be an expert and believe that something could be explained more accurately or clearly, or that some information is missing, please let me know via our Contact Page or a Hypothes.is annotation. I will be more than happy to credit anyone who can help make this a more useful guide for Linux-using niche visual novel enthusiasts.

Installing onscripter-en locally in game directory

I discovered on a site called Kiasernet, one of the best extant resources for ONScripter-En, that there is a way to run the Linux versions of the older ONScripter visual novels without installing it system-wide. Let us turn to updating ONScripter-En Games in the resource guide (see archived version).

Kaisernet has a good description of how this works, so I will offer a pictorial explanation instead. For this example, we will use Shooting Star Hill, a very good visual novel from the al|together project that I reviewed favorably in February 2022. When the game is downloaded, it comes in a compressed folder. After extracting the folder, we see its contents:

Linux directory for ONScripter-EN visual novel Shooting Star Hill after the game was first downloaded and extracted.

Shooting Star Hill’s directory contains six files. The actual executable is onscripter, however, double clicking it does not launch it. Let us try running it from the terminal…

Linux CLI output after failing to execute onscripter due to segfault in Shooting Star Hill visual novel directory.
For those who are curious — I use Terminator as my main terminal emulator.

We run into an error. Note the error is not always the same. Trying to execute onscripter in the Linux version of Red Shift, another visual novel from the collection, runs into a segmentation fault.

If I had ONScripter-en installed system-wide, I could run onscripter-en in the directory to launch Shooting Star Hill; however, for reasons I explained, that is not my situation at the moment. The Kaisernet site offers a different method. I quote from the relevant section:

It is necessary to update all of your ONScripter games to the latest version of ONScripter-EN. It fixes crashes on recent Windows versions, adds important features which were not previously present, makes it possible to use ons.cfg options, and allows you to keep all of your save files in one convenient folder. Before dropping the latest executable into your game folder, make a text file named game.id, containing ONLY the name of the game: this determines the name of the folder in which your save files shall be stored (If you neglect to do this, saves are stored in randomly-named folders). Then, download the last ONScripter-EN build for Windows (with SDL), Linux (x64), or Mac OS X, and unpack to your game folder.

Although this is primarily about updating ONScripter-En versions, the last part caught my attention. “[D]ownload the last ONScripter-EN build for … Linux (x64) … and unpack to your game folder.” It provides download links.

Let’s try.

Using wget to download newest onscripter-en version tar file into Shooting Star Hill visual novel directory.
I know one can download and extract in a single command… but I confess I use the GUI to extract compressed files. Let us just say I wanted to give a GUI demonstration too.

We have downloaded the file into our Shooting Star Hill directory.

Shooting Star Hill visual novel directory with onscripter-en build tar file added.

Now we extract the contents of the tar file in the Shooting Star Hill directory. Let us look inside.

ONScripter-en sub-directory in Shooting Star Hill visual novel directory.
I unzipped the onscripter-en tar file and then entered the unzipped directory. You can see that this is now a sub-directory of the main shooting_star_hill directory.

The directory contains four files – including an onscripter-en executable. However, Kaisernet had one additional instruction before executing.

[M]ake a text file named game.id, containing ONLY the name of the game: this determines the name of the folder in which your save files shall be stored (If you neglect to do this, saves are stored in randomly-named folders).

Creating a game.id file for an ONScripter-en visual novel with the XFCE text editor.
Pictured here is the Mousepad text editor, the default text editor for the XFCE desktop environment. I tend to use Mousepad for editing simple text files in lieu of my favorite markdown editor, Ghostwriter.

I followed the instructions and created a text file called game.id using my text editor, and added nothing but the game’s name. Having done that, it’s time to try executing onscripter-en.

Launching the Linux version of the Shooting Star Hill visual novel from the terminal by running onscripter-en.
Note: I confess I don’t know what all of the terminal output means, but everything works as expected.

Perfect. It launched as expected. Now, let’s make sure that the saves are working.

Creating a save in the Shooting Star Hill visual novel.
Creating a save…

Finally, I will close out of the game and see if my save is still there when I return.

Linux terminal output for starting and quitting Shooting Star Hill.
Quitting and restarting.
Load screen for Shooting Star Hill visual novel.
My save is still there.

Excellent. Everything works.

Tips and notes

While I am hardly qualified to dispense too many tips and tricks since I only discovered the tip about which I am writing yesterday, I do have a couple of notes for readers.

Firstly, I recommend keeping a local copy of the onscripter-en tar file. Whenever you have a game which requires it, simply extract the local copy of the file into the game’s directory instead of downloading it each time.

Secondly, note that just because a visual novel is an older ONScripter release does not necessarily mean that this process will be required. For example, most of the Linux versions of the al|together visual do require the user to run onscripter-en. However, a few work without any additional steps. One notable example that I have already reviewed is Night of the Forget-Me-Nots. In that case, you can execute “forgetmenots” and it works perfectly on Linux with no extra steps (albeit – it does have a MIDI sound issue which I discussed in a separate guide).

Linux directory for Night of the Forget-Me-Nots visual novel.
Directory for Night of the Forget-Me-Nots Linux version.
CLI output for executing Night of the Forget-Me-Nots visual novel on Linux.
Executing Night of the Forget-Me-Nots success.

It is always worth checking if the Linux executable runs without extra steps before running onscripter-en.

Thirdly, I have only tested this method with a few of the al|together games, and it is entirely possible that some onscripter-en games may have particular requirements which do not work perfectly with this method. The Kaisernet page includes much more information than what I am writing here about different ONScripter issues.

Finally, while the guide contains downloads for Windows and MacOS, I have only tried it on Linux, and thus have no Windows- or Mac-specific commentary. I note that with respect to the al|together visual novels, all of the Windows executable that I have tried work under Wine with no extra configuration or ONScripter fiddling.

Setting up game with Lutris or other GUI

Now let us look at another tip. What if you prefer to launch all of your games from a GUI interface instead of navigating to their directory and manually executing onscripter-en, whether through your file manager or the command line? Let us add Shooting Star Hill to Lutris.

(Regular readers may recall that I explained in an earlier article how to configure a Japanese language environment for Windows games running under Wine in Lutris. Shooting Star Hill does not require a Japanese environment, but I thought that guide may be useful for people who are following this article.)

First, we want to add a locally installed game to Lutris.

Menu for adding a locally installed game to Lutris.
My Pokémon cursor highlights the correct option.

Now we can begin configuring our Lutris shortcut.

Creating Lutris launcher for Shooting Star Hill visual novel on Linux system.

We are running the native Linux version of Shooting Star Hill here, so I choose Linux as our runner. However, do note that the Windows version runs well under Wine on Linux – my review of the visual novel was based on the Windows version.

Now the key to setting up Shooting Star Hill properly is choosing the correct executable for Lutris. Here, it is very important to select the onscripter-en executable that we added to the game’s directory and not the onscripter executable which was present initially.

Setting onscripter-en executable to configure Shooting Star Hill visual novel in Lutris.
By default, Lutris will use the executable’s directory as the working directory. That is what I want here, so I do not need to designate a working directory. However, in the event you want to have a different working directory, you can designate it in the working directory field. None of the other fields are relevant to what I need here.

We do not need to configure anything else to get the game up and running. Now let us see if it works from Lutris’s menu:

Running Linux version of Shooting Star Hill visual novel with Lutris.
For those who may be wondering, all of my desktop backgrounds peeking from behind some of the screenshots are from 5 Centimeters Per Second.

For whatever it is worth, this manual method of adding onscripter-en to a game’s directory instead of installing installing it system-wide makes it a bit easier to set the game up in Lutris or similar tools or to create an application shortcut. I personally use Lutris, but the process should work similarly with other GUI tools which manage locally installed games.

Conclusion

Running some of the native Linux versions of older ONScripter visual novels is sometimes less than intuitive. I had previously figured out how to do so after installing onscripter-en system-wide. This secondary method is useful for Linux distributions for which ONScripter-en is not packaged or for those who want to avoid installing it system-wide for one reason or another. In my case, there is some issue with installing the onscripter-en package from the Arch User Repository at the moment (and installing it from a local package build) which required me to seek a different solution. The new solution requires more work in that the onscripter-en directory must be extracted into each individual game directory, but it is also easier to use with graphical game managers.

In general, I still recommend installing ONScripter-en system-wide if it is practicable on your Linux system and if you will be using it often. Do note that the Kaisernet link includes .deb packages for onscripter-en (these are for Debian/Ubuntu-based systems), although I have not tried them. But for certain situations and use cases, the local ONScripter-en method may be a better option.

For those who have .exe files for ONScripter-En games, I wrote about a process for extracting the contents of those .exe files and running the games natively on Linux in the way described in this post.