サイズ: 1554
コメント:
|
サイズ: 4584
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
※以下の内容は基本的にアーケードエミュレータM.A.M.Eのソースコードを元にしています。 | ※以下の内容は基本的にアーケードエミュレータMAMEのソースコードを元にしています。 <<TableOfContents()>> ---- |
行 7: | 行 11: |
* 各種チップの基準クロックを生成するためのもの。 | * 各種チップ用のクロックを生成するためのもの。 |
行 15: | 行 19: |
---- |
|
行 24: | 行 30: |
---- = VRAM = * プログラムコードを見る限り、VRAMへのアクセスタイミングに特別な制約のようなものは無さそうである。 * 例えば垂直ブランク期間かどうか等は全く気にしている様子が無い。かなり遠慮なく読み書きしている。 * セルフテストの際にはスタック領域として使用したりしている。本当にただのRAM扱いらしい。 * 諸問題はハードウェア側でうまく吸収しているのだろう。たぶん。 ---- |
|
行 26: | 行 43: |
== 全般 == | [[/画像処理部]]を参照。 |
行 28: | 行 45: |
* ドットクロック周波数は 6.144MHz。 * 水晶振動子のクロックを 3分周して得ている。 * 4ドットサイクル=1MPUサイクルに相当。 * 水平解像度は表示領域288ドット、非表示領域(水平ブランク)96ドット。計384ドット。 * 垂直解像度は表示領域224ドット、非表示領域(垂直ブランク)40ドット。計264ドット。 * 1フレームは 16.5ミリ秒(0.0165秒)。 * (384 * 264) / 6144000 = 0.0165。 * |
---- = 音源 = * 音源チップはNamco15XX。CUSTOM15とも。 * WSG(Waveform Sound Generator)と呼ばれる事もある。ただしこれは他の音源チップも含んだ言葉である。 * ナムコが開発した波形メモリ音源の一つ。 == 特徴 == * 8chモノラル。 * クロック周波数は 24KHz。水晶振動子のクロックを768分周して得ている(らしい)。 * 波形データはビット深度4bit×32インデックスで構成されたものが8組分ある(ROMにより固定)。 * 波形インデックス値は整数部5ビット、小数部15ビットの固定小数点数。 * 波形データを得る際には小数点以下を切り捨てる(たぶん)。 * data = waveform[int(n)] みたいな感じ。 * 音量は4ビット値。 * 音程データは20ビット値。 * おそらく n = (freq×2^20^)÷24000 である。 * freq が鳴らしたい音の周波数。 == 備考 == * Namco15XXだけで音を鳴らしているわけではなく、たとえば D/A変換は Namco99XXというチップで行っているらしい。 * 筆者はこの辺りをよく知らない。 * 音声出力をミュートする機能がある(どのチップの機能なのかは未調査)。 * というか、メインCPUから Namco15XXの動作を止める手段がないらしいので、完全に音を止めようと思ったらミュート機能を使うしかないようだ。 ---- = コイン、レバー、ボタン、およびディップスイッチ入力情報管理 = * Namco58XXとNamco56XXの二つが使われている。 * 富士通の4ビットCPUであるMB8843に独自のマスクROMを載せたもの(らしい)。 * ぶっちゃけ仕様には不明な点が多い。 * TODではNamco58XXをコイン管理とレバー・ボタン入力情報管理に、Namco56XXをディップスイッチ情報・筐体情報管理に使用している。 * Namco58XXはスタートボタンのランプ制御やロックアウト処理などもやってそうな気がするが詳細は不明。 * どちらも複数の動作モードを持っているらしく、モードによって出力されるデータが変わるようである。 ---- = 各種CPU/割り込み制御 = * Namco16XXというチップで行っているらしい。 * サウンドCPU/58XX/56XXの動作を停止したり、垂直同期割り込み信号を停止したりできる。 ---- = ウォッチドッグ = * システムが何らかの誤動作により停止した場合、再起動をかける機構。 * メインCPUからの信号が途絶えると「システムが止まった」と判断してリセット信号を送出するらしい。 * MAMEのソースによれば、5フレーム以上メインCPUからの応答がないと発動するようである。 |
※以下の内容は基本的にアーケードエミュレータMAMEのソースコードを元にしています。
目次
クロック関連
水晶振動子
- 各種チップ用のクロックを生成するためのもの。
- クロック周波数は 18.432MHz。
- 実機では基板表側のすみに横倒しの形で設置されているらしい?(各種画像より)
Namco07XX
- ナムコのカスタムチップ。CUSTOM07とも。
- 水晶振動子のクロックを分周して各種チップ用のクロックを生成するためのチップらしい。
メインCPU/サウンドCPU
- モトローラMC68A09E相当品。
- "E"はクロックを外部から供給するタイプを表す。
- "A"は 1.5MHz程度のクロックで動作することを想定したモデルであることを表す。
- クロック周波数は 1.536MHz。
- 水晶振動子のクロックを 12分周して得ている。
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 が鳴らしたい音の周波数。
備考
- Namco15XXだけで音を鳴らしているわけではなく、たとえば D/A変換は Namco99XXというチップで行っているらしい。
- 筆者はこの辺りをよく知らない。
- 音声出力をミュートする機能がある(どのチップの機能なのかは未調査)。
- というか、メインCPUから Namco15XXの動作を止める手段がないらしいので、完全に音を止めようと思ったらミュート機能を使うしかないようだ。
コイン、レバー、ボタン、およびディップスイッチ入力情報管理
- Namco58XXとNamco56XXの二つが使われている。
- 富士通の4ビットCPUであるMB8843に独自のマスクROMを載せたもの(らしい)。
- ぶっちゃけ仕様には不明な点が多い。
- TODではNamco58XXをコイン管理とレバー・ボタン入力情報管理に、Namco56XXをディップスイッチ情報・筐体情報管理に使用している。
- Namco58XXはスタートボタンのランプ制御やロックアウト処理などもやってそうな気がするが詳細は不明。
- どちらも複数の動作モードを持っているらしく、モードによって出力されるデータが変わるようである。
各種CPU/割り込み制御
- Namco16XXというチップで行っているらしい。
- サウンドCPU/58XX/56XXの動作を停止したり、垂直同期割り込み信号を停止したりできる。
ウォッチドッグ
- システムが何らかの誤動作により停止した場合、再起動をかける機構。
- メインCPUからの信号が途絶えると「システムが止まった」と判断してリセット信号を送出するらしい。
- MAMEのソースによれば、5フレーム以上メインCPUからの応答がないと発動するようである。