Raspberry Pi(ラズベリーパイ)向けPC-98エミュレータ np2piのビルド手順まとめ

2023年12月17日

はじめに

Raspberry Pi(ラズベリーパイ)上で動作するNP2(PC-9801エミュレータ)、np2piビルド手順まとめ。確認時の環境は下記。
・Raspberry Pi OS Lite(32bit) bullseye/bookworm
・Raspberry Pi Zero 2 W

以下の説明ではPC-98風Raspberry Piケースでの使用をイメージしてRaspberry Pi Zero 2 Wを用いるが3,4でも同様に実施できると考えられる。

(2023.10.17追記)bullseye環境で手順確認し記載したが、bookworm環境でも同様手順で動作を確認。

Raspberry Pi OSのインストール

Raspberry Pi OS LiteをSDカードに書き込む。この時点で「詳細な設定」(歯車マーク)からSSH,WiFiの設定をしておくと楽。各種操作をRaspberry Piで直接ではなく、PCからSSH接続して実行できて効率的であるため。

SDへの書き込みが終了したらRaspberry Pi本体に挿入して起動。あらかじめSSH、WiFiの設定をしていればこれ以降はPCからSSH接続して作業可能になる。ポート番号はデフォルトから変更してなければ22(省略可能)。

> ssh ユーザ名@IPアドレス -p ポート番号

このRaspberry Pi実機のIPアドレスはWindowsであればDOSプロンプトから下記を実行することで調べることができる。

> arp -a

参考)この「arp」コマンドを実行したPCと通信をしたことがない機器はARPテーブルに載らないため、初回はarpコマンドでも対象の機器が出てこないことになる。このため、IPアドレスの範囲を指定してpingを発行し総当たり通信を行うことで接続機器との通信をあらかじめ行っておくとよい。下記例では192.168.1.1 ~ 192.168.1.255に対してpingを実行している。IPアドレスの範囲は適宜、実行する環境に合わせる。

> for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.1.%i

こののち、再度arp -aを実行することで対象の機器を含むIPアドレスが一覧できる。

np2piのインストール

以下の説明はRaspberry pi上直操作でも、PCからSSH接続した状態でも構わない。

前提としてaptのアップデートとgitのインストールを実施しておく。

$ sudo apt update
$ sudo apt install git

1.SDL-1.2.15-raspberrypi をインストール

$ sudo apt install libasound2-dev
$ git clone https://github.com/joolswills/SDL-1.2.15-raspberrypi.git
$ cd SDL-1.2.15-raspberrypi
$ if [ `uname -m` = armv6l ]; then ./MAC_ConfigureSDL12-rpi1.sh; else ./MAC_ConfigureSDL12-rpi2.sh; fi
$ make && sudo make install
$ cd ~/

2.fontのインストール

まずfreetypeをインストール。これをやっておかないとその後のSDL_ttfインストール時の./configureで失敗する。

$ wget https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz
$ tar xzf freetype-2.9.1.tar.gz
$ cd freetype-2.9.1
$ ./configure
$ make && sudo make install
$ sudo cp builds/unix/freetype-config /usr/bin
$ cd ~/

次にSDL_ttfをインストール

$ wget https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz
$ tar xzf SDL_ttf-2.0.11.tar.gz
$ cd SDL_ttf-2.0.11
$ ./configure
$ make && sudo make install
$ sudo /sbin/ldconfig
$ cd ~/

3.np2piをインストール

実行ファイル np2pi/bin/np2 が生成される。

$ git clone https://github.com/irori/np2pi.git
$ cd np2pi/sdl
$ make -f makefile.rpi

エミュレータ設定/実行

メニュー用のフォントとして、np2 を実行するときのディレクトリに default.ttf という名前で配置する。さざなみフォントを使う場合はnp2piを実行する場所で下記を実行。

$ sudo apt install ttf-sazanami-gothic
$ ln -s /usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf default.ttf

その後np2 を実行する(X のターミナルからではなく、コンソールから実行)。
起動後、マウスの中クリックか F11 キーでメニュー表示を行う。詳しい使い方は本家マニュアル参照。

また、実機から取得したROMファイルを使用するとより再現性が高まる。

BIOS.ROM
FONT.ROM
SOUND.ROM
2608_bd.wav
2608_hh.wav
2608_rim.wav
2608_sd.wav
2608_tom.wav
2608_top.wav

リンク

np2pi wiki
SDL-1.2.15-raspberrypi
本家np2のヘルプ