- rentan_org
- 4655
- 7
- 0
- 0
黄金書式
X680x0 の OPL へのアクセスって、黄金書式があって、こう書くと、どのような環境でも、今の所失敗に遭遇したことがない。 tst.b $e9a001 1: tst.b $e90003 bmi 1b move.b ??,$e90001 tst.b $e9a001 1: tst.b $e90003 bmi 1b move.b ??,$e90003
2021-03-25 01:45:25
本編
FM音源という奴はですね・・・・割り込みが上がってきてもそのままFM音源レジスタにアクセスすると、FM音源側の動作が遅くて死ぬんですよ・・・・ [Twn/API1.1]
2013-04-08 19:50:25こういうコードが必要 tst.b $e9a001 ; 時間つぶし move.b d0,$e90001 ; FM音源レジスタ tst.b $e9a001 ; 時間つぶし move.b d1,$e90003 ; FM音源データレジスタアクセス [Twn/API1.1]
2013-04-08 19:54:48tst.b $e9a001 はI/Oポートにダミーでアクセスしてるんだけどあれを抜くとクロックアップ環境でFM音源レジスタ書き込みが死んでしまう、という懐かしいお話 [Twn/API1.1]
2013-04-08 20:00:27そういえば、X680x0版「上海・万里の長城」だけど、記憶では X68030で動かすと稀に音が若干変になることがあって、逆アセンブルソースを見てみたら、OPM のウェイトを取るのに非常に苦労したと思われる形跡があったっけなぁ・・・
2014-10-22 03:09:35@TransAmGTA92 030やヘタするとXVI以降では、Busyウェイトは当然として、レジスタ番号を書き込んだあとにデータを書き込むのに、少し時間が必要なんですよね。10MHz機でmovep命令でレジスタを叩けないのも、このせいっぽいです。
2014-11-05 21:10:45XVIで沙羅曼蛇。 全く処理落ちせず、アケ版より快適ですが、OPMの音が狂っておかしくなります。 ADPCMは正常。 ちなみに、030だと全く問題ないです。 たしかOPMへのウェイトをハードでサポートしたとか。 pic.twitter.com/P2Ea9p1NG0
2014-11-24 17:24:30@mucom88 @arx_uho Busyチェックやってるソフトでも、 lea.l $e90001,a0 move.b ♯d0,(a0) move.b ♯d1,2(a0) みたいなかなり速い書き込み方をしてると、16MHz以上では失敗してましたね。movepは10MHzでも×。
2014-11-24 17:40:55@mucom88 @arx_uho 先生!こうです! lea.l ♯$e90001,a0 move.b d0,(a0) move.b d1,2(a0)
2014-11-24 17:46:40@akuzo2k @arx_uho 入ってますね。OPM以外のところではきちんと同期取れてます。
2014-11-24 17:53:17OPMのステータスレジスタのBusyはデータ書き込み後はアサートされますがレジスタ番号を設定するだけならアサートされない。だからといってレジスタ番号設定の直後にデータ値を設定すると失敗するみたい。レジスタ番号設定でも一瞬だけBusy状態があるんだろうな。どれくらいの時間何だろう?
2015-03-04 10:16:49@kugimoto0715 あれ、30だとレジスタ書込み後も一瞬だけBUSYの検出できませんでしたっけ?昔の事だからかなり記憶が曖昧だけど…10MHz機だと連続書込みでもあまり問題は出ないんですけどねー。OPMは不明だけどOPNとかは12~17の音源クロック時間が必要なようです。
2015-03-04 11:09:16@kugimoto0715 あぁ、クロックアップ機だとOPM I/OのウエイトがおかしくなるのでBUSYが立つ前に次のCPU命令に行っちゃうかも・・・YM2151は250nsの間隔で動作してますからねぇ・・・
2015-03-04 11:31:48だいぶおかしな情報だったのでごめんちゃい。 X68030の35MHzで計測していくとレジスタポートに書き込み後のBUSY状態は約850nsでした。まぁ色々揺れがあるのでOPMは3クロックくらいで750nsですかね。
2015-03-15 15:34:18ちなみに、X68030 ではFM音源レジスタへアクセスすると、ウェイトがかかるようになっているけど、CPUキャッシュの影響でそれがうまく働かないことがあるので、やっぱりその辺りのパッチは必要。
2015-12-22 19:16:21@TransAmGTA92 むかーし、XVIとかクロックアップ機でもOPMきちんと動くようにウェイト入れる回路とかありませんでしたっけ?
2015-12-22 19:18:07