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

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

Chapter 6: I/O


目次

  1. カートリッジとメモリへのアクセス
  2. ペリフェラル
  3. 無線ネットワーク

簡潔に言えば、I/O はARM7 によって厳格に処理されています。 実際、データの往来を除いて、そのCPU内部で起こっていることのほとんどは観測できません... これは本当に最悪です。ここの意味はまだ分かってないのであとで変更すること。

カートリッジとメモリへのアクセス

外部メモリインターフェースは3つのエンドポイントに接続されています: Slot-1(Nintendo DSカードが入る場所)、Slot-2(GBAカートリッジやアクセサリーが入る場所)、そして4 MBのPSRAM(メインメモリ)。 インターフェイスは両方の CPU からアクセスできます。 しかし、同じバスから2つのリクエストが同時にある場合に、1つのCPUを優先するように変更できるレジスタが含まれています。

Image
データバス幅を付記した外部メモリモデル

重要な点として、DSカートリッジはメモリーマップトでないため、どちらのCPUがゲームデータを読むにしても、読む内容はRAMにコピーしなければなりません。 この動作は、まず32ビットアドレスを参照する8ビットコマンドのカートリッジブロックに送信することから始まります。 その後、32ビットレジスタまたはDMAを介してデータを手動で取得することができます。 データバスは8ビット幅ですが、データ転送速度は最大 5.96 MB/秒 に達します(任天堂が主張した公称値)。

保存に使用される「バックアップ」チップ: (例えば EEPROM, FLASHまたはFRAM) は、独自のコマンドセットを使用し、24ビットのアドレスバスに接続されたSPIバス(シリアル) を通じてアクセスされます。

Slot-2カートリッジは元のピン配置を使用してメモリマッピングされていますが、拡張機能(追加RAM、振動など)を提供するハードウェアを収容するために、DSモードでアドレスがシフトされています。 GBAと同じように、ROMバスは16ビット幅でRAMバスは8ビット幅です。

ペリフェラル

ARM7は、下画面を操作するタッチスクリーンコントローラー(抵抗膜型で、スタイラスの使用を要する)、フラッシュメモリ(ファームウェアが保存されている場所、詳細は後述) と接する別のSPIノードにも接続されています。

Image
ウィッシュルーム 天使の記憶 (2007) に登場するスイッチボードパズル。 この子を救出するために、プレイヤーは2本の指で同時に画面をスワイプしてライトを点灯させなければならない。

Image
でも、間違ってしまうと...

興味深いことに、このタッチスクリーンにおいては、X/Y座標の検出以外のことが可能なことです。 対角位置( 圧力がかかっている領域。「圧力値」の計算に使用される) を返すこともできます。 残念ながら、この機能は 公式SDKでは公開されていません。 私の知る限り、この文書化されていない機能(自家製を除く) を使用するゲームはありませんでした。

多くの人が、「ウィッシュルーム 天使の記憶 」がパズルの1つでこの機能に依存していると指摘しています。 同時に2本の指を使う必要がありました しかしこれは、事実ではありません。 もしもno$gba デバッガを使う場合には、圧力値データを利用することはできません。 その代わりに、x/y値が交互に大幅に変化するかどうかをチェックする方法があります。 こうすることで、ユーザーが2本の指で画面を押したかのように解釈されます。

他にも、 リアルタイムクロック または「RTC」が存在します。

無線ネットワーク

コンソールには、2.4 GHz帯で動作する ワイヤレスコントローラ が含まれており、いくつかの革新的な機能を提供します。


Previous: 5. オーディオ

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


Rodrigo Copetti © 2026 RSS Feed

モダン版に切り替え

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