※以下の内容は基本的にアーケードエミュレータMAMEのソースコードを元にしています。 <> ---- = クロック関連 = == 水晶振動子 == * 各種チップ用のクロックを生成するためのもの。 * クロック周波数は 18.432MHz。 * 実機では基板表側のすみに横倒しの形で設置されているらしい?(各種画像より) == Namco07XX == * ナムコのカスタムチップ。CUSTOM07とも。 * 水晶振動子のクロックを分周して各種チップ用のクロックを生成するためのチップらしい。 ---- = メインCPU/サウンドCPU = * モトローラMC68A09E相当品。 * "E"はクロックを外部から供給するタイプを表す。 * "A"は 1.5MHz程度のクロックで動作することを想定したモデルであることを表す。 * クロック周波数は 1.536MHz。 * 水晶振動子のクロックを 12分周して得ている。 ---- = ROM = == ROM一覧 == * ※「パッケージ上の記載」はぶっちゃけ検証不足である。 * 筆者が現物で確認したわけではないので。 * 「パッケージ上の記載」とは、ROMのゲジゲジの背中に貼ってあるシール(?)に書かれた文字の事。 ||<-2>'''パッケージ上の記載'''||'''内容'''||'''サイズ'''|| ||<:>TD1<
>1||<:>TD1<
>1B||メインCPU用プログラムROM<
>($C000~$FFFF)||8bit×$4000|| ||<:>TD1<
>3||<:>TD1<
>3B||メインCPU用プログラムROM<
>($8000~$BFFF)||8bit×$4000|| ||<:-2>TD1<
>4||サウンドCPU用プログラムROM<
>($E000~$FFFF)||8bit×$2000|| ||<:-2>TD1<
>5||BG用ドットパターンデータROM||8bit×$1000|| ||<:-2>TD1<
>6||スプライト用ドットパターンデータROM(1)<
>(上位2bit用)||8bit×$2000|| ||<:-2>TD1<
>7||スプライト用ドットパターンデータROM(2)<
>(下位2bit用)||8bit×$2000|| ||<:-2>TD1-3||波形データROM||4bit×$0100|| ||<:-2>TD1-5||基本色データROM<
>($00~$0Fがスプライト用、$10~$1FがBG用)||8bit×$0020|| ||<:-2>TD1-6||BG用カラーパレットデータROM||4bit×$0100|| ||<:-2>TD1-7||スプライト用カラーパレットデータROM||4bit×$0400|| ---- = VRAM = * プログラムコードを見る限り、VRAMへのアクセスタイミングに特別な制約のようなものは無さそうである。 * 例えば垂直ブランク期間かどうか等は全く気にしている様子が無い。かなり遠慮なく読み書きしている。 * セルフテストの際にはスタック領域として使用したりしている。本当にただのRAM扱いらしい。 * 諸問題はハードウェア側でうまく吸収しているのだろう。たぶん。 ---- = 画像処理部 = * [[画像処理部]]を参照。 ---- = 音源 = * 音源チップはNamco15XX。CUSTOM15とも。 * WSG(Waveform Sound Generator)と呼ばれる事もある。ただしこれは他の音源チップも含んだ言葉である。 * ナムコが開発した波形メモリ音源の一つ。 == 特徴 == * 8chモノラル。 * --(クロック周波数は 24KHz。水晶振動子のクロックを768分周して得ている(らしい)。)-- * まどさんによると6MHz、3MHz、1.5MHz、384KHzが入力されているらしい。 * 24KHzは動作クロックではなく、波形を進めるときの基準値か? * 波形データはビット深度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|カテゴリ:ハードウェア]]