セガ メガドライブ/Genesis(1988)
- 公開日: 2020/07/26
- 更新日: 2022/09/24
ハードウェア概要
メガドライブは1988年に発売されたゲーム機であり、一定の販売実績を残した初の16ビットゲーム機である [1]。国内ではファミコン(後にスーパーファミコン)、PCエンジンと並び家庭用ゲーム機三強の一角を占めるに至った。海外(北米ではGenesisという名称)では日本以上にヒットしており、特にブラジルでは2010年以降も販売され続けている[2]。
コントローラ端子の特徴
以下の説明は、サイト「Future Driver」の記載に基づく。
メガドライブはコントローラ端子を2つ持っている。また、本体背面にはコネクタ形状がオスメス逆だが同じピン配置のExt端子がある。ピンアウトは以下の通り。全ての信号ピンが入出力可能であり、入力/出力の切り替えはピンごとに行うことができる。NFG Games + GameSXに掲載されている回路図によれば、ピン7とピン9のみ330Ωの抵抗が追加されている(Ext端子には無い)。
pin# |
Function |
---|---|
1 |
Digital in / Digital out |
2 |
Digital in / Digital out |
3 |
Digital in / Digital out |
4 |
Digital in / Digital out |
5 |
VCC |
6 |
Digital in / Digital out (TL) |
7 |
Digital in / Digital out (TH) |
8 |
GND |
9 |
Digital in / Digital out (TR) |
制御方法
コントローラ端子の読み書きは以下のI/Oアドレスを使用する。
0xA10003(コントローラ端子1)、0xA10005(コントローラ端子2)、0xA10007(Ext端子): データ入出力用(DATA)
0xA10009(コントローラ端子1)、0xA1000B(コントローラ端子2)、0xA1000D(Ext端子): データ入出力方向設定用(CTRL)
0xA10013(コントローラ端子1)、0xA10019(コントローラ端子2)、0xA1001F(Ext端子): シリアル通信設定用(SCTRL)
ADDRESS |
BIT |
Function |
---|---|---|
DATA |
0 |
pin1(1:H, 0:L) |
1 |
pin2(1:H, 0:L) |
|
2 |
pin3(1:H, 0:L) |
|
3 |
pin4(1:H, 0:L) |
|
4 |
pin6(1:H, 0:L) |
|
5 |
pin9(1:H, 0:L) |
|
6 |
pin7(1:H, 0:L) |
|
7 |
not used |
|
CTRL |
0 |
pin1 I/O Select(0:IN, 1:OUT) |
1 |
pin2 I/O Select(0:IN, 1:OUT) |
|
2 |
pin3 I/O Select(0:IN, 1:OUT) |
|
3 |
pin4 I/O Select(0:IN, 1:OUT) |
|
4 |
pin6 I/O Select(0:IN, 1:OUT) |
|
5 |
pin9 I/O Select(0:IN, 1:OUT) |
|
6 |
pin7 I/O Select(0:IN, 1:OUT) |
|
7 |
pin7 Interrupt(1:On, 0:Off) |
データの読み書きの手順は以下の通り
ピンの入出力の設定をCTRLに書き込む。ピン7による割り込みを使わない場合はビット7は0でよい
シリアル端子としては使用しないのでSCTRLに0を書き込む。
DATAを使って信号の送受信を行う
(2022/9/24追記)
また、ピン7(端子1、端子2、Ext端子のいずれでも可)が入力モードの時にその状態が変化すると、レベル2割込みがCPUに入力されるようになっている[3]。この割込みは、例えば光線銃などに使用することができる。
Eke-Eke氏によるドキュメントによれば、メガドライブは、現在描画(走査)している座標をメモリアドレス$C00008で記録しており、上位8ビット(D15-D8)が垂直方向、下位8ビットが水平方向位置に対応する。垂直方向位置は0x00から開始し、1ラインごとに増加する。水平方向位置については以下の通り。
H32セルモード(256ピクセル): 0x00-0x93, 0xE9-0xFF
H40セルモード(320ピクセル): 0x00-0xB6, 0xE4-0xFF
いずれのモードにおいても、水平カウンター1は2ピクセルに相当する。
(追記終わり)