98マニアックス 掲示板
[14539]
VGAカードのBIOS飛ばし

hrtk4ds75.kng.mesh.ad.jp

 
YU さん
新しくPCIタイプのVGAカードが発売されるたびに、PC-9821で使えるかどうかということが話題になりますが、100%確実にBIOSを「飛ばす」方法がようやくわかったので報告します。
ただし、BIOSを飛ばしても、「メモリカウントの直後にハングアップ」しなくなるだけで、Windows2000などが動作することを保証するわけではありませんので、念のため。

まず、マシンの起動時にハングアップするボードは、当然のことながらBIOSの書き換えが必要です。BIOSの書き換え中に電源を切ったりする、いわゆる「BIOS飛ばし」と呼ばれる技を使って成功する場合もありますが、成功率が低いですし、故障につながる可能性もあるので、精神衛生上よくありません。
最悪、そのボードがAT互換機でもまったく動作しなくなってしまう可能性もあります。

そこでPCI規格のデータシートを見ると、BIOS ROMの中には「PCIデータストラクチャ」という領域があり、その中に「コードタイプ」という1バイトのデータが書き込まれています。PC-9821本体のBIOSはこのバイトをチェックして、0x00ならBIOS ROMの初期化ルーチンにジャンプするという処理を行っています。これを0x01に書き換えてしまえばパソコン本体のBIOSはビデオカードのBIOSに制御を移さなくなるため、絶対にここでハングアップすることがなくなるのです。

「コードタイプ」の書き込まれている位置の具体的なアドレスですが、これはBIOSのバージョンが変わると移動する可能性があるので、新しいビデオカードやBIOSが出るたびに調べなくてはなりません。
まず、BIOSのROMイメージデータファイルをバイナリエディタなどで開きます。
そして、先頭からのオフセットアドレス0x0018〜0x0019に格納されているワードデータを見ます。そして、このワードデータに0x0014を足した物が、コードタイプが書き込まれているオフセットアドレスになるのです。
あと、BIOS ROMイメージファイルの末尾のバイトは、ファイル全体のチェックサムになっていますので、コードタイプを書き換えると同時に、チェックサムを1減らさなくてはなりません。つまり、書き換えるのは合計で2バイトになります。

以上の処理を自動的に行うプログラムを作成すれば、どんなビデオカードにも使える汎用の9821対応BIOSパッチプログラムができあがります。
最新のカードだけでなく、過去に発売された様々なビデオカードの動作報告を期待したいところです。
応用としては、メルコのWGP-FXが著作権の問題なしに98で使えるようになる可能性もあるので、誰か試してみませんか?
1. Reply: VGAカードのBIOS飛ばし

hrtk4ds75.kng.mesh.ad.jp

 
YU さん
過去ログを調べて見ると、以前発表されたG400のBIOSパッチはまったく同じことをやっていますね。
ということで、これで間違いなさそうだという確信が少し強まりました。ぜひ色々なビデオカードでの実験結果をお願いします。
2. Reply: VGAカードのBIOS飛ばし

207.75.101.98

 
UY さん
   〇\     \                    \
   \ \     \       \
     \ \     \       \            \
\     \ \     \       \.  \    \   \
  \     \ \      / ̄ ̄\ )))   \    \   \
   \     \ \  ./.| ◎ ◎ \  \  \    \   \
     \     \  ./ /|       \    ∠⌒∧   / ̄ ̄ ̄ ̄ ̄
      \     \|//.| ◎    ◎\_ (´∀` ||)< 自己責任でね
\           /|/./\        \  ̄\ゝ) ) \_____
  \      _ /  |/ ./\ ◎    ◎ \  \/   \      \
   \   / /  /\/ ./\         \   \   \  \.   \
     \/|/  /   \/ ./\ ◎    ◎ \   \ \ \  \   \
    //|  /      \/ ./\         \   \  \ \  \
 ((( |//|/          \/  ./\ ◎    ◎ \  \  \     \
\  |//\           \/ ./\         \  |      \
    |/ ./\           \/ ./\ ◎    ◎ \ |    \  \  \
  \

3. Reply: VGAカードのBIOS飛ばし

libra4.ntt-me.co.jp

 
dtx さん
物によっては、起動時のVGABIOS内部でチップの初期化などを行っている場合もあるそうですので、それだけでは動作しないかも。
4. Reply: VGAカードのBIOS飛ばし

ngy3067.i-chubu.ne.jp

 
yosh さん
G450PCIのBIOSパッチを公開していますが、G200とMillennium2の方は同様の方法でOKです
と言うよりもこの方法を使えばRADEON PCIですらセカンダリモニタとして使えますから
ただATiの方は一般にはBIOSフラッシュツールが出ていないので、基板から剥がして
ROMライタで書き込みを行うと言う動作が必要でしょうね

RADEON PCIですがプライマリモニタとしてはドライバが弾いてくれるので
今現在の所成功していません...、一瞬だけWindowsの画面が出るのですがその後青窓です(はぁ・・・
5. Reply: VGAカードのBIOS飛ばし

mtdo0641.ppp.infoweb.ne.jp

 
R220 さん
ドライバ側でVGABIOSの領域を見に行くものもあるのですが・・・。
6. Reply: VGAカードのBIOS飛ばし

sksw0244.ppp.infoweb.ne.jp

 
土野明日香 さん
 どもどもっ★土野明日香です。

 拡張ROM-BIOSのヘッダから1Ch〜33hの間に、
 50 43 39 38 CB 90 90 90 CB 90 90 90 CB 90 90 90 CB 90 90 90 CB 90 90 90
 と入れておけば、G/Aに限らずどんなボードでも大丈夫では?