2023年9月23日 星期六

PC9801 模擬器

pc9801 只有聽過, 從來沒看過實際機器, 當然是因為想玩 h-game 才對這台機器有興趣。

藉由 dos/v 多少可以玩點 pc9801 的移植版本, 以前也只能這樣, pc9801 在以前那個時代, 實在不好入手。

藉由模擬器, 總算可以懷舊一下 pc9801 h-game, 本來想用 dosbox-x 來玩, 卡在磁片格式無法處理。

pc9801 磁片有很多格式, 抓到的遊戲是 fdi 格式, 怎麼把這 mount 起來花了我不少腦力, 結果還是失敗, 後來還是想說裝個 pc9801 模擬器好了。

裝的是這套 PC-98 Emulator ~ Neko Project II 在 windows 上執行。

執行檔選的是 np2.exe, 遊戲是 pc9801 人形使い, 總共有3個磁片檔:
Ningyo_a.FDI  Ningyo_b.FDI  Ningyo_pg.FDI
np2.exe 執行之後就會開啟機器, 按下滑鼠右鍵選擇選單, 把 Ningyo_pg.FDI 放入 fdd1, Ningyo_a.FDI 放入 fdd2, 再選 reset, 直接就可以玩, 不需要安裝的動作, 我本來還以為還要搞很複雜的安裝 dos 的動作, 那就太麻煩了。

dos 很早時間也是這樣, 插入磁片就可以直接執行, 不過如果有2張磁片以上就是要一直換片, 以前一般都配2台磁碟機, 如果遊戲有2片磁片, 就不用換片。

後來遊戲大了之後, 就需要從 dos 開機, 然後安裝遊戲到硬碟。

以下影片是 pc9801 的「人行使い」片頭。



成功執行遊戲之後想在 steam deck 跑, 執行檔選的是 np2.exe, 用 steam 加入這個 非 steam 遊戲即可, 使用 proton 來執行, 運氣不錯, 可以正常跑起來。

把觸控板模擬滑鼠, L1, R1, 對應到滑鼠左/右
選單按鍵對應: enter
左蘑菇頭: 8/2/4/6
十字按鈕: 上下左右
另外滑鼠游標和觸控板對不太上, 叫出選單後我是用十字按鈕+enter 操作, 如果不習慣, 接個鍵盤操作比較習慣。 和英文版的 metal lace 比起來, 音樂單調很多, 不過遊戲乾脆多了, 不囉嗦, 直接開幹。



打輸也是會脫衣服, 真的不囉唆, 就是要玩家看圖。



人形使い招式表

■批評へ■

 人形使い コマンド一覧 

 ◆ MIMI 操縦者・瑞穂 リカ
 クレセントシュート  PK
 サンダーブレイク  空中  PK
 ラピッドドロップ 空中近接  以外P
 背負い投げ (攻撃を受ける瞬間)PK

1戦目
 ◆ ローグ typeβ 操縦者・イライザ・サンディムーア
 必殺技無し

2戦目
 ◆ アンナ 操縦者・ジェシカ・ノートン
 サーキュラーキック  K

3戦目
 ◆ ローグ typeβ改 操縦者・サルーシア・ルマストノフ
 ローラーダッシュアタック  PK

4戦目
 ◆ スカイハウンド 操縦者・ディジィ・A・ガーランド
 ホバージャンプアタック  PK

5戦目
 ◆ 蒼龍 操縦者・霧羽 早苗
 閃歩  PK

6戦目
 ◆ シンク 操縦者・李 香華
 クレセントシュート  PK
 サンダーブレイク  空中  PK
 ラピッドドロップ 空中近接  以外P
 背負い投げ (攻撃を受ける瞬間)PK


另外也可以用 dos 操作, 不過相比在 IBM PC 上的 dos, 少了很多指令。



沒用過 dos 的朋友, 應該不太習慣, 學習 dos 需要一本書, 沒辦法在模擬器上亂試, 這是指令的缺點。



可以用以下命令 checkout np2 source code:
編譯 np2 linux version
svn checkout http://amethyst.yui.ne.jp/svn/pc98/np2/

svn checkout 時, 連線不太穩定, 容易遇到:
svn: E000104: Error running context: Connection reset by peer
需要多次 retry

成功 svn checkout 之後會看到類似訊息:
A    accessories/textout.h
Updated to revision 2847.

編譯 linux 版本:
tags/VER_0_86 沒有 linux makefile, 似乎只有 trunk 版本才有支援 linux makefile

cd np2/trunk/sdl2/linux
make

如果遇到

../../pccore.c:250:2: error: ‘SNDCSEC_INIT’ undeclared (first use in this function); did you mean ‘TRACEINIT’?

做以下修改

Index: sound/sndcsec.h
===================================================================
--- sound/sndcsec.h	(revision 2847)
+++ sound/sndcsec.h	(working copy)
@@ -11,6 +11,7 @@
 #endif

 #if defined(SOUND_CRITICAL)
+#define _SDL_mutex_h

 #if defined(WIN32) || defined(_WIN32_WCE)
成功之後得到 np2 這個執行檔案。

20250316 編譯為 linux/sdl2 版本 (trunk 版本 r2821), 日文是亂碼, 可能還在開發, 有點忍不住想幫忙改了。

另外還有 np2 的 fork np2kai: https://github.com/AZO234/NP2kai

編譯 np2kai linux version
需要
apt-get install libsdl2-ttf-dev
apt-get install libsdl2-mixer-dev

切到 git tag rev.22

git checkout rev.22
NP2kai/sdl2
make -f Makefile.unix
成功後得到 np2kai
不過執行時, 無法出現滑鼠游標來控制選單。
cp /usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf default.ttf
不過還是無法正確顯示日文。
另外 dosbox-x 也可以執行 pc9801 遊戲, 複製 dosbox-x.conf 改為 dosbox-x-9801.conf, 把 machine 換成 pc9801, 再執行 dosbox-x 即可。
dosbox-x-9801.conf machine = pc9801
dosbox-x -conf dosbox-x-9801.conf
這位開發者做了 EVE burst error 中文化, 夜行侦探 EVE burst error 中文化分析 , 有夠厲害。 並提供了簡體中文化 patch: https://archive.org/details/eve-pc98-gb.7z

我套了用了這個 patch, 也成功中文化, 步驟有點難度, 可能會難倒一些人, 需要操作 dosbox-x 來 mount 遊戲硬碟影像檔。
ref:

沒有留言:

張貼留言

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。