How to properly set up Neko Project II Kai to play PC-98 games on Fedora

---
date: Feb 02, 2026
tags:
- Fedora
- PC-98
- Gaming
language: English 中文
---

In search of the sound

Recently, I had a sudden urge to play PC-98 games, so I downloaded some from the great World Wide Web and followed people’s suggestion to use Neko Project II Kai in RetroArch. I started with the Steam version, which turned out to be missing all the cores; Then I tried the Flatpak version, which had the Neko Project II Kai core and could load the games I downloaded, but there was no sound no matter what I tried.

After messing with it for a while, I decided to compile the original Neko Project II Kai instead. I’d heard it was newer and had more fixes compared to the libretro (RetroArch) version. But even after compiling it, there was still no sound. The setup guide on the GitHub page was Ubuntu-only, so I had to do some trial and error to get it working on Fedora.

Eventually, I got it working properly:

Variable Geo 2: Bout of Cabalistic Goddess running on the Neko Project II Kai
Variable Geo 2: Bout of Cabalistic Goddess running on the Neko Project II Kai

I thought, ahh yes, time to write a quick article about audio setup for Neko Project II Kai, but as I started writing, it turned into a complete guide for setting up Neko Project II Kai on Fedora. So, well, here you go!

Installing Neko Project II Kai

Important: Don’t install the libretro version! Clone directly from this repository: https://github.com/AZO234/NP2kai

Install Dependencies

1
2
sudo dnf group install "development-tools"
sudo dnf install gcc-c++ cmake ninja-build nasm /usr/lib64/libusb.so SDL-devel SDL_mixer-devel SDL_ttf-devel SDL2-devel SDL2_mixer-devel SDL2_ttf-devel gtk2-devel libX11-devel fontconfig-devel freetype-devel

Build the Emulator

Navigate to the NP2kai folder and build:

1
2
3
4
mkdir build
cd build
cmake .. -D
make -j

You can then either install it globally with sudo make install or run it directly from the build folder with ./xnp21kai

Setting Up BIOS Files

Before launching the emulator, create the configuration folder:

1
mkdir -p ~/.config/xnp21kai

Then download the required BIOS files from this repository folder and place them in ~/.config/xnp21kai.

MIDI Time

The repository has a MIDI setup guide, but it’s Ubuntu-focused and a bit confusing. After some research, I figured out the audio chain works like this:

1
NP2kai → snd-virmidi → timidity++ → ALSA → PipeWire/wireplumber

Let’s set it up step by step.

Setting Up TiMidity++

First, install the required packages:

1
sudo dnf install timidity++ fluid-soundfont-gm pipewire-alsa

Create the TiMidity++ configuration file at /etc/timidity++/timidity.cfg (create the directory if needed) and add this line:

1
soundfont /usr/share/soundfonts/FluidR3_GM.sf2

Since Fedora doesn’t include a TiMidity++ service by default, you can create a systemd service by creating ~/.config/systemd/user/timidity.service:

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=TiMidity++ ALSA sequencer
After=sound.target

[Service]
ExecStart=/usr/bin/timidity -iA -B2,8 -Os
Restart=on-failure

[Install]
WantedBy=default.target

and enable/start the service:

1
systemctl --user enable --now timidity.service

or just run it manually with

1
timidity -iA -B2,8 -Os &

Verify TiMidity++ is running by checking ALSA connections:

1
aconnect -l

You should see something like:

1
2
3
4
5
client 128: 'TiMidity' [type=user,pid=90227]
0 'TiMidity port 0 '
1 'TiMidity port 1 '
2 'TiMidity port 2 '
3 'TiMidity port 3 '

Plug it in

Now we’ll set up virtual MIDI devices and “plug it in” to TiMidity++.

Load the virtual MIDI kernel module (should already be available on Fedora):

1
sudo modprobe snd-virmidi

The virtual MIDI devices will appear as /dev/snd/midi****:

1
2
3
4
5
$ ls -l /dev/snd/midi*
crw-rw----+ 1 root audio 116, 28 Jan 30 23:42 midiC4D0
crw-rw----+ 1 root audio 116, 29 Jan 30 23:42 midiC4D1
crw-rw----+ 1 root audio 116, 30 Jan 30 23:42 midiC4D2
crw-rw----+ 1 root audio 116, 31 Jan 30 23:42 midiC4D3

Check all ALSA connections:

1
aconnect -l

You should see both the virtual MIDI devices and TiMidity++ ports:

1
2
3
4
5
6
7
8
9
10
11
12
13
client 32: 'Virtual Raw MIDI 4-0' [type=kernel,card=4]
0 'VirMIDI 4-0 '
client 33: 'Virtual Raw MIDI 4-1' [type=kernel,card=4]
0 'VirMIDI 4-1 '
client 34: 'Virtual Raw MIDI 4-2' [type=kernel,card=4]
0 'VirMIDI 4-2 '
client 35: 'Virtual Raw MIDI 4-3' [type=kernel,card=4]
0 'VirMIDI 4-3 '
client 128: 'TiMidity' [type=user,pid=90227]
0 'TiMidity port 0 '
1 'TiMidity port 1 '
2 'TiMidity port 2 '
3 'TiMidity port 3 '

Connect a virtual MIDI device to TiMidity++. For example, to connect /dev/snd/midiC4D0 (client 32:0) to TiMidity++ port 0 (client 128:0):

1
aconnect 32:0 128:0

Final touches in Neko Project II Kai

Finally, configure MIDI in the emulator:

  1. Launch Neko Project II Kai
  2. Go to Device → MIDI option…
  3. Under the MPU-PC98II tab:
    • In the Device frame, set MIDI-OUT to your ALSA MIDI device file (e.g., /dev/snd/midiC4D0)
    • In the Assign frame, select the MIDI-OUT device for the MIDI-OUT option

Now load your game, reset the emulator, and enjoy your PC-98 games with proper MIDI sound!