なんかくれ
Neko Project 21/Wとその他色々を公開しています。
Neko Project 21/Wは本家Neko Project 21をベースとしてPC-98中期~末期(1993年頃~)のエミュレーションも出来るように色々と機能追加したでものです。
このエミュレータはWindows2000(SP4 SRP1v2必須)以降のホストでのみ実行できます。Linux等では実行できません。非Windows環境の場合はAZO氏のNeko Project II (NP2) 改変を使うとほぼ同等の機能が使えます。
Neko Project 21/W以外は、実機用だったりドライバだったりツールだったりと雑多なものです。
Neko Project 21/W関連
※ステートセーブ・レジュームの互換性はバージョンアップの際に無くなる場合がありますのでご注意ください
※初めて使用される場合はページ下部の注意事項もご覧下さい
Neko Project 21/W 本体
binフォルダの中身は以下の通りです。
- np21x64w.exe
- Neko Project 21/W PC-9821エミュレーション 64bit版
- np21w.exe
- Neko Project 21/W PC-9821エミュレーション 32bit版
- np2x64w.exe
- Neko Project II/W PC-9801エミュレーション 64bit版
- np2w.exe
- Neko Project II/W PC-9801エミュレーション 32bit版
- np2.chm
- Neko Project 21/W ヘルプ
- language\
- 言語リソースファイル(メニュー日本語化などで使用)
- haxm\
- HAXM版(実質WinNT系ゲスト専用)
- vs2010\
- Visual Studio 2010版(旧ホストOS向け, Win2000以降対応)
Neko Project 21/W スターターセット
Neko Project 21/WをFreeDOS+HOSTDRVでとりあえず簡単に使用できるようにしてみた試作品です。
バージョンはver0.86 rev102です。バージョンを変えたい場合はexeを上書きしてください。
過去バージョンのアーカイブ
旧バージョンのテストやdiffをしたい人向け(致命的なバグがあるバージョンも含まれます・ディスクイメージバックアップ推奨)
Neko Project II ユーティリティディスク(np2tool.d88)
Neko Project II支援ツール群(本家でも使用できます)
- HOSTDRV.COM(新版)
- エミュレータ内からホストPCのディレクトリを仮想ドライブとして参照します。
- PWOFF.COM
- エミュレータ内からNeko Project IIを終了します。
- NP2IDLE.COM
- MS-DOSのアイドル時にHLT命令を呼んでホストCPU負荷を低減します。Win9xではNeko Project II HLT IDLEドライバ for Windows 9xを使ってください。
- NP2CHK.COM
- Neko Project 21/W系/Neko Project II系/それ以外を判定します。
Neko Project 21/W ユーティリティ&ディスクイメージ
Neko Project 21/W支援ツール群(本家np2/np21で使っても何も起こりません)
- NPCNGCLK.EXE
- エミュレータ内からCPUクロックを動的に一時変更します。
- NPCNGCFG.EXE
- エミュレータ内からハードウェア構成を一時変更します。
- NPCCxx.COM/NPCCxx.SYS
- NPCNGCLKおよびNPCNGCFGの軽量版COMとSYS(CONFIG.SYS用)です。
- NPCNGIRQ.COM
- エミュレータ内から指定デバイスのIRQを一時変更します。
- NPMAPIRQ.COM
- エミュレーションデバイスのIRQを一覧表示します。
GETBIOS
所有している実機からBIOSイメージを作成するツールです(本家ページへのリンク)。
1.25MB ベタFDイメージの77-79シリンダをカット or 追加するツール
名前の通り1.25MB ベタFDイメージの77-79シリンダを付けたり切ったりできるツールです。
Neko Project 21/W ドライバ類
Neko Project II HLT IDLEドライバ for Windows 9x (ver1.0)
エミュレータ内のWin9xでアイドル時にHLT命令を呼ぶドライバです。ホストCPUへの負荷をかなり低減することができます。
RainやCPUIdle等の類似ツールを常駐させると競合の可能性があるのでどちらか一方だけにしてください。
Neko Project 21/W システムポートドライバ&ユーティリティ for Windows NT (ver1.1)
エミュレータ内のNT系OSからNeko Project IIのシステムポートへアクセスするドライバとユーティリティです。
Neko Project 21/W ホスト共有ドライブドライバ&ユーティリティ for Windows NT (ver1.5)
エミュレータ内のNT系OSからNeko Project IIの共有ドライブ(HOSTDRV)にアクセスするドライバとユーティリティです。
エミュレータ内からホストPCのディレクトリを仮想ドライブとして参照できます。ロングファイルネームにも対応しています。
Neko Project 21/W ホスト共有ドライブドライバ&ユーティリティ for Windows 9x (ver1.0)
エミュレータ内の9x系OSからNeko Project IIの共有ドライブ(HOSTDRV)にアクセスするドライバです。
エミュレータ内からホストPCのディレクトリを仮想ドライブとして参照できます。ロングファイルネームにも対応しています。
Neko Project II ユーティリティディスクにあるDOS版HOSTDRVと併用・連携することもできますが、DOS版HOSTDRVを最新版にしておく必要があります。
Neko Project 21/W シームレスマウスドライバ for Windows NT (ver1.1)
エミュレータ内のWindows NT3.51, NT4.0, 2000をシームレスにマウス操作できるようにするドライバです。
Neko Project 21/W シームレスマウスドライバ for MS-DOS (ver1.8)
エミュレータ内のMS-DOSをシームレスにマウス操作できるようにする常駐プログラムです。未対応ソフトが多いので過度な期待はなさらぬように。
np21/w本体バージョンがrev100以前の場合は
ver1.6を使用して下さい
Neko Project 21/W 専用SCSIドライバ for Windows (ver1.1)
エミュレータ内のWindows 9xおよびWindows NTで使用出来るNeko Project 21/W専用SCSIドライバです。非常に高速に読み書き出来ます。
Neko Project 21/W 専用ディスプレイドライバ npdisp16 for Windows 3.1 (+9x) (ver0.15)
エミュレータ内のWindows 3.1で使用出来るNeko Project 21/W専用ディスプレイドライバです。技術的に遊ぶための物ですので商用レベルの安定性を求めないでください。おまけでWin9xでも使えるようにしました。
Windows3.1の範囲なら
npdisp16 ver0.14の方が高速かもしれません。
Neko Project 21/W その他
Neko Project II用 代替フォントビットマップ
MS Gothicで代替フォントを自動生成出来ない環境向けのFONT.BMPです。
実機FONTとは字形が違いますが、ある程度使用できるようになります。
参考用設定ファイル
開発者が使っている設定ファイルです。ほぼフルで機能を使う設定になっています。
各ゲストOS向けの設定ファイル
各OS用の推奨設定ファイルです。
Win2000 Setup(IDEのInterrupt DelayをRead/Writeともに2000以上にする必要あり)にさえ注意すればはあえて使う必要はないです。rev.81β2からはWin2000 Setupでのディレイ設定不要です。
各OSのセットアップ手順
各OSのセットアップ手順(旧サイトにあったもの)のアーカイブです。最近のバージョンであればこれを見ないでセットアップしてもほぼ問題ないです。
実機関連
エミュレータだけでなく実機でも使えます。
Sound Blaster 16 for PC-98 Windows2000用ドライバ (WDM) パッチ ver.0.8
Windows2000でSound Blaster 16 for PC-98を使うためのドライバをPC/AT互換機用ドライバから生成するパッチです。実機でも使えます。旧バージョンが欲しい方は上記の過去バージョンのアーカイブから探してください。
補足:Win98で公式最新ドライバ(DirectX対応)を使いたい場合はSB16.VXDのアドレス156CEにある8B C5をEB 61に書き換えると動くそうです(どこかに書かれていた情報です)
MPU-PC98II Windows2000用ドライバ (WDM) パッチ ver.0.8
Windows2000でMPU-PC98IIまたはその互換デバイスを使うためのドライバをPC/AT互換機用ドライバから生成するパッチです。実機でも使えます。安定性を求めるならNT4.0のドライバを借りてくる方が良いかもしれません。旧バージョンが欲しい方は上記の過去バージョンのアーカイブから探してください。
PC-98版 Windows NT系用 HLT命令パッチドライバ ver.1.1
PC-98版 Windows NT3.51, NT4.0, 2000でアイドル時にHLT命令が呼ばれないのを動的にパッチして呼ばれるようにするデバイスドライバです。
Window NT3.x用 ドライバINFインストーラ ver.1.0
Window NT3.xにおいて、NT4.0形式のレガシードライバINFに従ってファイルコピーとレジストリキー設定を行うものです。
Window NT3.xでのドライバ用レジストリキーの手動設定が面倒になったので作成しました。
真面目にINFを読み取らないので全てのNT4.0形式INFファイルをインストール出来るものではありません。
使用する場合は、付属の説明書をよく読んで使用してください。
また、ドライバ自体がNT3.xに対応していない場合ももちろん駄目です。
Neko Project 21/Wのユーティリティ系ドライバのセットアップで使用しています。
今時使う人はいないと思いますが再配布同梱等は自由にしてOKです。
Sound Blaster 16 for PC-98 WindowsNT4.0用ドライバ ver.1.2
WindowsNT4.0でSound Blaster 16 for PC-98を使うためのドライバです。実機でも動くそうですが作者はまだテストしていません。
MS-DOS及びIPLware用 SB16 for PC-98 設定変更ツール
Sound Blaster 16 for PC-98のIRQやDMAチャネルを一時的に変更するツールです。
MS-DOSまたはIPLwareで実行できます。
変更した設定はリセットで元に戻ります。
INT 1BhでフロッピーにアクセスするときDMAバンクを跨ぐとエラーになるか確認するプログラム
INT 1Bhでフロッピーにアクセスするときに、データ転送するメモリアドレスがDMAのバンク(64KB単位)を跨ぐとエラーになるかどうかを確認するだけの検証用プログラムです。
普通の人には用事がありません。開発者向けです。
PC-98 MS-DOS テキスト画面テストプログラム
MS-DOSのテキスト画面のテストを行うプログラムです。PC-98依存コードもテストできます。
普通の人には用事がありません。開発者向けです。
PC-98 MS-DOS 子プロセステストプログラム
MS-DOSの子プロセスのテストを行うプログラムです。
普通の人には用事がありません。開発者向けです。
PC-98 LIOテストプログラム
LIOのテストを行うプログラムです。
普通の人には用事がありません。開発者向けです。
Neko Project 21/W風(?) LIOテストプログラム
Neko Project 21/W風(?)にLIOのテストを行うプログラムです。
無駄にFPUを使ったのでFPUがないと完全な形では描画されません。
PC-98用 グラフィック&サウンド デモンストレーションプログラム NEON RELAY ver2.2
「ChatGPTにnp21/wのソースを全部投げてこれを参考にPC-98用プログラムを書いてと依頼すれば多分まともなのができる」という趣旨のことを迂闊に言ってしまいましたので、実証するために作ってもらったデモプログラムの1つです。ソース付きです。
要注意情報:プレーンモード機で/PEGC:packedオプションを使用するとプレーンモードが異常になる(スーパーリセットでも直らない)という情報があります。原因解明まで使用しないでください。
【追記① 2026/08/04 0時】状況次第で異常になり得るところを修正してプログラムを差し替えました。また、As初代では問題なく動いたようです。機械寿命の可能性もあります。
【追記② 2026/08/04 23時】単に256色の機能を使っているだけでハード的に壊すような要素は見つけられなかったので、原因不明です。発生が今のところ1件のみということからも、経年劣化したハードで256色の描画機能を酷使したことによってハードウェアが故障した可能性も捨てきれないです。
旧版:
NEON RELAY ver1.0 NEON RELAY ver2.0 NEON RELAY ver2.1
PC-98用 グラフィック&サウンド デモンストレーションプログラム NEON RELAY 2 ver1.0
上記PC-98用 グラフィック&サウンド デモンストレーションプログラム NEON RELAYの続編です。こちらもほぼ全部をChatGPTに書かせています。
N88-BASIC関連
N88-BASICで高速フーリエ変換をするプログラムです。
そんなに速くない代わりに機械語なしで動きます。
ほぼ下記のC言語ソースの移植ですので、私は権利主張いたしません。制限無く自由に使って頂いて構いません。
とは言え、今更BASICで何かすることもないと思いますが・・・
移植元→FFT (高速フーリエ・コサイン・サイン変換) の概略と設計法
SL9821勝手に改造関連
SL9821にNeko Project 21/WのLGY-98とCL-GD5430を無理やりくっつけてみた試作品です。
バージョンがかなり古いので注意。
SL9821 + LGY-98(TAP-Win32)
Neko Project 21/Wのソースを流用してSL9821(0.2.4.2)をLGY-98対応させてみたものです。使用条件等はSL9821のサイトをご覧下さい。
SL9821 + LGY-98(TAP-Win32) + CL-GD5430
Neko Project 21/Wのソースを流用してSL9821(0.2.4.2)をLGY-98とCL-GD5430ウィンドウアクセラレータに対応させてみたものです。別窓モードしか実装していない&マウス操作はメイン画面でしかできないので使いにくいと思います。使用条件等はSL9821のサイトをご覧下さい。
その他ソフトウェア
どのカテゴリにも属さない雑多なプログラムです。
注意事項
BIOSについて
本家Neko Project IIと同じく、Neko Project 21/WもBIOSがなくてもそれなりに動くように作られています。
BIOSがない場合の制限事項は以下の通りです。逆に言えばこれ以外の制限はほぼありません。
- フォントが実機と異なる(FONT.ROMが無いとき)
- ROM版・DISK版のN88-BASICが使用できない(BIOS.ROMが無いとき)
- サウンドBIOSを使用するソフトが正しく動かない(SOUND.ROMが無いとき)
なお、ITF.ROMは必要ありません(使用しません)。他、IDE.ROM等は非推奨のため用意する必要はありません。
機種依存系のフラグは全てNeko Project 21/Wが修正しますので、よほど特殊でない限りはどんな機種から取ってきても問題ないはずです。
メモリマップについて
Neko Project 21/Wのメモリマップはやや特殊ですので、UMBの設定の際はご注意下さい。
実機でチューニングしたものを持ってきてもそのままでは動かないと思います。
手動で設定するのが面倒な場合はHIMEM+EMM386やLEMMにしておけば自動でそれなりに設定してくれます。
| 使用機器 | アドレス | 備考 |
| SASI | D0000h~D0FFFh | SASI互換HDDをIDE#0, IDE#1に接続した場合のみ使用されます |
| SCSI | D2000h~D5FFFh | SCSIを使用していない場合は空きになります |
| IDE | D8000h~DBFFFh | rev69以降のエミュレーションIDE BIOSでは使用されません(実機IDE BIOS使用時のみ占有)。非公開機能で変更可能(付属ヘルプ参照のこと) |
ディスクイメージ追加サポートについて
NVL.DLLを用意するとNeko Project 21/Wで追加のディスクイメージが読めるようになります。NVL.DLLについては「Neko Project 21/W(np21w, ねこープロジェクト21/W)用のVirtualPC等イメージ使用ライブラリ」から入手してください(ディスクイメージエディタのNDと同じサイトです)。ページにはビルド手順が書かれていますが、現在のバージョンでは既に取り込まれていますので変更用ファイルの中のNVL.DLLだけを用意すればOKです。
NVL.DLLはNeko Project 21/Wのexeと同じ場所に置いてください。
NVL.DLLには32bit版と64bit版がありますので、np21w.exeなら32bit版を、np21x64w.exeならx64フォルダ内の64bit版を使用してください。
追加サポートされる主要なイメージ形式は以下の通りです。
- 容量可変VirtualPC形式
- VMware形式
- Hyper-V形式
- VirtualBox形式
- QEMU qcow形式
ライセンスについて
Neko Project 21/Wの大半のコードは修正BSDライセンスですが、以下のファイルは移植のためライセンスが異なっています。これらを含めてコンパイルすると全体としてのライセンスが変わりますのでご注意ください。
バージョンによってライセンスが異なる場合がありますので、必ずそのバージョンに該当する表を参照してください。
ver0.86 rev98以降
| ファイル | ライセンス | 除外方法 |
| /sound/fmgen/*.* | Readme参照 原則商用不可 | SUPPORT_FMGENをプリプロセッサ定義から削除し、/sound/fmgen/*.*を除外する |
| 以下のファイルは標準構成では除外されています(ビルド対象に含まれない) |
fpemul_dosbox.c fpemul_dosbox2.c | GPLv2 | 【標準で除外】使用する場合はSUPPORT_FPU_DOSBOXとSUPPORT_FPU_DOSBOX2を定義する。 |
| /sound/mame/*.* | GPLv2 | 【標準で除外】使用する場合はUSE_MAMEを定義し、USE_MAME_BSDを定義しないようにする。 |
| fpu/softfloat/*.* | Readme参照 修正BSD風味 | 【標準で除外】使用する場合はSUPPORT_FPU_SOFTFLOAT3の代わりにSUPPORT_FPU_SOFTFLOATを定義する。 |
| /wab/tgui9680*.* | GPLv2 | 【標準で除外】そもそも未使用なのでバイナリに影響なし。 |
ver0.86 rev97β2以降
| ファイル | ライセンス | 除外方法 |
cirrus_vga*.* vga_int.h lgy98*.* | MIT | SUPPORT_CL_GD5430とSUPPORT_LGY98をプリプロセッサ定義から削除する |
fpemul_dosbox.c fpemul_dosbox2.c | GPLv2 | SUPPORT_FPU_DOSBOXとSUPPORT_FPU_DOSBOX2をプリプロセッサ定義から削除し、fpemul_dosbox.c, fpemul_dosbox2.cをコンパイルから除外する |
| fpemul_softfloat.c | 修正BSD | 本体と同じライセンスになりました。 |
| fpu/softfloat/*.* | Readme参照 修正BSD風味 | SUPPORT_FPU_SOFTFLOATをプリプロセッサ定義から削除し、fpemul_softfloat.cとsoftfloat/*.*を除外する。 修正BSD版SoftFloatを使いたい場合はSUPPORT_FPU_SOFTFLOAT3を定義する。 |
fpemul_softfloat3.cpp fpu/softfloat3/*.* | 修正BSD | 独自ライセンスSoftFloatの代替品です。 |
| /sound/fmgen/*.* | Readme参照 原則商用不可 | SUPPORT_FMGENをプリプロセッサ定義から削除し、/sound/fmgen/*.*を除外する |
| /sound/mame/*.* | GPLv2 | /sound/mame/*.*を除外し、代わりに/sound/mamebsd/*.*を使用する。MAMEを一切使用しない場合はSUPPORT_MAMEをプリプロセッサ定義から削除。 |
| /sound/mamebsd/*.* | 修正BSD | GPLv2版MAMEの代替品です。 |
| /cbus/ct1741io.c | 修正BSD | 本体と同じライセンスになりました。 |
| /wab/gui9680*.* | GPLv2 | 未使用なのでバイナリに影響なし。削除してもOK。 |
ver0.86 rev88以降
| ファイル | ライセンス | 除外方法 |
cirrus_vga*.* vga_int.h lgy98*.* | MIT | SUPPORT_CL_GD5430とSUPPORT_LGY98をプリプロセッサ定義から削除する |
fpemul_dosbox.c fpemul_dosbox2.c | GPLv2 | SUPPORT_FPU_DOSBOXとSUPPORT_FPU_DOSBOX2をプリプロセッサ定義から削除し、fpemul_dosbox.c, fpemul_dosbox2.cをコンパイルから除外する |
| fpemul_softfloat.c | 修正BSD | SUPPORT_FPU_SOFTFLOATをプリプロセッサ定義から削除し、fpemul_softfloat.cとsoftfloat/*.*を除外する |
| fpu/softfloat/*.* | Readme参照 修正BSD風味 | SUPPORT_FPU_SOFTFLOATをプリプロセッサ定義から削除し、fpemul_softfloat.cとsoftfloat/*.*を除外する |
| /sound/fmgen/*.* | Readme参照 原則商用不可 | SUPPORT_FMGENをプリプロセッサ定義から削除し、/sound/fmgen/*.*を除外する |
| /sound/mame/*.* | GPLv2 | USE_MAMEをプリプロセッサ定義から削除し、/sound/mame/*.*を除外する |
| /cbus/ct1741io.c | GPLv2 | SUPPORT_SOUND_SB16をプリプロセッサ定義から削除し/cbus/ct1741io.cを除外する、またはDSP関連コードを手動削除 |
| /wab/tgui9680*.* | GPLv2 | 未使用なのでバイナリに影響なし。削除してもOK。 |
ver0.86 rev87以前
| ファイル | ライセンス | 除外方法 |
cirrus_vga*.* vga_int.h lgy98*.* | MIT | SUPPORT_CL_GD5430とSUPPORT_LGY98をプリプロセッサ定義から削除する |
fpemul_dosbox.c fpemul_dosbox2.c fpemul_softfloat.c | GPLv2 | SUPPORT_FPU_SOFTFLOAT, SUPPORT_FPU_DOSBOXとSUPPORT_FPU_DOSBOX2をプリプロセッサ定義から削除し、fpemul_dosbox.c, fpemul_dosbox2.c, fpemul_softfloat.cをコンパイルから除外する(Berkeley SoftFloatは本来別のライセンスですがfpemul_softfloat.cだけはDOSBox由来のコードを含むためGPLです) |
| fpu/softfloat/*.* | Readme参照 | SUPPORT_FPU_SOFTFLOATをプリプロセッサ定義から削除し、softfloat/*.*を除外する |
| /sound/fmgen/*.* | Readme参照 原則商用不可 | SUPPORT_FMGENをプリプロセッサ定義から削除し、/sound/fmgen/*.*を除外する |
| /sound/mame/*.* | GPLv2 | USE_MAMEをプリプロセッサ定義から削除し、/sound/mame/*.*を除外する |
| /cbus/ct1741io.c | GPLv2 | SUPPORT_SOUND_SB16をプリプロセッサ定義から削除し/cbus/ct1741io.cを除外する、またはDSP関連コードを手動削除 |
| /wab/tgui9680*.* | GPLv2 | 未使用なのでバイナリに影響なし。削除してもOK。 |
ソースコードについて
Visual Studio プロジェクトはwin9x\np2vs2010.slnとwin9x\np2vs2019.slnしかメンテナンスされていません。
また、最近のバージョンではDebugビルドもちゃんと通るようにしたつもりですが、保証はしません。
基本的にReleaseビルドのみ可です。Debugで通したい場合はReleaseの設定値を適当に移植してください。
Releaseビルドではデバッガで変数の中身を覗くことはできませんが、変数を覗きたいファイルの最適化を無効にすれば覗けるようになります。
面倒な人はプロジェクト全体で最適化を無効にしても構いませんが、かなりパフォーマンスが落ちるので注意してください。
コードにSetWindowsHookExを使ったグローバルキーフックが含まれているため、デバッガで停止中にキー入力をすると数秒フリーズします。
これを避けたい場合はHOOK_SYSKEYをプリプロセッサ定義から削除してください。
ビルドする際、VST 2 SDKが必要です。古めのVST 3 SDKにも含まれています。
VSTが不要な場合は、win9x\compiler.hにある#define SUPPORT_VSTiをコメントアウトして下さい。
テキストフック用の機能について
INIファイルの[NekoProject21](または[NekoProjectII])セクションにUSETHOOK=trueを追記すると、テキストフック用の機能が有効になります。
パフォーマンスに悪影響があるので使わない時は無効にしてください。
具体的には、2バイト文字を読み取る際にlstrlenW, lstrlenA, CharNextAをコールし、フックプログラムがこれをキャプチャできるようにします。
ただし、これらの関数がコールされる場所は他にもあります。正しいフック対象の関数は実際に文字列を表示させて探してください。
Textractorというソフトウェアを使用する場合は、H-codeなるものを使用しなければならないかも知れません。
/HS4@0:kernel32.dll:lstrlenA
/HQ4@0:kernel32.dll:lstrlenW
トップに戻る