少ないリソースを酷使する

低レイヤーとレトロPC(PC98,MSX)が好きな情報学生

令和の時代にLinuxにPC-98x1エミュレータを入れる

時代は令和,PC-9801が発売されたのは1982年であるから,もう30年以上前.(今日で38周年)
何なら40年の時が経とうとしているが...
そんなことはどうでもいい.ユーザーはPC-98x1が使いたいのだ.
よって,LinuxにPC-98x1エミュレータを導入する方法を備忘録的に書いていく.

めっちゃ簡単な方法

WindowsバイナリをWineで動かすと簡単
大体動くのは確認したけど完全に互換性があるかはわからん

Wine をいれる

$ sudo apt install wine-development

使い方としては以下のようにexeファイルが実行できる.

$ wine ~/hoge.exe

以下,配布されているWindows実行バイナリとして主なものを2つ紹介する.

Neko Project Ⅱ

Intel 80286相当のエミュレートができる.
80286相当なので,アーキテクチャIA-32(現在一般的にx86と呼ばれているもの)より前のx86-16bit.
リアルモードのみのエミュレートをサポートする.

以下から実行ファイルがダウンロードできる
https://www.yui.ne.jp/np2

Neko Project 21/W

Intel 80486以上のエミュレートができる.
具体的には以下のチップ

Intel i486SX , i486DX , Pentium, MMX Pentium, Pentium Pro, Pentium II, Pentium III, Pentium M, Pentium 4 プロセッサ AMD K6-2, K6-III, K7 Athlon プロセッサ選択可能(一部機能未実装)

個人的に嬉しいのはFPUが使えるところ.
i486あたりだとFPUはもうSoCに内蔵されているから,内蔵FPUのエミュレートなんだろうか.
コプロセッサだった頃のFPUとの互換性は未知数.(後で確かめてみよう)

以下から実行ファイルがダウンロードできる
https://sites.google.com/site/np21win/download

BIOSとフォントファイルについて

実機のBIOS.ROMとFONT.ROMはexeと同じ場所に置けばとりあえずOK
実機からBIOS.ROMとFONT.ROMを吸い出す方法は記事の後半を参照してね.
f:id:T-takeda:20201013232932p:plain

ソースからBuildする方法

「wineで動かすと不安定...」「ちゃんと互換性があるか不安...」という人はソースからエミュレータ をBuildしましょう.

NP2kai

ソースからLinuxの実行ファイルを生成するならこれが一番.
数あるnp2の派生をだいぶ吸収しているので機能充実.

install

インストール手法は以下に詳しく書いてある.
https://github.com/AZO234/NP2kai

Linux意外にも,WindowsmacOSAndroidiOSなど多くのプラットフォームに対応しています.

X11ポート install

今回はLinux + X Window System 11 ポートでBuildしてみます.
個人的にはこれが簡単だった.
私が試した環境はUbuntu20.04

手順書

詳しい手順は以下に詳しく書いてある.
https://github.com/AZO234/NP2kai#x-with-gtk2-and-sdl

ツールinstall

Buildに必要なツールをinstallします.

$ sudo apt install git cmake ninja-build build-essential libx11-dev libglib2.0-dev libgtk2.0-dev libsdl2-dev libsdl2-mixer-dev libsdl2-ttf-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev  libusb-1.0-0-dev libfreetype-dev libfontconfig1-dev libssl-dev

build

githubからリポジトリをクローンして,CMakeの基本的な下準備をします.

$ git clone https://github.com/AZO234/NP2kai.git
$ cd NP2kai
$ mkdir build
$ cd build
$ cmake .. -D BUILD_X=ON -D BUILD_I286=ON

成功すると最終的に以下のようなログになる.参考までに.
とにかくエラーが出ていなければOKでしょう.

・・・
-- Checking for module 'glib-2.0'
--   Found glib-2.0, version 2.64.3
-- Found glib2.0
-- Found GTK2_GTK: /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so  
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.1f")  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hiro/NP2kai/build

ビルドする.
-j オプションの引数は各自の環境に合わせて書き換えてください.

$ make -j3

xnp2kaixnp21kai という実行ファイルが生成されていればOK
xnp2kaiは Neko Project Ⅱ 相当,つまりはIntel 80286相当のエミュレートアプリ.
xnp21kaiは Neko Project 21/W 相当,つまりはIntel 80486以上のエミュレートアプリです.
...多分.

$ ./xnp2kai

で,起動すればOK

$ sudo make install

でinstallできます.

f:id:T-takeda:20201013233035p:plain

BIOSとフォントファイルについて

~/.config/ の中に xnp2kai/xnp21kai/ があるのでここに入れればOK

$ cd .config/
dconf/           gnome-session/   ibus/            update-notifier/
enchant/         goa-1.0/         menus/           xnp21kai/
evolution/       gtk-2.0/         nautilus/        xnp2kai/
gedit/           gtk-3.0/         pulse/          
$ ls xnp2kai/
BIOS.ROM  FONT.ROM  debugss  font.tmp  sav  xnp2kairc

実機からBIOSとフォントファイルを吸い出す方法

以下から,getbios.lzhをダウンロードします.
(公式ページにもツール配布リンクがあったんですが,リンク切れのよう)
http://retropc.net/yui/np2tool/index.html

解凍して出てきた,GETBIOS.COM を実機のMS-DOS上で実行すれば吸い出せます.

最後に

令和の時代もよいPC-98ライフで楽しみましょう.
f:id:T-takeda:20201013233016p:plain

次回は,MS-DOSがなくてもPC-98エミュレータが楽しめる,FreeDOS(98)の導入について書きます.