EXCEEDの同人ソフト開発日記という名の備忘録

趣味のゲームソフト開発人。プロなのかアマなのかは不明(不定)らしい。

任天堂のソフトはいつも予定通りに出てこないって言われるけど、
ソフト作りっていうのは、そういうもの。
ゲームソフトは、期限までにやれと言われて、徹夜したり死に物狂いでやったからといって、
期待通りのものにはならない。そういうふうにすると、
結局、チームは妥協しなければならなくなる。
妥協させられて、できたものは、粗くなってしまう。
ユーザーは目が肥えていますから、受け付けてもらえない

山内 薄

続・続続 XLATE65

YMF288 の SSG音源部へ供給されるベースクロックは 2MHz で断定。(8MHz を 64分周か、2MHz を 16分周かは不明・・・)なので、結局、1.5MHz ベースクロックのAY-3-8910へ書き込むTP値を、まーきゅりーへ書き込む場合は、4/3倍(2.0MHz/1.5MHz 倍)したものを書き込めばOKということになった。

で、別の問題で苦闘中。サウンドCPUのソースを確認したところ、罠が沢山・・・・。

まず、サウンドドライバの基本的動作は、



タイマーで割り込みを掛ける(or タイマーオーバーフローを待つ)
   ↓
音長が0なら、新しい音を出して、音長を更新する。それ以外は、音長を -1 する

を繰り返すことで演奏を再現するのが普通だが、どういうわけかBGM演奏中以外に効果音(コイン投入音)を鳴らした場合は、タイマーでの時間計測をやめて、無駄ループで時間を計るという妙なアルゴリズムになっている・・・・。つまり、CPUパワーに依存する音長設定箇所があるということ・・・。実際に、XC68060 50MHz でBGM停止中にコイン音を出すと、「ブツッ」と一瞬だけプチノイズっぽい音がするが、同様に MC68000 10MHz でコイン音を出すと、「プン」と一瞬だけなにか音がするという状態になる・・・。オリジナル基板は 6502 の 0.5MHz(!)で動いているので、MC68000 の 10MHz といえど、物凄く高速に処理されてしまうため、効果音がノイズとなってしまう・・・・。さてどうしたものか・・・


あと、なぜか知らないが、サウンドドライバを起動して放置しておくと、勝手にメインBGMが演奏され始めるという罠が・・・。


で、3連休にまたしても出社命令が・・・困った困った・・・・