Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 2.08 KB

README.md

File metadata and controls

43 lines (30 loc) · 2.08 KB

シリアルポートとは、情報を(パラレルポートとは異なり)1度に1ビットずつ送受信するシリアル通信物理インタフェースである。

GBAのシリアルポートは、様々な通信モードを持っており、状況に応じて適した通信モードを使用することができます。

注:ニンテンドーDSにはシリアルポートは搭載されていません。

各モードについて

  • 通常モード: 2台のGBA間でデータを交換することができます。または、マスターGBAから複数のスレーブGBAに一方通行でデータを転送することができます。
  • マルチプレイモード: 最大4台のGBA間でデータをやり取りします。
  • UARTモード: UARTモードは、RS232インターフェースのように動作します。
  • JOYバスモード: 任天堂の標準的なプロトコルであるJOYバスプロトコルを使用した転送です。
  • 汎用モード: シリアルポートを双方向の4ビットパラレルポートとして誤使用(?)して転送を行います。

レジスタ

通信ポートの制御レジスタは、モードによって使い方が変わってきます。

ここでは概要について説明します。

転送モード選択

RCNTのbit15-14, SIOCNTのbit13-12を適切な値に設定することで、転送モードを選択できます

モード R.15 R.14 S.13 S.12
通常 8bit 0 x 0 0
通常 32bit 0 x 0 1
マルチプレイ 0 x 1 0
UART 0 x 1 1
汎用 1 0 x x
JOYバス 1 1 x x

SIOCNT

  Bit    0      1    2     3      4 5 6   7     8    9      10   11
  Normal Master Rate SI/In SO/Out - - -   Start -    -      -    -
  Multi  Baud   Baud SI/In SD/In  ID# Err Start -    -      -    -
  UART   Baud   Baud CTS   Parity S R Err Bits  FIFO Parity Send Recv