プログラミング
GameCube/Wii向けWindows NT
Windows NT for GameCube/Wii (github.com)
要約
このプロジェクトは、Nintendo GameCube、Wii、Wii Mini、Wii U (vWiiモード) などのシステムでWindows NT 3.51および4.0を動作させることを目指しています。フリッパーGPU、GameCubeコントローラー、N64コントローラー、USBキーボード/マウス/ストレージなどの主要なドライバーが含まれています。Windows NTをSDカードまたはEXI-IDEデバイスからインストールする手順が詳細に説明されており、初期のNT 3.51ビルドやNT 3.5との互換性に関する注意点も記されています。
全文翻訳
GameCube/Wii向けWindows NT
以下のシステムがサポートされています:
Nintendo GameCube
Nintendo Wii
Wii MiniはSDカードハードモディフィケーションが必要です(今のところ)
Nintendo Wii U(今のところvWiiのみ)
以下のシステムは理論上サポートされていますが、ハードウェアの希少性のためテストされていません:
Broadway Evaluation Board
Cortado boards
以下のシステムは決してサポートされません:
使用可能なRAMが4MBしかない初期のDolphin開発ハードウェア
存在するドライバ
Flipper割り込みコントローラ(HAL内)
ARCファームウェアおよびHAL用のFlipperビデオインターフェースコンソールフレームバッファ(YUV XFB)
NT下でのFlipper GPU RGBフレームバッファ(テキスト設定下でのEFBへの書き込み、GDI下でのテクスチャへの書き込み;VBLANK割り込みでのXFBへのコピー)
Flipperシリアルインターフェース(GameCubeコントローラポート)、以下のデバイスをサポート:
GameCube ASCIIキーボードコントローラ、および未リリースの英語/ヨーロッパ版(ファンタシースターオンラインのリバースエンジニアリングで発見);後者は全くテストされておらず、前者は実機でテストされていません
GameCubeコントローラ、以下のマッピング:
ARCファームウェア下:左アナログスティックとDパッドは上下にマッピング、AボタンはEnter、BボタンはEscape、Xボタンは文字「S」にマッピング
NTテキスト設定下:左アナログスティックとDパッドは上下にマッピング、CスティックはPage Up/Page Downにマッピング、AボタンはEnter、BボタンはEscape、XボタンはF8、Yボタンは文字「C」、Zボタンは文字「L」にマッピング
NT GDI下:左アナログスティックでマウス移動、Aボタンは左マウスボタン、Bボタンは右マウスボタン、L+R同時押しはCtrl+Alt+Del、Cスティックでキーボードスキャンコード(1-9, 0, a-z)を選択可能、Xボタンで選択したスキャンコードを確定。数字は最初にリストされているため、数字のみのテキストボックス(CDキー入力など)でも機能します。
N64ランドネットキーボード、全くテストされていないため問題がある可能性があります
N64マウス(NT下のみ)、全くテストされていないため問題がある可能性があります
N64コントローラ(全くテストされていないため問題がある可能性があります)、以下のマッピング:
ARCファームウェア下:左アナログスティックとDパッドは上下にマッピング、AボタンはEnter、BボタンはEscape、Zボタンは文字「S」にマッピング
NTテキスト設定下:左アナログスティックとDパッドは上下にマッピング、CスティックはPage Up/Page Downにマッピング、AボタンはEnter、BボタンはEscape、ZボタンはF8、Lトリガーは文字「C」、Rトリガーは文字「L」にマッピング
NT GDI下:左アナログスティックでマウス移動、Aボタンは左マウスボタン、Bボタンは右マウスボタン、L+R同時押しはCtrl+Alt+Del、C-DownとC-Upでキーボードスキャンコード(1-9, 0, a-z)を選択可能、スタートボタンで選択したスキャンコードを確定。数字は最初にリストされているため、数字のみのテキストボックス(CDキー入力など)でも機能します。
Flipper外部インターフェース(SPIバス)、以下のデバイスをサポート:
RTC
USB Gecko(カーネルデバッガ専用)
SD Geckoまたは互換品
IDE-EXIまたは互換品(実機ではテストされていません)
Vegas IOP IPC
Vegas SDMCコントローラ(IOS経由)
Vegas USB(OHCI/EHCI)コントローラ(IOS経由)、以下のデバイスをサポート:
USBキーボード
USBマウス
USBマスストレージ(現在いくつかの問題があり、一部のデバイスは動作しない可能性があります)
USBデバイスのホットプラグはサポートされていません。USBデバイスを使用するには、ARCファームウェアを起動する前に接続する必要があります。
ソフトウェア互換性
NT 3.51 RTM以降。NT 3.51ベータ版(ビルド944以前)は、プロセッサ検出バグのため、実行にカーネルパッチが必要です。NT 3.5はPowerPC 601のみをサポートしているため、決して互換性はありません。(NT 3.51 PMZの追加のサスペンド/ハイバネーション機能は理論的には互換性を持たせることができますが、実際にはそのための追加ドライバをすべて再実装する必要があります。)
インストール
準備
リリースページからバイナリをダウンロードし、SDカード(またはEXI-IDEデバイス)に展開します。
NT 3.51または4.0のISOを`sd:\nt\disk00.iso`にコピーします。
`sd:\nt\disk00.img`に任意のサイズのRAWディスクイメージを作成します。私は`qemu-img create disk00.img 2G`を使用していますが、サイズは適宜変更してください。FAT32パーティションの最大ファイルサイズは4GBであることに注意してください。
GameCubeではSwissから`arcldr_dol.dol`をロードします。Wii/vWiiではHomebrew Channelから`arcldr`をロードします。
ディスクのパーティション分割
ARCファームウェアメニューに到達したら、「Run firmware setup」に進み、次に「Repartition disk or disk image for NT installation」を選択します。
以前に作成したディスクイメージを選択します。
キーボードのY、GameCubeコントローラのXボタン、またはN64コントローラのZボタンでパーティション操作を確定します。
完了すると、パーティショナーは「Press any key to restart」と表示します。これによりシステムが再起動するか、ローダーに戻り、再度`arcldr`をロードできます。
NTのインストール
`cd00`から「Run NT setup」を選択します。「Setup could not determine the type of computer you have.」というメッセージが表示されます。「Other」(デフォルトで選択されているオプション)を選択し、ハードウェアサポートディスクを尋ねられたらEnter(またはAボタン)を押します。
リストからHALを選択します。現在、オプションは1つだけです:Nintendo GameCube, Wii and Wii U (vWii)。
次に、「Setup could not determine the type of one or more mass storage drivers installed in your system.」というメッセージが表示されます。この時点で少なくとも2つのドライバをロードする必要があります。ドライバをロードするには、Sキー(GameCubeコントローラのXボタン、N64コントローラのZボタン)を押してドライバを選択し、リストから「Other」を選択し、ハードウェアサポートディスクを尋ねられたらEnter(Aボタン)を押し、ドライバを選択します。
Nintendo Wii SD Slot (via IOS) [Disk Images] は、WiiまたはWii Uの前面SDカードスロットを使用する場合に必要です。
Nintendo Wii USB (via IOS) は、WiiまたはWii UでUSBデバイス(キーボード、マウス、マスストレージ)を使用する場合に必要です。
Nintendo GameCube Controller Ports は、GameCubeまたはWiiでGameCubeコントローラポートに接続されたデバイスを使用する場合に必要です。
SD Gecko or IDE-EXI and Compatible [Disk Images] は、GameCubeまたはWiiのGameCubeメモリーカードスロット、またはGameCubeの底面にあるシリアルポートでSD Gecko(または互換品)またはIDE-EXI(または互換品)デバイスを使用する場合に必要です。
これを簡素化すると:GameCubeでは最後の2つのみが必要で、Wii U vWiiでは最初の2つのみが必要です。Wiiでは最初の2つが必要で、GameCubeコントローラポート/メモリーカードスロットを使用するかどうかによって、最後の2つも必要になる可能性があります。
「Setup could not determine the type of video adapter installed in the system.」というメッセージが表示されます。リストから「Other」を選択し、ハードウェアサポートディスクを尋ねられたらEnterを押し、インストールするOSに応じて正しいオプションを選択します。このリストには2つのオプションがあります。ArtX Flipper, ATI Vegas, AMD Bollywood (NT 4) はNT 4用で、ArtX Flipper, ATI Vegas, AMD Bollywood (NT 3.x) はNT 3.51用です。
NTが起動し、テキストセットアップが開始されます。テキストセットアップを進めます。「Setup has determined that your computer contains the following hardware and software components」の下で、KeyboardをUnknownからXT, AT or Enhanced Keyboard (83-104 keys)に、Pointing DeviceをUnknownからNo Mouse or Other Pointing Deviceに変更します。
パーティションリストからC:ドライブを選択します。2GB以下のNTパーティションを作成することを選択した場合、フォーマットする必要があります。2GBを超えるNTパーティションを作成することを選択した場合、ディスク検査プロセスでエラーが見つかり、再起動が必要になります。SwissまたはHomebrew ChannelからARCファームウェアに再度ブートし、「NTのインストール」の手順をもう一度繰り返してこの点に戻る必要があります。2回目の試行ではディスク検査は成功しますので、NTテキストセットアップのパーティション選択で再びC:パーティションを選択してください。
残りのNTテキストおよびグラフィカルセットアップを通常通り進めます。
既知の問題
システムが再起動時にハングすることがあります。
一部のUSBマスストレージデバイスで問題があります。
GDIドライバは、GDIビットマップバッファからGPUテクスチャバッファへのコピーに遅い最適化されていないコードを使用しています。
ARCファームウェアとNTドライバはSDカード/EXI-IDEデバイス上のディスクイメージにexFATをサポートしていますが、ローダーはARCファームウェア本体のロードにexFATを現在サポートしていません。ローダーは現在USBマスストレージからのARCファームウェアのロードをサポートしていません。