OPM(YM2151) レジスタ書き込みウェイト

主にX68000の事例をまとめました。
3
前へ 1 ・・ 4 5
HUYE @huye_4589

@CMOStone 情報ありがとうございます。BUSY落ちた後のはいれなくてもアクアレスでは大丈夫そうだったのですが、40や60だとダメになりそうな感じですね。 音源ドライバのところはhumanのX形式に変更したのですぐに対応できると思いますー

2021-05-30 13:12:12
しーもす/VTuber始めました(変⚙️c-mos℠) @CMOStone

@huye_4589 Busyフラグが落ちた後にデータを書き込むときに使うアドレッシングモードでかなり生死が分かれるようです。単純なアドレスレジスタ間接を使っているドラスピなんかはXVIの16MHzでもダメになってしまうようですし。

2021-05-30 13:18:30

AKIRA♮ @AKIRAfromTASSz

【NATURAL.X日誌】エミュをMPUノーウェイトでぶん回すとOPM書き込みに所々失敗するの、OPMビジーチェックが甘いからなんだろうけど正しいビジーチェックを何方か……何方か……。

2022-01-23 01:22:16
TcbnErik / 立花@桑島技研 @kg68k

@AKIRAfromTASSztwitter.com/TransAmGTA92/s…

2022-01-23 14:48:07
EXCEED. @TransAmGTA92

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
AKIRA♮ @AKIRAfromTASSz

@kg68k ぶん回しても失敗しなくなりました! 情報ありがとうございます!!

2022-01-24 06:51:20


2022-02-16 追加分

後藤 浩昭 / GORRY @gorry5

togetter.com/li/1835958 「OPM(YM2151) レジスタ書き込みウェイト」で、当方も情報を提供していたことがあった twitter.com/gorry5/status/… ことを思い出したが、過去ソースを掘り出してみたら微妙に正確ではなかったので、以下を残しておく

2022-02-16 03:01:06
後藤 浩昭 / GORRY @gorry5

@mucom88 @murayan68k OPMアドレス~データポートwrite間のウェイトとして「OPMデータポートを1回空読みする」というのを使っておりました。68000ではRedZoneまでOK、030以降(確認済みは040turboまで)はI/Oポートのアクセスにウェイトが入るのでこれもOKと

2019-10-10 02:21:46
後藤 浩昭 / GORRY @gorry5

まず、完全版。「最後のtst.bは?」これをマクロにして連続させる時、本来のbusyチェックとは別にこれを入れておかないと、ウェイトが足りなくなることがある。 1: tst.b ($e90003) bmi 1b move.b reg,($e90001) tst.b ($e90003) move.b data,($e90003) tst.b ($e90003)

2022-02-16 03:01:06
後藤 浩昭 / GORRY @gorry5

続いて、連続させない場合の省略版。「最後のnopは?」040turboで一部の命令がnopの位置に入るとミスが発生する…というメモが残っていたが、それが何だったのかが残っていない…(苦笑 1: tst.b ($e90003) bmi 1b move.b reg,($e90001) tst.b ($e90003) move.b data,($e90003) nop

2022-02-16 03:01:06
後藤 浩昭 / GORRY @gorry5

例えば上記をマクロにして連続して4回OPMに書く場合、 マクロ1 マクロ1 マクロ1 マクロ2 みたいな使い方をする…ということね

2022-02-16 03:01:07
NOZ @NOZn

@gorry5 nopにはライトバッファ(キャッシュオフでもバッファされる)をフラッシュしてくれる機能があったはずで、I/O周りでは積極的にnopを挟んだ記憶があります(半分は"おまじない"でしたが)。

2022-02-16 07:41:07


2022-05-17 追加分

Makoto Kamada @kamadox

060turboの場合、YM2151への書き込みは理屈では以下の手順で足りるはず。でも経験を理屈で置換しようとするとうまくいかないことはよくあるからなあ。 (1)BUSY空読み (2)BUSY読み出し (3)1ならば(2)に戻る (4)アドレス書き込み (5)BUSY空読み (6)BUSY空読み (7)データ書き込み twitter.com/fu_k054539/sta…

2022-05-16 16:28:12
Fu-. @fu_k054539

X680x0でのOPMビジー待ち書き込み問題。 マニュアルには写真1枚目の様に記載があるので、データレジスタに値を出力後もちょっと待ってやった方が良いかと。 写真2枚目はX68030+060turboでも確実に書き込み成功する例です。 pic.twitter.com/iFE4HECNrb

2022-05-16 07:04:20
前へ 1 ・・ 4 5