LoginSignup
15
6

More than 3 years have passed since last update.

FPGA(DE10-nano)でwindows95/98を動かしてみた

Posted at

目的

 過去に「Next186_SoC」を「Papilio」というボードで、DOSの起動に挑戦した事が有る。
 FPGAに書き込み、ガラクタ箱から過去のパソコンソフトを取り出しインストール。
 x86なのでDOSまでしか動作させられなかったが、ここまで出来る事に少し感動した。
 ここまで出来るのであれば、windowsも動かしてみたいのが人情。
 いろいろ調べると「MiSTer」というprojectが引っ掛かり、windows95が動作すると記されているではないか。
 ◆◆◆ そうだ、これを使ってFPGAでwinddowsを動かそう ◆◆◆
 ちっとも役には立ちそうにない、過去へのノスタルジーだとしても。

経緯

 「MiSTerは2017年頃から開発された、DE10-nanoをベースとした汎用エミュレータシステムらしい。
 前からx86系のFPGA化は随時調べていたが、なぜか今までは「MiSTer」が引っ掛からなかった。
 ご存じの方には今更ではありますが追試を行い、素人でもここまで出来る事を確認した。
 1.まず必要となる前提ハードを調達。
 2.次に必要になるソフトを確認。(ガラクタ箱をがさごそ)
 3.DE10のSDカードにソフトをコピーして、電源ON。(おっ、こいつ動いたぞ)
 ※先に言っておきますが、windows95は動作がとろい、windows98は輪をかけてとろい。忍耐力が試させられますぞ。

前提条件

 以下のハード・ソフトを予め準備の事。(購入先、金額は参考)
 1. FPGA-board      DE10-nano(ソリトンウェーブで購入した 18k円)
 2. SDRAM-board    SDRAM XS v1.1 for MiSTer FPGA DE10-NANO Board(ebayで購入 2k円)
  ※MiSTer FPGA IO 5.6 Board for DE10 Nano も購入したが取り合えず要らなかった。
 3.OTG HUB        キーボード・マウスを接続する。(ルートアール 2k円)
 4.キーボード・マウス  パソコンで使っているもの
 5. MiSTerソフト      MiSTerからダウンロード
             ※以下で参照しているファイル名などは追試時点のもの、最新版の方が宜しいかと。
 6.DOS,Windowsソフト  過去のソフト等を漁る。
             ※手元には無い場合、探せばフリーのDOS等も有ります。
 7.VMWARE       windows95/98のインストールをパソコン上で行う場合
 8.Quartus Prime     FPGAのプログラム変更を行いたい場合(すごく時間がかかる)

ハードウェアの設定と動作確認

 1.DE10-nanoに電源とHDMIケーブルを接続。
 2.DE10-nano付属のSDカードでボードの動作を確認。
 3.SD-Installer-Win64_MiSTerでSDカードを作成。
  ※release_20190627.rarを解凍し、MiSTer SD Card Utility.exeを起動。
  ※8/16GBのカードで動作を確認。サイズは自動判断していると思われる。
 4.SDカードを装着し電源ON、メニュー画面が出れば動作正常。
 5.DE10-nanoにSDRAMを装着する。
 6.MemTest_MiSTerのreleases/memtest_20180313.rbfをSDカードのルートにコピー。
 7.DE10-nanoにOTG.HUB経由でキーボード・マウスを接続。
 8.HDMIにMiSTerの画面が出れはセットアップ正常。

 セットアップ画面(youtube)
 DE10-Nano - MiSTer Absolute Beginner Setup

biosの起動

 1.ao486_MiSTerのreleases/ao486_20190719.rbfをSDカードのルートにコピー
 2.SDカードのルートに ao486フォルダを作成。
 3.SDカードのao486フォルダに、releases/biosに有る boot0.rom boot1.rom をコピー
 4.SDカードを装着し電源ON、メニュー画面が出たらao486を選択しEnterしてbiosの起動を確認する。

DOSの起動

 1.DOSのフロッピーからFDイメージ(****.img)を作成する。(フロッピードライブ動くかな...)
 2.FDイメージをSDカードのao486フォルダにコピー。
 3.SDカードを装着し電源ON、メニュー画面が出たらao486を選択(Enter)してbios起動迄進める。
 4.「windows」キー(CTRLの右側)と「F12」キーを同時に押し、メニューを表示させる。
 5.Mount FloopyでFDイメージを選択。Systemメニューを再表示させ、一旦Save settingsを選択しておく。
 6.Systemメニューを再表示させrebootを選択するとFDイメージを読み込み再起動する。
  ※拡張メモリが32MBも有るのでHIMEMのTESTに時間がかかる。
   EMM386でエラーが発生する場合は、config.sysのEMM386を削除するかオプション(I=E000-EFFF)を追加する。
 
 MISTer起動(youtube)
 MISTer FPGA DE10 Nano - Part 2 ao486 DOS Setup
mistre.jpg   DE10にIO 5.6 BoardとSDRAMを装着した状態               Ao486の起動

windows95システムディスクの作成

 ao486上でもセットアップ可能と思われるが、処理にすごく時間がかかるので、VMWARE(パソコン)上で行う。
 1.ディスクの管理を起動、操作->VHDの作成で、1GB程度のVHDディスク(95sys.vhd)を容量固定で作成する。
 2.ディスクの管理を起動、操作->VHDの作成で、1GB程度のVHDディスク(95cd.vhd)を容量固定で作成する。
 3.vmwareを起動、新規仮想マシンの作成を選択。
 4.後でOSをインストール->次へ->windows95を選択->次へ->マシン名と場所を適当に->次へ->ディスク容量の指定を適当に(これは使わない)->次へ->完了と操作
 5.仮想マシン設定の編集を選択。先ほど作成したディスクは削除。
 6.ハードディスクを追加、95sys.vhdを指定する。
 7.ハードディスクを追加、95cd.vhdを指定する。
 6.CD/DVDを追加、windows95のセットアップCDのイメージを指定する。
 7.フロッピーを追加、windows95のセットアップCDのイメージを指定する。
 8.仮想マシンを再生する。CDがマウントされたドライブ(追試環境ではS:だった)を覚えておく。
 9.CDがマウントされた後でバッチ処理が停止する。(停止しない場合はCTRL+Cで強制停止)
 10.fdiskを起動し、95sys.vhdをc:、95cdをd:としてマウントする。
 11.formatを起動し、c:とd:をフォーマットする。
 12.cdがマウントされたドライブに移動(ここではS:)。win95ディレクトリに移動。(cd win95)
 13.セットアップを起動(setup)。
 14.画面指示に従ってセットアップを実行。
 15.セットアップが完了後に、cdの内容をd:(95cd.vhd)に全てコピー
  ※ao486で稼働時にEMM386でエラーが発生する場合は、config.sysのEMM386を削除する。

windows95の実行

 1.95sys.vhdと95cd.vhdをSDカードのao486フォルダにコピー
 2.SDカードを装着し電源ON、メニュー画面が出たらao486を選択(Enter)してbios起動迄進める。
 3.「windows」キーと「F12」キーの同時押しでメニューを表示。
 4.PrimardHDDに95sys.vhd、SecondaryHDDに95cd.vhdを設定、Boot orderをHDDに設定する。
 5.右矢印でSystemメニューを表示させ、Save settingsを選択してから、Rebootを実行。
 6.windos95が起動する。
 7.稼働するハードウェアが異なるのでプラグアンドプレィが起動ので、ドライバーを当てる操作を行う。
  インストール時とCDの位置が異なる場合は変更する。(S:->D:)
 ※初期画面はVGA(640x480)だが、ドライバをSVGA(800x600)にすると画面を広げることは可能である。
  しかし、数秒毎に画面が息継ぎを起こすようにぶれて、かなり使いづらい。
win95.jpg Windows95の起動画面                   ディスクトップ画面

windows98システムディスクの作成

 #windows95システムディスクの作成とほぼ同様。但しFDが2枚となり、セットアップ途中での交換が必要となる。

windows98の実行

 #windows95の実行とほぼ同様。

 起動画面(youtube)
 MiSTer (FPGA) ao486: Booting into Windows98
win95.jpg Windows98の起動画面                   ディスクトップ画面

NESゲームの実行

 どうしてもNESゲームを実行したい場合は
 1.NES_MiSTerをダウンロードする。
 2.releasesフォルダに有るNES_20190719.rbfをSDカードのルートにコピー。
 3.SDカードのルートにNESフォルダを作成し、所有している**.nesを格納。
 4.SDカードを装着し電源ON、メニュー画面からNESを選択。
 5.「windows」キーと「F12」キーの同時押しでメニューを表示させLoadで**.nesを選択。
 6.右矢印でSystemメニューを表示させ、Save settingsを選択してから、Rebootを実行、メニューから再度NESを選択する。

プログラムの変更

 コンパイルを行うと、使用しているaltera_16550_uartにライセンス(58k円也)が必要と言われます。
 ライセンスが無いと悲しいことに、rbfが作成されないので実行できないのです。
 これを回避するには「syste.qsys」を起動してシステムから「uart」を削除する(無くとも取り合えず動く)。
 これだけではエラーが出るので、「a0486.sv」の335行当たりに有るuart関連をコメントアウトすると作成可能となります。
 ただし、ao486のコンパイルには約50分を要したので、根性のない身にはかなり厳しい。



 MiSTerはDOS/Windows以外にアーケード系のゲームも(ROMが有れば)実行可能なマルチエミュレーターなので、xeviousの画面をトリニトロンで見てみたいような気もしますが、先立つものが必要となり、実現はなかなか難しいでしょうね。
 なお、もし追試する奇特な方がおられた場合、上記記載内容は無保証であり、各自の責任においてご利用願います。

15
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
6