#目的
過去に「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
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)にすると画面を広げることは可能である。
しかし、数秒毎に画面が息継ぎを起こすようにぶれて、かなり使いづらい。
Windows95の起動画面 ディスクトップ画面
#windows98システムディスクの作成
#windows95システムディスクの作成とほぼ同様。但しFDが2枚となり、セットアップ途中での交換が必要となる。
#windows98の実行
#windows95の実行とほぼ同様。
起動画面(youtube)
MiSTer (FPGA) ao486: Booting into Windows98
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の画面をトリニトロンで見てみたいような気もしますが、先立つものが必要となり、実現はなかなか難しいでしょうね。 なお、もし追試する奇特な方がおられた場合、上記記載内容は無保証であり、各自の責任においてご利用願います。