ボタンの入力はIOレジスタの0x0400_0130、0x0400_0131
の値で判定します。
下位のビットから順番に、Aボタン、Bボタン、セレクトボタン、スタートボタン、 十字キーの→、←、↑、↓、最後はRボタン、Lボタンとなっています。
ビット | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ボタン | L | R | ↓ | ↑ | ← | → | Start | Select | B | A |
ビットが立っている時は押されていない状態、ビットが立っていない時は押されている状態です。
どの程度の強さで押されているか、といった判定はできません。
通常、このレジスタの読み出しは1フレームに1回だけにして、現在の状態をメモリに保存することをお勧めします。
キー割り込み機能は、非常に低消費電力のSTOPモードを終了させるためのもので、通常のユーザ入力を処理するのには適していません。
ビット | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ボタン | IRQ条件 | IRQ有効 | L | R | ↓ | ↑ | ← | → | Start | Select | B | A |
A,B,Select,Start,... はbitが0ならその入力は無視する、1なら無視しない
IRQ条件は
- 0: bitが1の入力のどれかが押されたらIRQ (logical OR)
- 1: bitが1の入力すべてが押されているときにIRQ (logical AND)
ゲームボーイ互換モードでは、LボタンとRボタンを使って、通常の160x144ピクセルと240x144ピクセルの間で画面サイズを切り替えます。
GBASPにはさらに、バックライトのオンオフを切り替えるための*ボタンがあります(別のハードウェアロジックで制御され、ソフトウェアで現在のバックライトの状態を検出したり変更したりする方法はありません)。