MARTYPCは、Rustで書かれた初期のPCのクロスプラットフォームエミュレーターです。 Windows、Linux、MacOSをサポートします。 MARTYPCは、IBM PC、XT、PCJR、Tandy 1000を含むいくつかの8088ベースのシステムをエミュレートします。
MARTYPCユーザーガイドにアクセスするには、ここをクリックしてください
ビルドは、定期的なリリースを通じて利用できます。新しいワークフロー実行のアーティファクトの下にある[アクション]タブを介して、新しい自動ビルドを使用できます。 (アーティファクトをダウンロードするには、GitHubにログインする必要があります)。
Martypcは、Rustプログラミング言語を学びながら、エミュレーターをゼロから書くことができるかどうかを確認するための趣味プロジェクトとして始まりました。 MartyPCの私の当初の目標は控えめでしたが、想像もできなかった機能のレベルに達しました。
Emulation WorldにおけるMartyPCの意図されたニッチは、レトロPC開発の補佐官です。デバッグツールと伐採設備が詰め込まれており、さらに多くの計画があります。他のエミュレーターとしてセットアップするのはユーザーフレンドリーではないかもしれませんが、構成ファイルの編集に精通している場合は、大きな問題はありません。 Intel 8088のソフトウェアを作成するプログラマーは、コードのサイクルごとの正確な実行を確認および測定できます。
MARTYPCの開発は2022年4月に開始されました。2022年11月にMARTYPCの8088 CPUエミュレーションサイクルを作成する作業を開始しました。これを行うために、Arduino Mega Microcontrollerに接続された実際の8088 CPUに対するCPUの操作を検証しました。詳細については、Arduino8088プロジェクトを参照してください。これにより、命令をエミュレータと実際のCPUで同時に実行し、比較した実行結果をサイクルごとに実行できます。このプロセスの詳細については、私のブログで説明しています。
2024年6月に、8088のプリフェッチキューの運動をサポートするために、8088テストスイートをもう一度更新しました。さらに多くのサイクルの不正確さが見つかり、修正されました。 MARTYPCは、99.9997%のサイクルの精度で8088 V2テストスイートを渡します。
MARTYPCの周辺エミュレーションを改善するために、広範なハードウェア研究が実施されています。これには、Arduinoで8253タイマーチップの調査、oscilloscopeでのDMAタイミングの調査、最終的にはロジック分析装置を使用したバススニファーの構築が含まれます。
2023年4月、MARTYPCは悪名高いPCデモを8088 mphを実行するのに十分正確になりました。
2023年5月、MARTYPCは、PCデモエリア5150のあらゆる効果をエミュレートできる最初のPCエミュレーターになりました(ここでビデオ:https://www.youtube.com/watch?v=zadelm9g0zgを参照)
MARTYPCのWebAssemblyビルドは、Webブラウザーで8088mphとエリア5150の両方を実行できます。
現在、MARTYPCは、元のIBM 5150 PC、5160 XT、または汎用XTクローンマシンをエミュレートできます。
IBM PCJRおよびTandy 1000の予備的なサポートは、0.2.1の時点で存在します。これらのマシンはバギーで不安定な場合があります。
MARTYPCは次のデバイスをエミュレートします。
MARTYPCは、ベースマシン構成プロファイルと「オーバーレイ」と呼ばれるオプションの拡張機能を介してカスタムマシン構成をサポートします。
MARTYPCには、命令分解、CPU状態、メモリビューアー、さまざまな周辺の状態など、いくつかの便利なディスプレイを備えた広範なデバッグGUIがあります。コードとメモリのブレークポイントがサポートされています。 MARTYPCは、命令とサイクルベースのロギングもサポートしています。
別のウィンドウで2枚のビデオカードを実行するか、「正確」および「デバッグ」ビューで同じビデオカードを実行するか、異なるシェーダーを使用してください!
基本的で構成可能なCRTシェーダーは、今後さらに多くのものに含まれています(Librashaderサポートが計画されています)
詳細については、Wikiのスクリーンショットギャラリーセクションをご覧ください!
私は感謝すべき人の長いリストを持っています(Boxについて!)が、特にReenigneが行った貢献について言及したいと思います。彼の作業が8088マイクロコードを逆エンジニアリングすることがなければ、このエミュレーターは決して不可能でした。また、Ken Shirriffと彼の優れたブログに感謝し、8086のシリコンロジックの多くをカバーしています(およびExtlentionによる8088)。