NEC PC-98シリーズエミュレーターを語ろう23 (860レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
230
(2): (ワッチョイ b3af-T7LG) 2024/05/05(日)02:37 ID:KHevWzEV0(1/4) AAS
OPNA YM2608のクロックサイクル精度でのシミュレーション(エミュレーション)ってものを見かけて、猫にも使えないかってことで np2 fmgen の方に書いたことをこちらにも共有いたします
外部リンク:github.com

使い方は文書化されてないけどソースコード眺めたところおそらく次のような感じです
便宜上 YM2608 OPNA の場合を言うと、fmopna_2608.h を include してfmopna_t型の構造体を指すポインタとマスタークロック信号(0もしくは1(非0)で、交互?)を渡して FMOPNA_Clock() を呼び出す度にfmopna_t型の構造体が1クロック(半クロック?)後の状態に更新されるって形だと思います

外部リンク[h]:github.com を見ると fmopna_t は最初のメンバーとしてfmopna_input_t型の input を持ってるんですが、fmopna_input_t型は YM2608 OPNA の入力端子に相当するみたいです
具体的には全てのメンバーがint型として定義されてて、clk, ic, cs, wr, rd, a0, a1, data, test, gpio_a, gpio_b, dt0, dm, ad, da とあります
YAMAHA LSI Data Book 音源編(1994-10、CATALOG No.: 7610002)の YM2608B の節(外部リンク[pdf]:www.quarter-dev.info)で、端子機能を見るとこれらが入力(もしくは入出力)の端子として記されています
231
(1): (ワッチョイ b3af-T7LG) 2024/05/05(日)02:39 ID:KHevWzEV0(2/4) AAS
>>230
「変数名,番号,機能」の順に対応を記すと
clk, 63, マスタークロック(7.9872MHz)
ic, 33, 初期化(イニシャルクリア)
cs, 57, CPUインターフェース チップセレクト信号
wr, 58, CPUインターフェース データライト信号
rd, 59, CPUインターフェース データリード信号
省11
232
(1): (ワッチョイ b3af-T7LG) 2024/05/05(日)02:41 ID:KHevWzEV0(3/4) AAS
>>231
同様に、出力も fmopna_t 内に定義されています

「変数名,番号,機能」の順に対応を記すと
int o_gpio_a, 17〜10, 汎用I/Oポート A0(最下位ビット)〜A7(最上位ビット)
int o_gpio_b, 25〜18, 汎用I/Oポート B0(最下位ビット)〜B7(最上位ビット)
int o_spoff, 34, スピーカー ON/OFF 用スイッチ
int o_a8, 42, 外部メモリへのアドレス出力 A8
省13
233: (ワッチョイ b3af-T7LG) 2024/05/05(日)02:43 ID:KHevWzEV0(4/4) AAS
>>232
まとめると、素人目でソースコードを見たところ
・fmopna_t のインスタンスを変数に保持する
・fmopna_t.input(fmopna_input_t型)に必要なら値を書き込む
 → FMOPNA_Clock() にポインタ渡してクロック進める
 → fmopna_t の o_〜 メンバーから必要なら適宜出力を読む
 を繰り返す
省5
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s