« ニンテンドーDSのアーキテクチャ (index)

ニンテンドーDSのアーキテクチャ

Chapter 7: オペレーティング システム


目次

  1. エントリポイント
  2. 機会の窓
  3. インタラクティブシェル
  4. 更新性

この世代では、すべてのコンソールにある種のインタラクティブなインターフェイスがバンドルされています。 NDSは引き続き、I/Oアクセスを簡素化する軽量APIで構成された従来のオペレーティングシステムモデルを継承しています。 しかし、いくつかの設定やフィドルを調整するための最小限のユーザーインターフェイスを提供します。

とはいえ、オペレーティングシステムは複数のチップに分散しているので、まずはブート時に読み取られるものから説明しましょう。

エントリポイント

ある時点で、ARM7とARM9はハードウェアを初期化する必要があります。NTR-CPUには2つの異なる小さなROMチップが含まれています。

コンソールが起動すると、各 CPU がそれぞれの ROM から起動します。 これは、リセット・ベクタが各チップに設定されているためです(参考までに、ARM9のベクタは0xFFFF0000にあり、ARM7のベクタは0x00000000です)。

その後、各BIOSには、ブートコードと割り込みコールの2セットのルーチンが格納されます。 後者には 以前のコンソールの面影が残っています。 しかし、前者はより複雑になりました。ハードウェアの初期化に加えて、 ARM7のコードはDSカートリッジでいくつかのチェックを実行することによってセキュリティ処理を行います(挿入されたものがある場合)。

ブートコードを実行した後、両方のCPUは'単一のマシン'として動作を開始するために同期します。実際にはARM9がARM7よりもずっと早く読み込みを完了するので、その際にARM9はARM7に4ビットの値を送信してから、ARM7が応答するのを半無限ループで停止し、ARM7から応答が返ってくると両者が同時に「スタートラインに立つ」、つまり同期された状態になります。

機会の窓

DSを持っているか、あるいは持っていた人は、ゲーム機の電源を入れる前にカートリッジが挿入されていれば、ゲームしかできないことに気づいただろう。 これは、ARM7のBIOSがブート中にカートリッジをいくつかチェックし(詳細は最後のセクションで説明します) すべてのテストが合格した場合に発生するためです。 ARM7のゲーム実行ファイルがWRAMにコピーされ、ARM9の実行ファイルがメインメモリにコピーされます。

何らかの理由で実行可能ファイルがコピーされない場合 (起動中にカートリッジが無効または検出されないため) ゲームを開始することはできません。ユーザーはゲームをプレイするためにコンソールをリセットする必要があります。

インタラクティブシェル

ゲームがあろうとなかろうと、システムはインタラクティブシェルをロードして起動します。 これは外部 256 KB Flash メモリ に存在するプログラムです。

Image
ホーム画面

Image
DSを起動するたびにこの画面が表示される。 '任天堂'のロゴは有効なカードが挿入されている場合に表示される。

Image
設定画面

同じチップは、いくつかのユーザー設定(言語、ニックネーム、誕生日) とともにファームウェア、 アラームとウェルカムメッセージといくつかのシステム設定 (タッチスクリーンキャリブレーション、最初の起動フラグ、ファームウェアバージョンとWi-Fi設定) を格納します。

このシェルは、同時代のものとほとんど同じです。 ユーザーはゲームを開始し、設定を変更し、ゲームをダウンロードします('ダウンロードプレイ')。 Pictochat: 近くのニンテンドーDSと会話するオープンチャットルーム。

読み取り専用と書き込み可能な両方のデータが同じ再書き込み可能なチップに存在することは強調すべき価値があります!理論的にはファームウェア上に書き込むことが可能です。 幸いにも(または明白な理由のため) 任天堂は、 SL1と呼ばれるマザーボードのある点にジャンパーを配置することによって、チップの上部(64 KB) が書き込まれないように保護しました。これはバッテリーコンパートメントを外すことで露出します。 それでも、残りのフラッシュメモリを上書きしてしまえば、壊滅的な結果を引き起こす可能性があります !

更新性

最後にひとつ。このファームウェアは、セキュリティ上の脆弱性を修正するために任天堂によって数回(正確には5回) アップデートされました。 このアップデートはユーザーによってインストールすることはできませんでした ( SL1 保護を思い出してください)。 代わりにニンテンドーは次のロット製造の際に、更新されたファームウェアを埋め込みました。


Previous: 6. I/O

Next: 8. ゲーム


Rodrigo Copetti © 2026 RSS Feed

モダン版に切り替え

ホーム · 文章 · サポート · 著者について · ウェブサイトについて