Raspberry Pi Zero2で作るPC-9801!エミュ”NP2kai”を使ったらBGMノイズが解消されたよ!
Raspberry Pi Zero2の購入
やっと買えましたRaspberry Pi Zero2
半導体不足なのか、
しばらく定価で購入ができませんでした。
が、
ここにきて流通が回復したようです!
ついに、公式販売店で購入できました!
念願のZero2!待ってました!!嬉しい!!!
ほぼ3000円でお手頃?!
送料入れたりで4000円弱っす。
Zero2はZeroの5倍の性能
処理性能はZeroの5倍ですって!
かねてより悩みがありまして。
Raspberry Pi Zero上で
PC98を動かすため
"np2pai"をインストールしましたが
動かすと、BGMノイズが気になります・・・。
(BGMの始まりに必ずノイズが載るみたい)
同じ内容を、Zero2でも試したのですが、
あえなく撃沈・・・。
相変わらず、BGMにノイズが載ります。
こうなると、
エミュの"np2pi"がダメなのかなぁって。
(np2piの作者様すみません・・・)
ってことで、
今度はNP2の別系統である"NP2Kai"をZero2で色々試してみました!
(ちなみにNP2Kaiは、Zeroだと処理性能不足で
かなりもっさりしてしまい・・・
遅すぎて遊ぶどころではありませんでした)
試した結果(Zero2で検証)
× NP2Kai GTK2版 × Raspberry Pi OS bullseye
フルスクリーンだとZero2でもパワー不足
GUIモード上で動くのでそもそも遅い。
× NP2Kai SDL2版 × Raspberry Pi OS Lite bullseye
マウスカーソルがほとんど動かない。
Raspberry Pi OS Lite bullseyeと
SDK2の相性の問題かなぁ・・・。
× NP2Kai SDL1版 × Raspberry Pi OS Lite bullseye
画面が2重になって操作できない
Raspberry Pi OS Lite bullseyeと
SDK1の相性の問題かなぁ・・・。
◎ NP2Kai SDL2版 × Raspberry Pi OS Lite buster
画面フルスクリーンでも
Zero2なら動作速度に問題無し!
以上から、今回はZero2で
NP2KaiのSDL2版 × Raspberry Pi OS Lite buster の構築手順を紹介します!
Raspberry Pi OS Lite busterの構築
Raspberry Pi OS Liteのインストール
PI Imager*をダウンロードしよう。
*SDカードにOSイメージを展開するツールです
今回使うライブラリ「SDL2」は、
Raspberry Pi OSの中でも
2世代前の古いバージョン「buster」でないと
マウスカーソルがほとんど動かない。
だから、
古いバージョンのOSイメージを以下からダウンロードしよう。
ファイルは「2023-05-03-raspios-buster-armhf-lite.img.xz」です。
ダウンロードできたら、
Pi Imagerを起動します。
RaspberryPiデバイスは「RASPBERRY PI ZERO2」を選択し、
さらに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 busterの
初期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
NP2Kai SDK2版構築
TeraTermでPI OS Liteに接続しよう。
必要ライブラリインストール
sudo apt-get update
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 libfontconfig1-dev libssl-dev
NP2kaiインストール
cd ~
git clone https://github.com/AZO234/NP2kai
cd NP2kai
mkdir build
cd build
cmake .. -D BUILD_SDL=ON
make -j3
sudo make install
Raspberry Pi Zero2 オーバークロック
CPUオーバクロック設定
sudo nano /boot/config.txt
以下を[all]の下に追記
over_voltage=4
arm_freq=1300
core_freq=500
PC9801起動準備
PC9801のフォントを配置
以下コマンドでフォルダを作っておく。
*「~/」は、ログインユーザのホーム「/home/pi/」であり、
「~/.config/sdlnp21kai」は今回構築するNP2Kaiの初期フォルダ位置になる
mkdir ~/.config
mkdir ~/.config/sdlnp21kai
Windows版のNP21Wをダウンロードして解凍し、
解凍フォルダの中のbinフォルダの中のnp21w.exeを起動する*と
*起動の際に「WindowsによってPCが保護されました」ってなったら、
「詳細情報」リンクをクリックすると実行ボタンが現れるよ!
「font.tmp」ってファイルができる。
そのファイルをリネームする。
「font.tmp」⇒「font.bmp」
そうしたら、WinSCPを使ってファイルを転送しよう。
まず、ログインし、
メニュー>オプション>環境設定で
パネル>「隠しファイルを表示する」にチェックを入れて
OKぽちー。
これで隠しフォルダが見えるようになるから、
以下隠しフォルダに「font.bmp」をコピー。
/home/pi/.config/sdlnp21kai
PC9801のソフトウェアを配置
以下コマンドでフォルダを作っておく。
mkdir ~/.config/sdlnp21kai/soft
上記で作成したフォルダ「/home/pi/.config/sdlnp21kai/soft」の中に
ソフト名のフォルダを作って、
PC9801のFDイメージファイルを転送しよう。
FDイメージファイルを転送しよう。
転送できました。
PC9801自動起動の設定
nano ~/.bashrc
一番下に以下のように記述しよう。
cd /usr/local/bin/
./sdlnp21kai
再起動
sudo reboot
BGM遅延を最小化
NP2Kaiが起動するから、F11を押して、
Emulate>Configureを選択し、
SoundのBufferを一番左へ下げよう。
最小は20msのようだ。
OKボタンを押して
Emulate>Resetで再起動しよう!
さぁ、遊ぼう!
F11キーでメニューバーが出るから
FDDにフロッピディスクを指定しよう。
FDDがセット出来たら、
Emulate>Resetで。
おぉ。動いた!
キャラを作って・・・
冒険!楽しいね!(ソーサリアン)
あと、悩みだった
BGMノイズはまったく無し!
ソーサリアンの美しいBGMにうっとりです!
嬉しい!
今回は以上です。
では、また!