WinCE64 - N64용 Windows CE 2.11

2026/05/16 4:23

WinCE64 - N64용 Windows CE 2.11

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

このテキストは、EverDrive-64 X7 リーダーを実際の Nintendo 64 ハードウェアに Microsoft Windows CE 2.11 を成功裏に移植したという重要な技術的達成を文書化しています。エミュレーションとは異なり、この構成は Microsoft のコア

nk.lib
ライブラリを変更することなく、完全なデスクトップ機能—including ウィンドウ管理、N64 AI ハードウェアを用いたオーディオ出力、サードパーティ製 EXEの実行—を提供します。プロジェクトでは、元の CE 2.11 SDK にこれらの要素が含まれていなかったため、外部資源(例:libdragon ライブラリ)を用いてデスクトップシェル(Explorer、タスクバーなど)全体を从头再構築する必要がありました。主要な技術的作業には、RDP アクセラレーション付きの VI フレームバッファ用のカスタムドライバ、Joybus 経由での N64 コントローラ入力デコーディング、インタラプトマスク問題を解決するためのポーリングモードオーディオ処理が含まれます。公式エミュレーションは深いパッチが必要であるため未対応ですが、この概念実証(PoC)により、独自ドライバの実装を通じてレガシーソフトウェアをヴィンテージハードウェア上で動作させる方法が示されました。ただし、プロジェクトソースコードが MIT ライセンス下にあるにもかかわらず、結果生成されたバイナリは制限的な Microsoft SDK ライセンシングのために再配布できません。

本文

Nintendo 64 における Windows CE 2.11

本項目は、実機の Nintendo 64 に標準的な Microsoft Windows CE 2.11 を動作させるものです。カスタム作成された HAL(ハードウェア抽象層)が、未改変の

nk.lib
カーネルを VR4300 プロセッサにロードし、Windows CE 2.11 の GWES デスクトップおよびシェルを起動します。さらに、EverDrive-64 X7 内の SD カードを
\SDCard
ルート下としてマウントし、N64 コントローラーをマウスとして扱います。標準的な CE ワープロ(wave stack)経由で N64 AI ホールウェアからサウンドを発振させ、また SD カードに格納されたサードパーティ製 CE 2.11 EXE を直接実行可能にします。

これは趣味のためのリバースエンジニアリングプロジェクトです。マイクロソフトによる公式の「N64 向け Windows CE 2.11 ポート」は存在しません。「未改変の nk.lib」以下(HAL、OAL ディスプレイドライバー、FSD ファイルシステム、キーボード/マウス PDD、wave PDD、RDP アクセラレーション付き GDI フルフィルメント、ed64-X7 ドライバー)に至る全てが、本リポジトリに含まれています。

YouTube での紹介映像:https://www.youtube.com/watch?v=eGS9su_inBY

ステータス

実機の Nintendo 64 と EverDrive-64 X7 を使用して完全起動可能です。以下の機能が正常に動作しています:

  • デスクトップ、タスクバー、ファイルブラウザ;ウィンドウのドラッグ操作、「X」マークによるクローズ、モーダルダイアログ
  • N64 コントローラーがカーソルを駆動(A ボタン=左クリック、B ボタン=右クリック)
  • FatFS を経由した X7 カートリッジ上の SD カードから
    \SDCard\*
    をマウント
  • sndPlaySoundW
    または
    waveOutOpen
    を通じた Wave オーディオ出力(N64 AI ホールウェアへ)
  • SD カードからサードパーティ製 CE 2.11 EXE の起動可能(例:BeziersCE)
  • RDP アクセラレーションによる 3D デモ(
    cube3d.exe
    )が、RDP を介してフラットシェーディングされた三角形を直接レンダリング

アーキテクチャ

未改変の

nk.lib
が中核(トランク)であり、PSLディスパッチャー、スケジューリング、TLB を管理しています。これを中心に、標準的な Windows CE 2.11 のユーザーモードモジュール(
coredll.dll
gwes.exe
filesys.exe
device.exe
shell.exe
)が ROM イメージからそのまま読み込まれます。カスタム開発部分は以下の通りです:

  • HAL / OAL (
    bsp/hal/
    ) — 起動処理、例外ベクター、MIPS 初期化、タイマー、USB デバッグ用、さらに 2 つの LE モードにおける RDRAM パartial-word クイック workaround を実装。
  • ディスプレイドライバー (
    bsp/drivers/display/
    ) — VI フレームバッファーと RDP フルフィルメントアクセラレーションに加え、オーバーレイ非対応ハードウェアにおいて Windows CE 2.11 の分割された
    CURSOR.LIB
    /
    MCURSOR.LIB
    で残された隙間を埋えるソフトウェアカーソルコンポジターを備える。
  • マウス/キーボード PDD (
    bsp/drivers/kbdmouse/
    ) — SI ジョイバスポーリングにより、N64 コントローラーと公式 N64 マウスの双方をデコード。
  • SD ファイルシステム (
    bsp/drivers/sdfsd/
    ) — FatFS に基づく FSD で
    \SDCard
    ルート下に登録。実ハードウェア特有の「書込後のリード」クイックを回避するため、libdragon の
    libcart
    を置き換え、PI-DMA 基盤の EverDrive-X7 ドライバー(
    edx_x7.c
    )を採用。
  • Wave PDD (
    bsp/drivers/wavedev/
    ) — MI_INTR_MASK_AI が実ハードウェア上で SysAD バスを停止させるため、インテラプトではなくポーリング方式を採用した AI 用ドライバーを、標準の
    waveapi.dll
    の上に構築。
  • commctrl.dll (
    bsp/drivers/commctrl/
    ) — Windows CE 2.11 の
    commctrl.lib
    に含まれるはずだった
    DllMain
    を含む小型実体;これによりスプリナーコントロール(
    msctls_updown32
    クラスなど)が正常に登録される。
  • シェル (
    bsp/shell/
    ) — Win9x 風のデスクトップ、タスクバー、ファイルブラウザを実装。
  • RDP 3D ライブラリ (
    bsp/lib/rdp3d/
    ) — ユーザー製 EXE が使用する最小限の三角形レンダライザー(
    bsp/apps/cube3d/
    で利用)。

長時間にわたるデバッグ史(キャッシュクイック、TLB ウォーク、GWES 起動、CE サイド Wave スタックの特殊性など)については、各ドライバーのソースコードレベルにあるコメントを参照してください。

必要なもの

本リポジトリは、マイクロソフトまたは任天堂が保有するプロプライエタリなファイルを意図的に含まれていません。外部ツリーはご自身で入手し、このディレクトリの隣(またはシンボルリンク)に配置する必要があります:

パス内容入手先
wince211_sdk/
Microsoft Windows CE 2.11 Platform Builder / Embedded Toolkitすでに絶版ですが、オンライン上で入手可能です。
libdragon/
N64 ホームブリューツールチェーン(mips64-elf-gcc, n64.mk)と FatFS ソースhttps://github.com/DragonMinded/libdragon — クローン後、インストールスクリプトを実行し
$N64_INST
をツールチェーンに指させる。
EverDrive-64 X7実機動作用カートリッジhttps://krikzz.com。SD カードには公式 EverDrive フームウェアの複製を格納する必要があります。

ホスト側の開発環境:

  • Wine — SDK 内の
    CLMIPS.EXE
    LINK.EXE
    RC.EXE
    ROMIMAGE.EXE
    はすべて Wine 上で動作します。Linux でテスト済みです。
  • Python 3 と Pillow
  • libdragon ツールチェーンから取得した mips64-elf-gcc(ブートローダー ROM の作成用)
  • EverDrive-X7 への USB 経由アップロードを行う場合や
    diag/ed64_upload
    をビルドする場合は、libftdi1 のインストールが必要です。

ビルド手順

wince211_sdk/
libdragon/
をこのディレクトリの隣に配置した後:

このスクリプトは HAL および全てのドライバー DLL をコンパイルし、Wine 上で

LINK.EXE
ROMIMAGE.EXE
を実行することで
bsp/build/nk.bin
(標準的な CE ROM イメージ)を生成します。その後、ブートローダーの
Makefile
と連鎖して、これを libdragon IPL3 トランポリンでラップし、出力を
bootloader/n64ce.z64
(約 3.5 MB、X7 で直接読み込める形式)に導きます。

通常のクリーンビルドは現代のハードウェアであれば約 30 秒で完了します。支配的なコストは Wine のコールドスタートですが、ビルドスクリプトでは一時的な wineserver プロセスを維持することでこれを相殺しています。

実行方法

実機の Nintendo 64 + EverDrive-64 X7 で動作させる場合

USB アップローダーを一度ビルドしてください:

cd diag && make ed64_upload

その後、アップロードして起動:

diag/ed64_upload bootloader/n64ce.z64       # 書き込み+起動
diag/ed64_upload --listen bootloader/n64ce.z64   # USB デバッグ出力もストリーム配信

注記:

--listen
オプションは、アップロード後も FTDI ハンドルを開放するため、デバッグ出力の喪失を防ぎます。

エミュレーター上で動作させる場合

初期の開発では、LE モードにおける RDRAM パartial-word クイックへの対応のための小さなローカルパッチを適用した Ares を使用していましたが、やがてこれは「Ares の改善プロジェクト」へと変化してしまい、実機ハードウェアでのテストのみという方針から逸脱する結果となりました。Ares 上で動作させることはより深い穴に突入することとなり、現状ではこの領域は取り組んでおりません。他のエミュレーターでの動作検証も行っていません。

リポジトリの構成

  • bsp/ — N64 向け BSP:HAL、OAL、ドライバー、シェル、アプリ、ROM イメージを内包
    • hal/
      — 標準 nk.lib 上のカスタム HAL
    • drivers/
      — ディスプレイ、kbd/mouse、sdfsd(FatFS)、wavedev、commctrl
    • lib/rdp3d/
      — ユーザー製アプリで使用される三角形レンダライザー
    • apps/
      — cube3d、paint、notez(ROM 中にリンク)
    • shell/
      — デスクトップ、タスクバー、ファイルブラウザ、アイコン
    • build.sh
      — ビルド全体を制御するスクリプト
    • ce.bib
      — ROMIMAGE ビルド情報ファイル(メモリマップ+モジュールリスト)
  • bootloader/ — カートリッジから nk.bin をロードするための libdragon IPL3 トランポリン
  • diag/ — 裸金属用の診断用 ROM(LE モードクイックテスト、オーディオテスト、USB アップローダー、ed64 リブートなど)
  • docs/ — アーキテクチャ図、ハードウェアデバッグノート、N64 クイックのドキュメント

(このリポジトリに含まれない外部依存)

  • libdragon/
    → DragonMinded/libdragon のクローン
  • wince211_sdk/
    → MS Embedded Toolkit からの CE 2.11 SDK
  • ed64-x-pub/
    → krikzz/ed64-x-pub(参照用;ビルド対象外)

FAQ

なぜこれを開発しましたか? 非常に良い質問です!アイデアは IBM Workpad Z50 に着想を得ました。これは N64(VR4300)と非常に類似した MIPS CPU(VR4121)を使用しています。N64 で Windows を動かすための実用的な理由はまったくないため、プログラミング上のチャレンジとして捉えて開発を進めました。

事前ビルド済みの ROM は入手できますか? 残念ながらありません。一つも存在せず、今後発行する予定もございません。

bash bsp/build.sh
を実行してご自身で構築してください。生成される
n64ce.z64
は SDK の静的ライブラリから Microsoft CE 2.11 のバイナリ(nk.exe、coredll.dll、gwes.exe、filesys.exe、ddi.dll の MGDI/GPE ライブラリなど)をリンクしています。完成した ROM を配布すると、これらのバイナリも再頒布することになり、私はそれを許可するライセンスを持っておりません。本リポジトリ内のソースファイルは MIT ライセンスですが、ビルド結果ではありません。

SDK を購入することはできますか? いいえ、約 20 年間購入することはできません。Microsoft Windows CE 2.11 Platform Builder(Visual C++ 6.0 Embedded Toolkit の一部として出荷)は 2000 年代初頭に販売され、2004〜2005 年頃には静かに廃止されました。マイクロソフトはこれを再頒布する事も、オープンソース化する事もなく、ダウンロードサイトからも削除されています。当初付属していた EULA は個々の開発者向けの開発ライセンスであり、埋め込みソフトウェアを構築しそのバイナリを埋め込みデバイス内に収めることは可能でしたが、SDK 自体や静的ライブラリだけを再頒布することは許可されていません。Toolkit のアーカイブ ISO がインターネット上に流れていますが、これらを特定する作業は各自にお任せします。

エミュレーター上で動作しますか? おそらくでしょうが、前述の「実行→エミュレーター」項を参照してください。実機ハードウェアがテストベッドであり、エミュレーター経路の維持は行っておりません。

自作の CE 2.11 MIPS EXE を動かすことはできますか? はい可能です。SD カードにドロップしてファイルブラウザから起動してください。BeziersCE は完全なエンドツーエンドでの動作が確認されており、commctrl スプリナーダイアログも正常に機能します。ただし N64 で公開されていないハードウェア CE 機能(ネットワークスタック、実キーボード、GAPI など)を必要とするアプリは失敗します。

なぜアイコンの見た目が奇妙でしょうか? 2 つの理由があります:

  1. CE 2.11 SDK にはアイコンが含まれていません(一部の EXE アイコンを除く)。
  2. 法的な理由により、このリポジトリにクラシックな Win9x アイコンを追加することができません。

bsp/shell/icons
下にある醜いアイコンをより本格的なものに取り替えると、問題なく動作します。

どの部分がカスタム開発でしょうか? かなりの部分です。CE 2.11 SDK / Platform Builder が提供するのはカーネル(nk.lib)、coredll.dll、gwes.exe、filesys.exe、device.exe、共通コントロール、MGDI/GPE ディスプレイ抽象化、Win32 API 表面です。しかし配送されないのはデスクトップシェルであり、すなわち Explorer、タスクバー、スタートボタン、デスクトップウィンドウ、ファイルブラウザです。OEM は GWES ウィンドウ管理APIの上位に独自のシェルを構築することが期待されていました。マイクロソフトは H/PC Pro デバイスにプリビルトされたシェルを搭載して販売しましたが、プラットフォームビルダー内に参照シェルソースが登場したのは CE 3.0 より後(IESAMPLE / EXPLORER サンプル)です。2.11 ではご自身でお作りいただく必要があります。

したがって

bsp/shell/
— Win9x 風デスクトップ、時計+スタートボタン付きタスクバー、
FindFirstFileW
を経由して
\SDCard\
を探索するファイルブラウザ、commctrl スプリナーが正常動作するモーダルダイアログ — はすべて、標準的な CE 2.11 GWES API に対する独自コードです。GWES 以下の部分も同様です:CE 2.11 はインターフェースを配送し、OEM がデバイス固有のドライバーをその下に記述することを期待するため、HAL/OAL、ディスプレイドライバー、kbd/mouse PDD、SD FSD、wave PDD、RDP フルフィルメントコード、ed64-X7 カートリッジドライバー、commctrl DllMain はいずれも N64 向けのカスタム実装です。

ライセンス

MIT ライセンス(LICENSE ファイル参照)。MIT のスコープは本リポジトリ内のソースファイルのみです。ビルドでリンクする Microsoft Windows CE 2.11 SDK / Platform Builder バイナリは別途ライセンス条項があり、合法的に入手する必要があります。

同じ日のほかのニュース

一覧に戻る →

2026/05/16 1:15

プロジェクト・グテンベルク:良くなるばかりです

## Japanese Translation: Project Gutenberg は 1971 年に設立された先駆的な非営利図書館で、市民向けに 75,000 冊を超える無料の電子書籍を提供しています。その核心的な使命は、米国での著作権が失効した著作物のデジタル版を提供することで歴史を保存することであり、これらの文本は公開前に何千人ものボランティアによって細心の注意をもって校正されています。アーカイブへのアクセスには登録費用や専門ソフトウェアは一切不要であり、ユーザーは Web ブラウザですぐに閲覧でき、epub や Kindle などの一般的な形式でコンテンツをダウンロードできます。メインサイトでは公共の領有権にある古典作品に焦点を当てていますが、self.gutenberg.org という独立したセクションでは World Library Foundation から提供される自己出版タイトルがホストされています。サイトはさらにボランティアによって手が選別された読書リストも提供しています。研究者や企業向けには、著者、タイトル、主題、言語、タイプ、人気度でフィルタリングや検索ができる堅牢な機能があり、アクセスが可能です。Project Gutenberg は新刊のデジタル化を継続するために寄付を受け入れており、この支援がない場合、コレクションの拡大は不可能になります。入るための障壁なく、すべての人々のために知識を民主化する 100% フリーのリソースとして 50 年以上運営されてきたことです—from カジュアルな読者から産業用途まで—。そのリーダーシップに関するリソース、例えば元 CEO で亡くなられた Greg Newby 博士については、サイト上に利用可能です。

2026/05/16 3:37

ツリプル財団。

## Japanese Translation: 2026年5月15日、Zulipの創設者であるTim Abbottはフルタイムでのリーダー職を退き、Anthropicへの参画を果たします。この際、Alya Abbott、Greg Price、Alex Vandiverを含む3名のシニアチームメンバーも一同に立ち寄り、Kandra Labsは新たに設立された独立した非営利法人「Zulip Foundation」へ寄附され、プロジェクトは私的所有から Mozilla や Signal に準じた公共的利益に基づくガバナンスモデルへと移行します。同財団はプロジェクトを管理し、公共団体を中心に活動しつつ、助成金および税金控除可能な寄付を通じて持続可能な資金調達を実現し、投資家による支配を防ぎます。最初の理事会には、創設者である Tim Abbott、共同創設者の Greg Price、製品担当の Alya Abbott、Rust リーダーの Josh Triplett が選任されます。拡大された諮問委員会では、Andrew Sutherland(MIT)、Nick Bergson-Shilcock などの専門家も参加します。運用はすべて継続:Zulip Cloud、モバイルプッシュ通知、サポート契約、Google Summer of Code、オープンソースのスポンサーシップなどがそのまま活性しています。Kim Vandiver が副理事長として加わり、安定期の確保を図ります。開発ペースは次四半期に若干低下しバグ除去を優先する可能性がありますが、12名の平均4年以上の在籍期間を持つ経験豊富な維持管理チームおよび約25,000コミットのコード履歴が、プラットフォームのレジリエンスを支えています。Tim Abbott は時間の許す限りコンテキストと助言を提供し続けています。変更に関する詳細については、5月19日午後4時(UTC)にライブチャットで Q&A を開催しコミュニティと議論を行います。本移行は、オープンソースの価値観とコミュニティによる統御下での長期的持続可能性を最優先とするものです。

2026/05/14 23:32

天然存在の準結晶

## Japanese Translation: 科学者たちは、準結晶——独自かつ繰り返さない幾何学的パターンを有し、通常は研究室のみで存在すると考えられていた材料——が自然に存在するという長年受け入れられてきた信念を覆す発見を発表した。この発見は、5 つの明確な天然産生の標本の存在を確認している:その内 3 つはロシア遠東部におけるハティルカ隕石(超高速の小惑星衝突により形成)で見出され、残り 2 つは地球由来の現象に起因するものである。隕石に含まれる標本には、完全な三次元二十面体対称性を有するイコサエダライト(Al63Cu24Fe13)、二次元で十重対称性を持つデカゴンアイト(Al71Ni24Fe5)、および二十面体対称性は持つが組成が異なる i-Phase II(Al62Cu31Fe7)が含まれる。地球上では、ハイアンニス近郊の落雷により形成されたフルグリトの内部にネブラスカ州で 4 つ目の準結晶が特定され、この Mn-Si ベースの変種(~Mn72.3Si15.6Cr9.7Al1.8Ni0.6)は 12 重対称性を示し、高電流・高温・急速冷却事象によって生成された新しい準結晶タイプとしては初めてであるが、その起源については自然発生か人為的なものかの間で若干曖昧さを残している。さらに、5 つ目の標本はニューメキシコ州のトリニティ原子爆弾試験場において、融着した廃棄物(砂漠の砂と銅ケーブル)の中から発見され、二十面体対称性を有し組成式 Si61Cu30Ca2Fe2 を持つことで、他とは異なる偶然的合成を示している。これらの発見は、PNAS(2012 年、2016 年、2021 年、2023 年)や IUCrJ の主要な学術誌に掲載され、自然界が稀な衝突および集中的なエネルギー事象を通じてこれら超複雑な金属構造を自発的に生成できることを示しており、地質歴史および天体物理学データの再評価を必要としている。以前は、既知のすべての他の準結晶が実験室で製造されたものだと考えられていた。 ## サマリー: 科学者たちは、準結晶——独自かつ繰り返さない幾何学的パターンを有し、通常は研究室のみで存在すると考えられていた材料——が自然に存在するという長年受け入れられてきた信念を覆す発見を発表した。この発見は、5 つの明確な天然産生の標本の存在を確認しており、材料科学の基盤を根本的に再定義している。その内 3 つはロシアのハティルカ隕石に含まれられ、残り 2 つは地球由来の現象に起因するものであり、具体的には落雷と原子爆弾試験である。特に、イコサエダライトやデカゴンアイトといった鉱物はハティルカ隕石内で特定されたが、マンガンケイ素変種はネブラスカのフルグリト(落雷によって砂を加熱して形成された管)内に発見された。さらに、トリニティ原子爆弾試験場の廃棄物分析から、極端な熱による瞬間的な融合で生成された複雑な対称性を有するケイ素・銅合金が明らかとなった。これらの発見は PNAS などの主要学術誌に記録されており、自然界が迅速な衝突および集中的なエネルギー事象を通じてこれら超複雑な金属構造を自発的に生成できることを示している。したがって、研究員たちは地質歴史および天体物理学データを再評価し、これらの自然発生合金を考慮する必要があり、実験室合成のみがこのような希少材料を創出する方法ではなかったことを証明している。 ## キーポイントリスト - ロシア遠東部のハティルカ隕石内で 3 つの自然産生の準結晶が発見されており、アルミニウムを含む金属であり超高速小惑星衝突によって形成されたことが特徴である。 - 最初に発見されたものはイコサエダライト(Al63Cu24Fe13)であり、D6 ラティスからの「切片と射影」法を用いて数学的に記述された完全な三次元二十面体対称性を有する。 - 次に発見されたものはデカゴンアイト(Al71Ni24Fe5)であり、A₄ ラティスから導出された二次元で十重対称性を持つ積層準結晶である。 - 3 つ目に発見されたものは i-Phase II(Al62Cu31Fe7)であり、二十面体対称性を持つがアルミニウムより銅の割合が多く組成が異なるものである。 - ネブラスカのハヤニス近郊に落雷やアークにより形成された「フルグリト」の内部で 4 つ目の準結晶が特定され、倒れた送電線近くでの自然発生か人為的なものの起源について曖昧さが残っている。 - このネブラスカ標本は組成が約 Mn72.3Si15.6Cr9.7Al1.8Ni0.6 であり、非繰り返す原子面上で 12 重対称性を示し、地球表面での高電流・高温・急速冷却事象によって生成された新しい準結晶タイプとしては初めてである。 - ニューメキシコのトリニティ原子爆弾試験場において、砂漠の砂と銅送電ケーブルの廃棄物内で融着した 5 つ目の準結晶が発見された。 - トリニティ標本は二十面体対称性を有するが主にケイ素からなり組成式 Si61Cu30Ca2Fe2 であり、他とは異なる偶然的合成を示している。 - 引用論文には、イコサエダライト、デカゴンアイト、i-Phase II、ネブラスカの十二面体準結晶、およびトリニティ原子爆弾試験場準結晶に関する「Proceedings of the National Academy of Sciences」(2012 年、2016 年、2021 年、2023 年)および「IUCrJ」に掲載された研究が含まれる。 - 既知のすべての他の準結晶は自然ではなく実験室で製造されたものと信じられている。