戻る

np21(Neko Project)エミュレータをより便利に - かねやんの部屋


np21(Neko Project)エミュレータってちょっと面倒ですよね?

と、その前に、Windows用以外では無意味ですのでご了承ください。np21が何か「察する」ことができなかった人には、ほぼ無意味なページですので、ご遠慮ください。

np21はHDDイメージを開くのが面倒だし、各種ショートカットキーも無いので、あまり使ってなかったんですよね。
(FDDイメージならドラッグ&ドロップで開くことができるのですが。)
Anex86も画面が小さかったりで使い勝手は悪くなって来ていて、np21を少し使いやすくしてやろうかと、思ってみたりしました。


機能概要

全て自己責任でお願いします。

ダウンロード → np21h Ver. 1.3 for NP21 0.8.6

AutoHotkey」というスクリプト言語ソフトを使っています。

np21.iniを編集するので、心配な方はバックアップを取っておいてください。
解凍して各ファイルをnp21.exeが存在するフォルダに移動します。
手持ちのWindowsマシンにAutoHotkeyがインストールされていないなら、拡張子がexeのファイルの方を実行してください。
AutoHotkeyをインストールしているなら、拡張子ahkのファイルが実行できますので、ご自由に改造して使ってください。ただし再配布は禁止します。(AutoHotkeyのインストールはダウンロードサイトから。Binaryだけ持ってきてnp21.exeと同じところに入れて、拡張子ahkのファイルをBinaryにドロップする等でも実行可能です)

実行すると、GUIのウィンドウが出てくるので、好きな組み合わせのFDD/HDDイメージファイルを選んで、ショートカットを作成するボタンを押せばショートカットが作成されます。(np21が動作している場合は、GUIウィンドウが表示されません)
no21h実行例
FDD/HDDイメージを入れたフォルダを作っておいて、フォルダをショートカット作成ウィンドウにドロップすれば、ファイルが選択可能になります。(フォルダ参照は使いにくいので、ドロップした方が早かったりします)
CPUの速度やFDD/HDDどちらを優先起動するかも選択できます。
起動後にFDDを入れ替える場合は、np21のTOOLウィンドウに表示される候補を設定しておくこともできます。(FDD候補のリストボックスでファイルをCtrl+クリックして選択状態にしてください)
毎回FDDやHDDイメージファイルを選択する苦痛から解放されます。

他にも、FDDイメージやHDDイメージをnp21hスクリプト(np21h.exe)にドロップしても起動します。
付属の機能として、np21.exeを起動するときに画面のサイズに合わせて、np21を1倍、1.5倍、2倍の大きさのどれかにサイズを勝手に変更します。

また、左ALTキーとの同時押しで後述のホットキーが使用可能です。98君のGraph機能を使いたい方は右ALTキーでお願いします。

レジストリを変更してダブルクリック等でHDDイメージを開きたい場合は以下参照。
注意:レジストリの別の場所を変更すると、最悪Windowsを最初からインストールし直さないといけなくなるので、必ず自己責任でお願いします。

HDDイメージをダブルクリック等で起動するには、HDDイメージをダブルクリックでまず開く。
(以下拡張子がhdiの物について書くので、他のHDDイメージ使いの方は適宜hdiの部分を他の文字で置き換えてください。)

このファイルは開けませんといわれた場合は、「インストールされたプログラム〜」でOKボタン。何かのソフトが開いた場合は後述。
「np21.exe」のフォルダに入れた「AutoHotkey.exe」を参照からとりあえず指定する。
とりあえず、エラーになって終了する。
レジストリエディタで[HKEY_CLASSES_ROOT\hdi_auto_file\shell\open\command]の(既定)をダブルクリックして、最後のほうにある
「AutoHotkey.exe" "%1"」の部分を「AutoHotkey.exe" "C:\np2\np21h.ahk" "%1"」のように変更する。(C:\np2の部分は各自変更してね)

何かのソフトが開いた場合は、[HKEY_CLASSES_ROOT\hdi_auto_file\shell]を右クリック→新規→キー を押して「np2」等とする。
[HKEY_CLASSES_ROOT\hdi_auto_file\np2]を右クリック→新規→キー を押して「command」とする。
[HKEY_CLASSES_ROOT\hdi_auto_file\np2\command]をクリック→(規定)をダブルクリックして、"C:\np2\AutoHotkey.exe" "C:\np2\np21h.ahk" "%1" 等とする。(C:\np2の部分は各自変更してね)
既定で開くにしたい場合は、[HKEY_CLASSES_ROOT\hdi_auto_file\shell]をクリック→(既定)をダブルクリックして「np2」に変更。
editdisk.exeを右クリックで使いたい人は[HKEY_CLASSES_ROOT\hdi_auto_file\shell]に「edit」キーで同様に登録しておくと便利かも。


ホットキー一覧


左ALT+1statload 1
左ALT+2statload 2
左ALT+3statload 3
左ALT+4statload 4
左ALT+5statload 5
左ALT+6statload 6
左ALT+7statload 7
左ALT+8statload 8
左ALT+9statload 9
左ALT+qstatsave 1
左ALT+wstatsave 2
左ALT+estatsave 3
左ALT+rstatsave 4
左ALT+tstatsave 5
左ALT+ystatsave 6
左ALT+ustatsave 7
左ALT+istatsave 8
左ALT+ostatsave 9
左ALT+mMIDI Panic 曲が変わってMIDIの音が変になったときはこちら
左ALT+nNo Wait 実時間を無視して限界まで実行速度が上がる
左ALT+lReset
左ALT+jFDD1&FDD2 Eject
左ALT+kHDD IDE#0&HDD IDE#1 Eject
左ALT+F4スクリプト終了&np21終了 改造したスクリプトが暴走したときはこちら
左ALT+↑TOOLウィンドウのFDD1コンボボックスのディスク入れ替え(正順)
左ALT+↓TOOLウィンドウのFDD1コンボボックスのディスク入れ替え(逆順)
左ALT+←TOOLウィンドウのFDD2コンボボックスのディスク入れ替え(正順)
左ALT+→TOOLウィンドウのFDD2コンボボックスのディスク入れ替え(逆順)
左ALT+vホットキーの無効化/有効化切り替え

自力でスクリプトを改造する場合は、AutoHotkeyの日本語解説ページと、Spy++等のメッセージ監視ツール、又はソースプログラム(Win9x\resource.h , Win9x\NP2.H)を確認するとよいと思います。

np21の作者はstatsave/statloadをあまりして欲しくはないのではないかと思います。
すべて自己責任でお願いします。ゲームでのstatsave/statloadのやりすぎで、ゲーム中毒やパーソナリティ障害等にならないようくれぐれも注意ください。


技術資料


この章はAutoHotKeyスクリプトとWin32APIに関する技術資料です。
WindowsのAPIが全く分らない人は読まないで下さい。全て自己責任でお願いします。

とりあえず調べてみたところ、statsaveはwin32APIのPostMessageでWM_COMMANDメッセージの20100〜20109を送ってやれば、statloadはWM_COMMANDメッセージの20150〜20159を外部から送ってやればOKでした。(np21 081aの場合)
そんなソフトを自力だけで作るのは面倒極まりないので、調べてみたところ「AutoHotkey」というソフトならスクリプトからWM_COMMANDメッセージを送信可能なようです。
(UWSCでは難しい(T_T) )

mid=20150
mid+=%1%
SetTitleMatchMode, 2
SendMessage, 0x111, %mid%, 0,, Neko Project
return
↑引数に0〜9等を指定してstatloadコマンドを送信するスクリプト。(np21 081a用)
WM_COMMAND=0x111

mid=20100
mid+=%1%
SetTitleMatchMode, 2
SendMessage, 0x111, %mid%, 0,, Neko Project
return
↑引数に0〜9等を指定してstatsaveコマンドを送信するスクリプト。(np21 081a用)

こんな感じでコマンドラインから実行してみたらどうにかなるみたい。「AutoHotkey」はだいぶ癖のあるスクリプトでちょっとやりづらいな。慣れると便利なのかな?
使用できるメッセージ一覧はnp2ソースコードの「win9x/resource.h」に書いてある。



2015/07/25 かねやん
2015/09/17 No Waitを追加
2016/10/25 np21 086用に変更
2017/03/11 GUIでショートカットを作成する機能を追加 Last Update

本ホームページはどのページへもリンクフリーです。