サイズ: 3387
コメント:
|
サイズ: 7243
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 2: | 行 2: |
= 目次 = |
|
行 13: | 行 11: |
* 各種チップの基準クロックを生成するためのもの。 | * 各種チップ用のクロックを生成するためのもの。 |
行 34: | 行 32: |
= ROM = == ROM一覧 == * ※「パッケージ上の記載」はぶっちゃけ検証不足である。 * 筆者が現物で確認したわけではないので。 * 「パッケージ上の記載」とは、ROMのゲジゲジの背中に貼ってあるシール(?)に書かれた文字の事。 ||<-2>'''パッケージ上の記載'''||'''内容'''||'''サイズ'''|| ||<:>TD1<<BR>>1||<:>TD1<<BR>>1B||メインCPU用プログラムROM<<BR>>($C000~$FFFF)||8bit×$4000|| ||<:>TD1<<BR>>3||<:>TD1<<BR>>3B||メインCPU用プログラムROM<<BR>>($8000~$BFFF)||8bit×$4000|| ||<:-2>TD1<<BR>>4||サウンドCPU用プログラムROM<<BR>>($E000~$FFFF)||8bit×$2000|| ||<:-2>TD1<<BR>>5||BG用ドットパターンデータROM||8bit×$1000|| ||<:-2>TD1<<BR>>6||スプライト用ドットパターンデータROM(1)<<BR>>(上位2bit用)||8bit×$2000|| ||<:-2>TD1<<BR>>7||スプライト用ドットパターンデータROM(2)<<BR>>(下位2bit用)||8bit×$2000|| ||<:-2>TD1-3||波形データROM||4bit×$0100|| ||<:-2>TD1-5||基本色データROM<<BR>>($00~$0Fがスプライト用、$10~$1FがBG用)||8bit×$0020|| ||<:-2>TD1-6||BG用カラーパレットデータROM||4bit×$0100|| ||<:-2>TD1-7||スプライト用カラーパレットデータROM||4bit×$0400|| ---- = VRAM = * プログラムコードを見る限り、VRAMへのアクセスタイミングに特別な制約のようなものは無さそうである。 * 例えば垂直ブランク期間かどうか等は全く気にしている様子が無い。かなり遠慮なく読み書きしている。 * セルフテストの際にはスタック領域として使用したりしている。本当にただのRAM扱いらしい。 * 諸問題はハードウェア側でうまく吸収しているのだろう。たぶん。 ---- |
|
行 36: | 行 65: |
== 全般 == | * [[画像処理部]]を参照。 |
行 38: | 行 67: |
* ドットクロック周波数は 6.144MHz。 * 水晶振動子のクロックを 3分周して得ている。 * 4ドットサイクル=1MPUサイクルに相当。 * 水平解像度は表示領域288ドット、非表示領域(水平ブランク)96ドット。計384ドット。 * 垂直解像度は表示領域224ドット、非表示領域(垂直ブランク)40ドット。計264ドット。 * 1フレームは 16.5ミリ秒(0.0165秒)。 * (384 * 264) / 6144000 = 0.0165。 * 1フレームは 25344MPUサイクルに相当(たぶん)。 * リフレッシュレートは 約60.6061Hz。 * 1 / 0.0165 = 60.6060606060……。 |
---- |
行 49: | 行 69: |
== BG部 == | = 音源 = |
行 51: | 行 71: |
* 二つの固定BG部と一つのスクロールBG部からなる。 * BG用基本色は256色から16色を指定(ROMにより固定)。 * カラー#15は未使用。 * BG用カラーパレットが4色×64組分ある。 * BG用パターンデータは 8x8 サイズで256枚分。 * なぜかカラーパレット番号との対応がビット反転している。 * つまりパターンデータ上で $0 となっている箇所はパレット#3、$1 となっている箇所はパレット#2の色で描画される。 * BG(背景)といいつつ、キャラ毎に前景表示(スプライトより優先表示)する機能もあるらしい。 * TODでは未使用。 |
* 音源チップはNamco15XX。CUSTOM15とも。 * WSG(Waveform Sound Generator)と呼ばれる事もある。ただしこれは他の音源チップも含んだ言葉である。 * ナムコが開発した波形メモリ音源の一つ。 |
行 61: | 行 75: |
=== 固定BG部 === | == 特徴 == |
行 63: | 行 77: |
* 画面の左右端に 2 x 28キャラ(16 x 224ドット)の固定BG部が各一つずつ存在する。 * プレイヤー視点では画面の最上部と最下部に位置する。 * ※以降、'''プレイヤー視点に合わせて「上部固定BG部」「下部固定BG部」と表記'''。 * 表示領域は 2 x 28キャラ分だが、VRAMには 2 x 32 キャラ分の領域が確保されている。 * 固定BG部はハードウェアスクロール機能の影響を受けない。 * 下部固定BG部の中央(非表示領域を含め右から +14、+15キャラ目)のみ、参照するVRAMのアドレスが異なる。 * 本来非表示領域である +0、+1 のキャラ番号/カラーパレット番号を参照する。 * 海賊版対策か、あるいはハードウェア実装上の事情だろうか。 |
* 8chモノラル。 * クロック周波数は 24KHz。水晶振動子のクロックを768分周して得ている(らしい)。 * 波形データはビット深度4bit×32インデックスで構成されたものが8組分ある(ROMにより固定)。 * 波形インデックス値は整数部5ビット、小数部15ビットの固定小数点数。 * 波形データを得る際には小数点以下を切り捨てる(たぶん)。 * data = waveform[int(n)] みたいな感じ。 * 音量は4ビット値。 * 音程データは20ビット値。 * おそらく n = (freq×2^20^)÷24000 である。 * freq が鳴らしたい音の周波数。 == 音源用RAM内訳 == * 下記アドレスは CPU2 のメモリ空間に割り当てられたもの。 ||<:|2>'''アドレス'''||<:-8>'''内容'''|| ||<:>'''7'''||<:>'''6'''||<:>'''5'''||<:>'''4'''||<:>'''3'''||<:>'''2'''||<:>'''1'''||<:>'''0'''|| ||$0000||<:|3-8>未使用?|| ||$0001|| ||$0002|| ||$0003||<:-4>――||<:-4>ch1の音量|| ||$0004||<:-8>ch1の音程値(下位8ビット)|| ||$0005||<:-8>ch1の音程値(中位8ビット)|| ||$0006||――||<:-3>ch1の音色||<:-4>ch1の音程値(上位4ビット)|| ||$0007||<:-8>未使用?|| ||$0008-$000F||<:-8>ch2用のデータ|| ||$0010-$0007||<:-8>ch3用のデータ|| ||$0018-$001F||<:-8>ch4用のデータ|| ||$0020-$0027||<:-8>ch5用のデータ|| ||$0028-$002F||<:-8>ch6用のデータ|| ||$0030-$0037||<:-8>ch7用のデータ|| ||$0038-$003F||<:-8>ch8用のデータ|| == 備考 == * Namco15XXだけで音を鳴らしているわけではなく、たとえば D/A変換は Namco99XXというチップで行っているらしい。 * 筆者はこの辺りをよく知らない。 * 音声出力をミュートする機能がある(どのチップの機能なのかは未調査)。 * というか、メインCPUから Namco15XXの動作を止める手段がないらしいので、完全に音を止めようと思ったらミュート機能を使うしかないようだ。 ---- = コイン、レバー、ボタン、およびディップスイッチ入力情報管理 = * Namco58XXとNamco56XXの二つが使われている。 * 富士通の4ビットCPUであるMB8843に独自のマスクROMを載せたもの(らしい)。 * ぶっちゃけ仕様には不明な点が多い。 * TODではNamco58XXをコイン管理とレバー・ボタン入力情報管理に、Namco56XXをディップスイッチ情報・筐体情報管理に使用している。 * Namco58XXはスタートボタンのランプ制御やロックアウト処理などもやってそうな気がするが詳細は不明。 * どちらも複数の動作モードを持っているらしく、モードによって出力されるデータが変わるようである。 == 備考 == * TODはマッピーの基板を元に開発されているが、マッピーではディップスイッチ用にもNamco58XXを使用しているようである。 * マッピーはNamco58XXを二基使用しており、Namco56XXを使用していないらしい。 ---- = 各種CPU/割り込み制御 = * Namco16XXというチップで行っているらしい。 * サウンドCPU/58XX/56XXの動作を停止したり、垂直同期割り込み信号を停止したりできる。 ---- = ウォッチドッグ = * システムが何らかの誤動作により停止した場合、再起動をかける機構。 * メインCPUからの信号が途絶えると「システムが止まった」と判断してリセット信号を送出するらしい。 * MAMEのソースによれば、5フレーム以上メインCPUからの応答がないと発動するようである。 ---- = メモリマップ = * [[メモリマップ]]を参照。 ---- [[CategoryHardware|カテゴリ:ハードウェア]] |
※以下の内容は基本的にアーケードエミュレータMAMEのソースコードを元にしています。
目次
クロック関連
水晶振動子
- 各種チップ用のクロックを生成するためのもの。
- クロック周波数は 18.432MHz。
- 実機では基板表側のすみに横倒しの形で設置されているらしい?(各種画像より)
Namco07XX
- ナムコのカスタムチップ。CUSTOM07とも。
- 水晶振動子のクロックを分周して各種チップ用のクロックを生成するためのチップらしい。
メインCPU/サウンドCPU
- モトローラMC68A09E相当品。
- "E"はクロックを外部から供給するタイプを表す。
- "A"は 1.5MHz程度のクロックで動作することを想定したモデルであることを表す。
- クロック周波数は 1.536MHz。
- 水晶振動子のクロックを 12分周して得ている。
ROM
ROM一覧
- ※「パッケージ上の記載」はぶっちゃけ検証不足である。
- 筆者が現物で確認したわけではないので。
- 「パッケージ上の記載」とは、ROMのゲジゲジの背中に貼ってあるシール(?)に書かれた文字の事。
パッケージ上の記載 |
内容 |
サイズ |
|
TD1 |
TD1 |
メインCPU用プログラムROM |
8bit×$4000 |
TD1 |
TD1 |
メインCPU用プログラムROM |
8bit×$4000 |
TD1 |
サウンドCPU用プログラムROM |
8bit×$2000 |
|
TD1 |
BG用ドットパターンデータROM |
8bit×$1000 |
|
TD1 |
スプライト用ドットパターンデータROM(1) |
8bit×$2000 |
|
TD1 |
スプライト用ドットパターンデータROM(2) |
8bit×$2000 |
|
TD1-3 |
波形データROM |
4bit×$0100 |
|
TD1-5 |
基本色データROM |
8bit×$0020 |
|
TD1-6 |
BG用カラーパレットデータROM |
4bit×$0100 |
|
TD1-7 |
スプライト用カラーパレットデータROM |
4bit×$0400 |
VRAM
- プログラムコードを見る限り、VRAMへのアクセスタイミングに特別な制約のようなものは無さそうである。
- 例えば垂直ブランク期間かどうか等は全く気にしている様子が無い。かなり遠慮なく読み書きしている。
- セルフテストの際にはスタック領域として使用したりしている。本当にただのRAM扱いらしい。
- 諸問題はハードウェア側でうまく吸収しているのだろう。たぶん。
- 例えば垂直ブランク期間かどうか等は全く気にしている様子が無い。かなり遠慮なく読み書きしている。
画像処理部
画像処理部を参照。
音源
- 音源チップはNamco15XX。CUSTOM15とも。
- WSG(Waveform Sound Generator)と呼ばれる事もある。ただしこれは他の音源チップも含んだ言葉である。
- ナムコが開発した波形メモリ音源の一つ。
特徴
- 8chモノラル。
- クロック周波数は 24KHz。水晶振動子のクロックを768分周して得ている(らしい)。
- 波形データはビット深度4bit×32インデックスで構成されたものが8組分ある(ROMにより固定)。
- 波形インデックス値は整数部5ビット、小数部15ビットの固定小数点数。
- 波形データを得る際には小数点以下を切り捨てる(たぶん)。
- data = waveform[int(n)] みたいな感じ。
- 音量は4ビット値。
- 音程データは20ビット値。
おそらく n = (freq×220)÷24000 である。
- freq が鳴らしたい音の周波数。
音源用RAM内訳
- 下記アドレスは CPU2 のメモリ空間に割り当てられたもの。
アドレス |
内容 |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$0000 |
未使用? |
|||||||
$0001 |
||||||||
$0002 |
||||||||
$0003 |
―― |
ch1の音量 |
||||||
$0004 |
ch1の音程値(下位8ビット) |
|||||||
$0005 |
ch1の音程値(中位8ビット) |
|||||||
$0006 |
―― |
ch1の音色 |
ch1の音程値(上位4ビット) |
|||||
$0007 |
未使用? |
|||||||
$0008-$000F |
ch2用のデータ |
|||||||
$0010-$0007 |
ch3用のデータ |
|||||||
$0018-$001F |
ch4用のデータ |
|||||||
$0020-$0027 |
ch5用のデータ |
|||||||
$0028-$002F |
ch6用のデータ |
|||||||
$0030-$0037 |
ch7用のデータ |
|||||||
$0038-$003F |
ch8用のデータ |
備考
- Namco15XXだけで音を鳴らしているわけではなく、たとえば D/A変換は Namco99XXというチップで行っているらしい。
- 筆者はこの辺りをよく知らない。
- 音声出力をミュートする機能がある(どのチップの機能なのかは未調査)。
- というか、メインCPUから Namco15XXの動作を止める手段がないらしいので、完全に音を止めようと思ったらミュート機能を使うしかないようだ。
コイン、レバー、ボタン、およびディップスイッチ入力情報管理
- Namco58XXとNamco56XXの二つが使われている。
- 富士通の4ビットCPUであるMB8843に独自のマスクROMを載せたもの(らしい)。
- ぶっちゃけ仕様には不明な点が多い。
- TODではNamco58XXをコイン管理とレバー・ボタン入力情報管理に、Namco56XXをディップスイッチ情報・筐体情報管理に使用している。
- Namco58XXはスタートボタンのランプ制御やロックアウト処理などもやってそうな気がするが詳細は不明。
- どちらも複数の動作モードを持っているらしく、モードによって出力されるデータが変わるようである。
備考
- TODはマッピーの基板を元に開発されているが、マッピーではディップスイッチ用にもNamco58XXを使用しているようである。
- マッピーはNamco58XXを二基使用しており、Namco56XXを使用していないらしい。
各種CPU/割り込み制御
- Namco16XXというチップで行っているらしい。
- サウンドCPU/58XX/56XXの動作を停止したり、垂直同期割り込み信号を停止したりできる。
ウォッチドッグ
- システムが何らかの誤動作により停止した場合、再起動をかける機構。
- メインCPUからの信号が途絶えると「システムが止まった」と判断してリセット信号を送出するらしい。
- MAMEのソースによれば、5フレーム以上メインCPUからの応答がないと発動するようである。
メモリマップ
メモリマップを参照。