見出し画像

Raspberry Pi ZeroでPC-9801を遊ぶ!

どうも僕です。
以前、Windows10でPC9801エミュ「Neko Project II」を遊んでみました。

ふと、
Raspberry Pi Zeroでも
PC9801エミュが遊べないかな~って思いまして・・・。

ネットを探したところ、やっぱり記事がありました。
ただ、如何せん記事の内容が古い(2017年の6年前)です。
きっと、リンク切れやライブラリなどが淘汰されているだろうなぁっと。

ただ、上手くいくのかはわからないけど、
Raspberry Pi ZeroPC9801を動かしてみたい!

Raspberry Pi Zeroに
PC9801エミュ「Neko Project II(NP2)For Raspberry Pi」の
インストールを挑戦してみよう!

Raspberry Pi OS Liteの構築

Raspberry Pi OS Liteのインストール

PI Imager*をダウンロードしよう。
*SDカードにOSイメージを展開するツールです

今回使うライブラリ「SDL12-kms-dispmanx」は、
Raspberry Pi OSの中でも
2世代前の古いバージョン「buster」にしか対応していない。

だから、
古いバージョンのOSイメージを以下からダウンロードしよう。
ファイルは「2023-05-03-raspios-buster-armhf-lite.img.xz」です。

ダウンロードできたら、
Pi Imagerを起動します。

RaspberryPiデバイスは「RASPBERRY PI ZERO」を選択し、
さらにOSは「カスタムイメージを使う」を選択して

イメージを選ぶでは上記でダウンロードしたOSイメージ「2023-05-03-raspios-buster-armhf-lite.img.xz」を選択しよう。

ストレージはMicroSDカードをPCに挿して*、
*自分はMicroSDカードをUSB変換するアダプタでPCに認識させてます

Pi Imagerのストレージでは上記のUSB変換アダプタを指定します。
*自分の場合はUSBメモリとしてPCは認識してます

「次へ」を押すと
カスタマイズ設定する?って聞いてくるので「いいえ」で。

「はい」を押す。

しばらく待つと、
SDカードへの書き込みが終わるので「続ける」ボタンを押す。

SDカードをRaspberry Pi Zeroに挿して

Raspberry Pi Zeroを起動しよう。
*PI OS LiteのOSユーザは「pi」、パスワードは「raspberry」

Raspberry Pi OS Liteの初期設定

PI OS Liteの初期設定として以下を実施すること。
・「WiFi」の設定
・「SSH」の有効化
・「キーボード」の日本語キーボードへ変更
・「自動ログイン」の有効化

以下のコマンドで上記の4つの設定を入れよう。

sudo raspi-config

まずWifi設定
[1 System Options]からの[S1 Wireless LAN]設定へ

JP Japanを選んで

Okで

SSID入れて

パスワードいれてOkね

SSH有効設定
[3 Interface Options]からの[P2 SSH]

Yesで

Okで

キーボード設定
[5 Localisation Options]からの[L3 Keyboard]

Generic 105-key PC (intl.)を選んで

Otherで

Japaneseで

Japanese-Japanese(OADG 109A)を選び

defaultで

No compose keyで

自動ログイン
[1 System Options]からの[S5 Boot / Auto Login]を選び、

B2 Console AutoLoginを選ぶ。

4つの設定が出来たら、SSHによるリモートで設定しよう。
(その方が本記事からコピペできて楽だからね)

その前に以下コマンドでIPは調べよう。

ip a

TeraTermでPI OS Liteに接続しよう。

Raspberry Pi OS Liteのチューニング

このままだとコンパイルが遅いので、CPUのオーバークロックをしよう。

以下コマンドでOS起動設定ファイルを編集しよう。

sudo nano /boot/config.txt

以下を追記しよう。(#arm_freq=800の下に追記)

arm_freq=1000
force_turbo=1
over_voltage=8
core_freq=500
sdram_freq=530
over_voltage_sdram=1
over_voltage_sdram_c=7
over_voltage_sdram_i=7
over_voltage_sdram_p=8

ctrlキー+Xでエディタを終了し、必ずYesで上書きしよう。

さらにOSを再起動しよう。

sudo reboot

再起動が終わったら、TeraTermで接続しよう。

NP2 for Raspberry Pi(np2pi)の構築

SDL12-kms-dispmanx のインストール

以下コマンドを実行して
インストール可能なパッケージの「一覧」を更新する。

sudo apt-get update

以下コマンドを実行して
音源ライブラリをインストールする。

sudo apt-get install libasound2-dev

以下コマンドを実行して
gitコマンドをインストールする。

sudo apt-get install -y git

以下コマンドを実行してソースを取得する。

cd ~
git clone https://github.com/vanfanel/SDL12-kms-dispmanx.git

マウスカーソルが黒四角になっちゃう問題があるので
ソースを直接修正する。

以下コマンドでソースを編集する。

cd ~
nano SDL12-kms-dispmanx/src/video/SDL_cursor.c

642行目の「return」の前に「//」を追加する。(コメントアウト)

644行目の「/*」を削除する。(コメント削除)

671行目の「*/」を削除する。(コメント削除)

ctrlキー+Xでエディタを終了し、必ずYesで上書きしよう。

さて、以下のコマンドでコンパイルしよう。

cd ~
cd SDL12-kms-dispmanx
./MAC_ConfigureDISPMANX.sh
make clean && sudo make install

SDL_ttf のインストール

以下のコマンドを実行しよう。

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

cd ~
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

np2pi のコンパイル

以下のコマンドを実行しよう。

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

np2piのメニュー用のフォント

以下のコマンドを実行しよう。

cd ~
sudo apt-get install ttf-sazanami-gothic

生成したメニュー用のフォントをコピーする。

cd np2pi/bin
ln -s /usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf default.ttf

np2piの自動起動を設定

nano ~/.bashrc

一番下に以下のように記述しよう。

cd ~/np2pi/bin/
./np2

PC9801のソフトウェアを配置

以下コマンドでフォルダを作っておく。

mkdir ~/np2pi/bin/soft

WinSCPを使って
PC9801ソフトウェアのFDDイメージファイルを転送しよう。
まず、ログインして

上記で作成したフォルダ「/home/pi/np2pi/bin/soft」の中に
ソフト名のフォルダを作って、
PC9801のFDDイメージファイルを転送しよう。

FDDイメージファイルを転送しよう。

転送できました。

PC9801のサウンドカード有効化

TeraTermではなく、Raspberry Pi Zero 実機で直接操作しよう。


Raspberry Pi Zeroを再起動し、エミュが起動するのを確認する。

起動を確認したら、F11を押すとメニューが出てくる

キーボードのENDキー押しながら、メニューのEmulate>Resetしよう。

「ディップスイッチ2の設定」を選んで、
「メモリスイッチ」を選び、「保持する」を選択する。

終了を選択し、
今度はメインメニューの「メモリスイッチの設定」を選択する。

さらに「拡張ボード」を選択。

「サウンドボード」で「使う」を選択する。

ESCで拡張ボードのメニューを抜けて、switch set. MENUを終了し、
さらに終了を選択してシステムセットアップメニューを抜けよう。

PC9801のBGM遅延を解消

np2piのデフォルト設定だと、BGM遅延が気になります。
メニューのEmulateからConfigureを選び、
SoundグループのBufferを100msに設定すると緩和できます。

メニュー>Emulate>Configureを選び、

SoundのBufferを一番左へと小さくし、
(最小は100msみたい)

OKボタンを押そう。

さぁ遊んでみよう!

TeraTermではなく、Raspberry Pi Zero 実機で直接操作しよう。
自動起動するはずなので再起動してみよう。

sudo reboot

おぉ~きた~~~!

F11キーを押してメニューを出そう。
FDD1にゲームディスクを入れて再起動してみる。

きたーーー!

楽しい!
(*・ω・)(*-ω-)(*・ω・)(*-ω-)ウンウン♪

気になるのは、
たまにBGMに「ガガッ」ってノイズが入るくらいですね。
(オープニングなどのBGMが始まりで必ずガガッ・・って)

今回は以上です。
では、また!

この記事が気に入ったらサポートをしてみませんか?