Wizardry Bane of the Cosmic Forge ― 2017年09月09日 23:46
次いでBane of the Cosmic Forge
PC-98版にはMMXペンティアムで起動しないというバグがある(0で除算しましたというエラー)。
PC-9801版+エミュレーター(Anex86)という構成のWizardryCollectionもインストールするPCの構成によっては同様のエラーが発生して起動しないという現象が起きる。
Corei7のマシンで現象を確認したので、ホストになるWindows機のCPUが早すぎるとダメなんだろうか?
回避方法は2つ
1・Annex86の設定でTimingタブのTimerとVsyncにチェックを入れる(値はデフォルトの1.000のまま)
2・WROOT.EXEの001F37h:BB0A→BB84
2の方法でexeにパッチ当てたらMMX搭載のPC-9821でもBCFが起動できるかな?
MMXの9821持ってないから試せない。
ちなみにWizardryCollectionには2種類のAnex86が入っている。
Wizardry1~5用の普通のPC98互換機エミュレーター
BCF、CDS用のAT互換機用のDOSで起動可能なよう改造されたPC98互換機エミュレーター
どちらもPC98版のWizardryを動かしているんだけれど、Wizardry1~5は起動にMS-DOSを必要としないのに対し、BCF、CDSはMS-DOSが必須となる。
しかし、WizardryCollection発売当時すでにPC-98版のMS-DOSを保持している人はごく少数だったはずだし、WizardryCollectionにMS-DOSを同梱するのもライセンス的に問題が出る。
(価格が1万くらい高くなる?)
そこで、AT互換機のDOSで起動できるようにエミュレーターを改造したと思われる。
エミュレーターを実行するのはWindows機で、起動用FDD作成すればDOS入りシステムディスクは作れる。そのディスクを起動ディスクとして使えばライセンス問題をクリアできるということなのだろう。
pc86x.sysとpc86x.comがモード切替用プログラムみたい。
15年前ならともかく、今頃こんなこと書いても誰の役にも立たない気がするけどメモということで。
Wizardry Crusaders of the Dark Savant ― 2017年08月27日 22:05
ちょっと古い話だけど(いつもの事)忘れないように覚書。
PC-9801版のWizardry Crusaders of the Dark SavantはPentium機では起動しないというバグがある。
PC-9821版はこのバグが改善されているので、PentiumなPC-98(9821しかないはずだけど)ではPC-9821版を入手しないとゲームができない。
このバグの話、巷ではDOS/V版にあったバグがPC-9801版にも引き継がれていてPC-9821版で改善されたということになっているけど、厳密には間違い。
DOS/V版のPentiumで起動できないバグはPC-9801版ではしっかり修正されている。
では、なぜPC-9801番でもPentiumでゲームが起動しないかというと、これが9801版に特有の構成が原因だったりする。
DOS/V版、PC-9801版、PC-9821版3つのメインプログラム(DS.EXE)を比べると、PC-9801版のみプログラムが暗号化されている。
この暗号化はプログラムの実行時の最初にメモリ上で自己書き換えにより復号化される。
何故こんな事をしているのかと言えば、(想像だけど)コピー対策以外考えられない。
Crusaders of the Dark Savantはマニュアルプロテクト(ゲーム起動時にパスワードを入力するタイプ)の為、プログラムを少し書き換えてパスワード入力部分をスキップさせてしまえばプロテクトが簡単に無効になる。
※実際、Ultimate Wizardry Archivesに収録されている版はその手法でパッチ済みであり、パスワード入力しなくてもゲームが遊べるようになっている。
その書き換え場所を特定できなくするためにPC-9801版はプログラムを暗号化している(のであろう)。
で、Pentium機ではこの復号化に失敗する。
ゲーム発売当時、アスキーに申し出ればパッチを入手できたというのだけれど、このパッチは復号化したDS.EXEそのものではないかと想像している(今となっては手に入れる手段がないので確認できないけど)
ちなみに、PC-9801版のCrusaders of the Dark Savantが実行できる環境で、ゲーム起動→メモリ上でDS.EXEが復号化された時点でメモリダンプ→有効なヘッダ512バイトを付与するとPentium機でも実行可能なDS.EXEを生成することは可能。(先頭の画像は9801版をPentium133MHzの9821na13で起動したところ)
ただし、ヘッダの値はPC-9821版のDS.EXEを参考にしないと多分生成できないので、どのみちPentiumなPC-98でCrusaders of the Dark Savantをプレイするには9821版のCrusaders of the Dark Savantが必要という話。
そういえば、セーブデータのフォーマットははDOS/V版、PC-9801版、PC-9821版全て同じみたい。
データエディタであるCosmic Forge* Editorで普通に書き換え可能。
少なくとも、9801版のセーブを9821版で読み込んで続きをプレイなんてのは普通にできる。
この点、前作のBane of the Cosmic ForgeではDOS/V版、PC-9801版でセーブデータの互換性がなかった。(PC-9801版はCosmic Forge* Editorで書き換えできない)
こっちは9821版。
写真だと判りにくいけど、256色だから絵がきれい。(右下コインの部分なんかが9801版(16色)と比べると違いが判る)
PC-98シリーズでWindows98をCドライブ起動 ― 2015年10月04日 22:53
案外説明しているサイトが見当たらなかったので覚書。
当時は常識だったのか?
PC-98シリーズでWindows98をCドライブ起動でインストール(Windows95の時のSetup /ATと同等のインストール)する方法。
※以下手順はフロッピー1台の場合。2台接続の場合はB:をC:に読み替え。
1・まず一度Windows98を普通に第一パーティション(Aドライブ)にセットアップ開始する。(その際のconfig.sys、autoexec.bat、himem.sys、neccd.sys、mscdex.exe等は後で利用するのでフロッピー等に退避)
2・セットアップの途中で起動ディスクを作成する
3・セットアップ中断、起動ディスクから起動する。
4・HDDの第一パーティション(この時点ではB:)をフォーマットする。
5・RAMディスクに展開されているsys.exeをフロッピー(A:)にコピー
6・SYS B: /ATを実行。
7・1で退避しておいたconfig.sys、autoexec.bat、himem.sys、neccd.sys、mscdex.exe等をb:にコピー
8・一度リセットし、HDDの第一パーティションより起動。
9・起動ドライブがC:になっているので、CDなどから改めてWindows98をインストール。
当時は常識だったのか?
PC-98シリーズでWindows98をCドライブ起動でインストール(Windows95の時のSetup /ATと同等のインストール)する方法。
※以下手順はフロッピー1台の場合。2台接続の場合はB:をC:に読み替え。
1・まず一度Windows98を普通に第一パーティション(Aドライブ)にセットアップ開始する。(その際のconfig.sys、autoexec.bat、himem.sys、neccd.sys、mscdex.exe等は後で利用するのでフロッピー等に退避)
2・セットアップの途中で起動ディスクを作成する
3・セットアップ中断、起動ディスクから起動する。
4・HDDの第一パーティション(この時点ではB:)をフォーマットする。
5・RAMディスクに展開されているsys.exeをフロッピー(A:)にコピー
6・SYS B: /ATを実行。
7・1で退避しておいたconfig.sys、autoexec.bat、himem.sys、neccd.sys、mscdex.exe等をb:にコピー
8・一度リセットし、HDDの第一パーティションより起動。
9・起動ドライブがC:になっているので、CDなどから改めてWindows98をインストール。
P2B/WS その2 ― 2015年10月04日 22:32
完成。
前回の試作機を元に再度一から作り直し。
で、こんな感じ。
前回の試作機を元に再度一から作り直し。
で、こんな感じ。
コネクタはUSBだけどあくまでPS/2からの変換器なのでUSB-PS/2変換はマウス側にお任せ(だからPS/2対応マウスでしか動作しない)。
9821Na13のシリアルコネクタに接続して、Windows95+Intellipoint2.2、Windows98、MS-DOS6.2+P2BWHL(P2BWHLはMS-DOSでP2B/WSのホイール動作を上下キーに割り当ててくれるユーティリティー)でスクロール動作が正常に行われることを確認。
動作が確認できたのは
・LogicoolのM110
・LogicoolのG3 Optical
・Thinkpad付属のMO32BOB
(PS/2-MSXマウスコンバーターで動いたものは動いた)
とはいえ、細かな不具合もちらほら。
Windowsでは偶にホイールが効かないことがある。
再起動すると大抵正常に動作するし、一度正常に動作するとそのあとは問題ないので起動時のマウスの認識に問題あるのだろうか?
あと、P2BWHLは常駐直後ホイールが正常に動作しない。(ホイールを少し動かすと上下のキー入力が異常な回数発生する)
一度-Vオプションでバージョン表示すると正常動作になるんだけど、これも回路がおかしいのかNa13との相性なのか不明。
もっともP2BWHLにはソースが付属していたので、常駐部分にちょっと細工して今回作成したP2B/WSで正常に動作するよう修正できた。
この辺の動作も本家本元だと安定しているのかなぁ…
動作が確認できたのは
・LogicoolのM110
・LogicoolのG3 Optical
・Thinkpad付属のMO32BOB
(PS/2-MSXマウスコンバーターで動いたものは動いた)
とはいえ、細かな不具合もちらほら。
Windowsでは偶にホイールが効かないことがある。
再起動すると大抵正常に動作するし、一度正常に動作するとそのあとは問題ないので起動時のマウスの認識に問題あるのだろうか?
あと、P2BWHLは常駐直後ホイールが正常に動作しない。(ホイールを少し動かすと上下のキー入力が異常な回数発生する)
一度-Vオプションでバージョン表示すると正常動作になるんだけど、これも回路がおかしいのかNa13との相性なのか不明。
もっともP2BWHLにはソースが付属していたので、常駐部分にちょっと細工して今回作成したP2B/WSで正常に動作するよう修正できた。
この辺の動作も本家本元だと安定しているのかなぁ…
P2B/WS ― 2015年09月26日 22:50
PS/2マウス(ホイール付き)をPC-98に接続できるコンバーターとして2000年代前半に一部で話題だったP2B/WSを作成してみた。
物としてはクラッシックPC救済委員会のPS2Mouse to PC9801BusMouse with WHEEL Comverterと同等で、PS/2マウスをバスマウスに変換するんだけど、ホイール機能にも対応(ホイール機能はシリアルマウスとして変換)するというもの。
といっても、もう元サイト(http://www.miyagen.com/p2b/)も消えていて詳しい情報がない。
InternetArchiveをあさってみると、どうにかファームと解像度の低い回路図(サムネイル)が見つかった。
そこからどうにか回路図を読み取って実装してみることに。
で、作ったのがこちら。
物としてはクラッシックPC救済委員会のPS2Mouse to PC9801BusMouse with WHEEL Comverterと同等で、PS/2マウスをバスマウスに変換するんだけど、ホイール機能にも対応(ホイール機能はシリアルマウスとして変換)するというもの。
といっても、もう元サイト(http://www.miyagen.com/p2b/)も消えていて詳しい情報がない。
InternetArchiveをあさってみると、どうにかファームと解像度の低い回路図(サムネイル)が見つかった。
そこからどうにか回路図を読み取って実装してみることに。
で、作ったのがこちら。
とりあえず、基本のPS/2→バスマウス変換部分のみ実装。
これでも正常に動作した。
これだと、P2B/WS(withSerial)ではなくてP2B/NS(noneSerial)だね。
このあと、シリアルポート接続部分を作成すれば完成となる。
InternetArchiveで見つけた回路図(のサムネイル)は記号はどうにか読めるけど文字はつぶれて読めないので抵抗の値はかなり適当。
一応以下の通り。
RESETのプルアップ 10K
L、Rへの接続部分のプルアップ 4.7K
LEDへの抵抗 1K
元の回路図からの変更点は、PS/2-MSXマウスコンバーターと同じく、
・DataとCLKのプルアップ(4.7K)
・コネクタをミニDINからUSBへ
の2点。
一番苦労したのは廃盤品のAT90S1200の動作品を入手する事だったりした。
※海外から購入したらファーム書き込みができないものが送られてきた… orz
これでも正常に動作した。
これだと、P2B/WS(withSerial)ではなくてP2B/NS(noneSerial)だね。
このあと、シリアルポート接続部分を作成すれば完成となる。
InternetArchiveで見つけた回路図(のサムネイル)は記号はどうにか読めるけど文字はつぶれて読めないので抵抗の値はかなり適当。
一応以下の通り。
RESETのプルアップ 10K
L、Rへの接続部分のプルアップ 4.7K
LEDへの抵抗 1K
元の回路図からの変更点は、PS/2-MSXマウスコンバーターと同じく、
・DataとCLKのプルアップ(4.7K)
・コネクタをミニDINからUSBへ
の2点。
一番苦労したのは廃盤品のAT90S1200の動作品を入手する事だったりした。
※海外から購入したらファーム書き込みができないものが送られてきた… orz
最近のコメント