如何在 Fedora 上正確設定 Neko Project II Kai 來玩 PC-98 遊戲

---
日期: Feb 02, 2026
標籤:
- Fedora
- PC-98
- 電玩
語言: English 中文
---

聲音在哪裡

前段時間突然很想玩 PC-98 遊戲,所以從網際網路上找了一些 PC-98 遊戲,然後參考各種建議後準備使用 RetroArch 內建版的 Neko Project II Kai。 我先試了 Steam 版,結果發現它所有的核心都被移除了,應該是考慮 Steam 上架的原因;然後我試了 Flatpak 版,這個版本有 Neko Project II Kai 的核心,也能載入我下載的遊戲,但不管我怎麼試都沒聲音。

搞了一陣子之後,我決定直接編譯原版的 Neko Project II Kai。我聽說它比 libretro (RetroArch) 版要更好,也修復了更多問題。但即使編譯完也還是沒聲音。 並且 GitHub 頁面上的設定指南似乎也只針對 Ubuntu,所以我只好自己摸索了一陣才終於讓它在 Fedora 上動起來:

「VG II 姫神舞闘譚」在Neko Project II Kai 上運作
「VG II 姫神舞闘譚」在Neko Project II Kai 上運作

我當時想,啊,快速的寫一篇關於 PC-98 音訊設定的文章就完工了,結果當我開始寫的時候愈來愈長,然後… 就變成一份在 Fedora 上設定 Neko Project II Kai 的完整指南了… 就這樣了(笑)

安裝 Neko Project II Kai

重要: 不要安裝 libretro 版本!請使用這個版本:https://github.com/AZO234/NP2kai

安裝依賴項

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

編譯模擬器

導航到 NP2kai 資料夾並編譯:

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

你可以選擇用 sudo make install 全域安裝,或者直接於 build 資料夾運行 ./xnp21kai

設定 BIOS 檔案

啟動模擬器之前,先建立設定資料夾:

1
mkdir -p ~/.config/xnp21kai

然後從 這個 Git 資料夾 下載所需的 BIOS 檔案,並將它們放在 ~/.config/xnp21kai

MIDI 時間

儲存庫有一個 MIDI 設定指南,但它主要針對 Ubuntu,而且我有些看不懂。經過一番研究,我發現音訊應該是這樣運作的:

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

接下來我會一步一步說明如何配置。

設定 TiMidity++

首先,安裝所需的套件:

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

/etc/timidity++/timidity.cfg 建立 TiMidity++ 設定檔(如果需要,請建立目錄)並加入這行:

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

由於 Fedora 預設不包含 TiMidity++ 服務,你可以透過建立 ~/.config/systemd/user/timidity.service 來建立一個 systemd 服務:

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

然後啟用並啟動服務:

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

或者直接手動運行:

1
timidity -iA -B2,8 -Os &

透過檢查 ALSA 連接來驗證 TiMidity++ 是否正在運行:

1
aconnect -l

你應該會看到類似這樣的內容:

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 '

插線

現在我們將設定虛擬 MIDI 裝置並將其「插線」到 TiMidity++ 中。

載入虛擬 MIDI 核心模組(在 Fedora 上應該已經可內建):

1
sudo modprobe snd-virmidi

虛擬 MIDI 裝置將會顯示為 /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

檢查所有 ALSA 連接:

1
aconnect -l

你應該會看到虛擬 MIDI 裝置和 TiMidity++ 埠:

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 '

將虛擬 MIDI 裝置連接到 TiMidity++。比如我想將 /dev/snd/midiC4D0 (client 32:0) 連接到 TiMidity++ port 0 (client 128:0), 便應該執行以下指令:

1
aconnect 32:0 128:0

Neko Project II Kai 的最後設定

最後,在模擬器中設定 MIDI:

  1. 啟動 Neko Project II Kai
  2. 進入 Device → MIDI option…
  3. MPU-PC98II 選項卡下:
    • Device 框架中,將 MIDI-OUT 設定為你的 ALSA MIDI 裝置檔案 (例如 /dev/snd/midiC4D0)
    • Assign 框架中,為 MIDI-OUT 選項選擇 MIDI-OUT 裝置

然後載入 PC-98 遊戲享受吧!