なんかくれ

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 ダウンロード(ver0.86 rev91)
通常版です。ソースコード付きです。
Neko Project 21/W ダウンロード(ver0.86 rev92β3)
Neko Project 21/W ダウンロード(ver0.86 rev92β3)ish
β版です。ソースコード付きです。
Neko Project II ユーティリティディスク(np2tool.d88)
HOSTDRV.COM, PWOFF.COMなど
Neko Project 21/W ユーティリティ&ディスクイメージ
NPCNGCLK.EXE, NPCNGCFG.EXE, NPCCxx.COMなど(本家np2/np21で使っても何も起こりません)
過去バージョンのアーカイブ
旧バージョンのテストやdiffをしたい人向け(致命的なバグがあるバージョンも含まれます・ディスクイメージバックアップ推奨)
参考用設定ファイル
開発者が使っている設定ファイルです。ほぼフルで機能を使う設定になっています。
GETBIOS
所有している実機からBIOSイメージを作成するツールです(本家ページへのリンク)。
各ゲスト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のドライバを借りてくる方が良いかもしれません。旧バージョンが欲しい方は上記の過去バージョンのアーカイブから探してください。

N88-BASIC関連

N88-BASICで高速フーリエ変換をするプログラムです。 そんなに速くない代わりに機械語なしで動きます。

ほぼ下記のC言語ソースの移植ですので、私は権利主張いたしません。制限無く自由に使って頂いて構いません。
とは言え、今更BASICで何かすることもないと思いますが・・・
移植元→FFT (高速フーリエ・コサイン・サイン変換) の概略と設計法

BASICで高速フーリエ変換 第1回
BASICで高速フーリエ変換 第2回
BASICで高速フーリエ変換 第3回
BASICで高速フーリエ変換 第4回
BASICで高速フーリエ変換 第5回
BASICで高速フーリエ変換 第6回
BASICで高速フーリエ変換 第7回
BASICで高速フーリエ変換 第8回
BASICで高速フーリエ変換 第9回

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がない場合の制限事項は以下の通りです。逆に言えばこれ以外の制限はほぼありません。

なお、ITF.ROMは必要ありません(使用しません)。他、IDE.ROM等は非推奨のため用意する必要はありません。

機種依存系のフラグは全てNeko Project 21/Wが修正しますので、よほど特殊でない限りはどんな機種から取ってきても問題ないはずです。

メモリマップについて

Neko Project 21/Wのメモリマップはやや特殊ですので、UMBの設定の際はご注意下さい。 実機でチューニングしたものを持ってきてもそのままでは動かないと思います。

手動で設定するのが面倒な場合はHIMEM+EMM386やLEMMにしておけば自動でそれなりに設定してくれます。

使用機器アドレス備考
SASID0000h~D0FFFhSASI互換HDDをIDE#0, IDE#1に接続した場合のみ使用されます
SCSID2000h~D5FFFhSCSIを使用していない場合は空きになります
IDED8000h~DBFFFhrev69以降のエミュレーションIDE BIOSでは使用されません(実機IDE BIOS使用時のみ占有)。非公開機能で変更可能(付属ヘルプ参照のこと)

ディスクイメージ追加サポートについて

NVL.DLLを用意するとNeko Project 21/Wで追加のディスクイメージが読めるようになります。NVL.DLLについては「Neko Project 21/W(np21w, ねこープロジェクト21/W)用のVirtualPC等イメージ使用ライブラリ」で検索してください(ディスクイメージエディタのNDと同じサイトです)。ページにはビルド手順が書かれていますが、現在のバージョンでは既に取り込まれていますので変更用ファイルの中のNVL.DLLだけを用意すればOKです。

追加サポートされる主要なイメージ形式は以下の通りです。

ライセンスについて

Neko Project 21/Wの大半のコードは修正BSDライセンスですが、以下のファイルは移植のためライセンスが異なっています。これらを含めてコンパイルすると全体としてのライセンスが変わりますのでご注意ください。

ver0.86 rev88以降
ファイルライセンス除外方法
cirrus_vga*.*
lgy98*.*
MITSUPPORT_CL_GD5430とSUPPORT_LGY98をプリプロセッサ定義から削除する
fpemul_dosbox.c
fpemul_dosbox2.c
GPL fpemul_dosbox.c, fpemul_dosbox2.cをコンパイルから除外する
fpemul_softfloat.c修正BSDSUPPORT_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/*.*GPLv2USE_MAMEをプリプロセッサ定義から削除し、/sound/mame/*.*を除外する
ver0.86 rev87以前
ファイルライセンス除外方法
cirrus_vga*.*
lgy98*.*
MITSUPPORT_CL_GD5430とSUPPORT_LGY98をプリプロセッサ定義から削除する
fpemul_dosbox.c
fpemul_dosbox2.c
fpemul_softfloat.c
GPL 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/*.*GPLv2USE_MAMEをプリプロセッサ定義から削除し、/sound/mame/*.*を除外する

ソースコードについて

Visual Studio プロジェクトはwin9x\np2vs2010.slnとwin9x\np2vs2019.slnしかメンテナンスされていません。 また、最近のバージョンではDebugビルドもちゃんと通るようにしたつもりですが、保証はしません。 基本的にReleaseビルドのみ可です。Debugで通したい場合はReleaseの設定値を適当に移植してください。

Releaseビルドではデバッガで変数の中身を覗くことはできませんが、変数を覗きたいファイルの最適化を無効にすれば覗けるようになります。 面倒な人はプロジェクト全体で最適化を無効にしても構いませんが、かなりパフォーマンスが落ちるので注意してください。

コードにSetWindowsHookExを使ったグローバルキーフックが含まれているため、デバッガで停止中にキー入力をすると数秒フリーズします。 これを避けたい場合はHOOK_SYSKEYをプリプロセッサ定義から削除してください。

テキストフック用の機能について

INIファイルの[NekoProject21](または[NekoProjectII])セクションにUSETHOOK=trueを追記すると、テキストフック用の機能が有効になります。 パフォーマンスに悪影響があるので使わない時は無効にしてください。

具体的には、2バイト文字を読み取る際にlstrlenW, lstrlenA, CharNextAをコールし、フックプログラムがこれをキャプチャできるようにします。 ただし、これらの関数がコールされる場所は他にもあります。正しいフック対象の関数は実際に文字列を表示させて探してください。

Textractorというソフトウェアを使用する場合は、H-codeなるものを使用しなければならないかも知れません。

/HS4@0:kernel32.dll:lstrlenA
/HQ4@0:kernel32.dll:lstrlenW

トップに戻る