2016-09-01から1ヶ月間の記事一覧

エミュレータのフレーム境界

NES

FCEUXではフレーム境界がline240(post-render)となっていますが、この理由がよくわかりませんでした。しかし考えてみると、入力更新タイミングとしてはここが適切なのではないかと思いました。 NESゲームの入力処理はNMIルーチン(line241で呼び出される)内で…

SMB1などのムービーがsyncした

NES

まだgithubには反映されてませんが、手元のブランチで主にPPUをFCEUXと一致させる作業中です。とりあえず以下のムービーはsyncするようになりました: HappyLee's NES Super Mario Bros "warped" in 04:57.31 t3h Icy's NES Urban Champion in 00:26.97 アス…

pysdl2でオーディオ再生(コールバック方式)

以前SDL2でのコールバック方式オーディオ再生について書きましたが、同様のコードをpysdl2で試してみました(全コードを置いておきます)。 スレッド間のやりとりには標準のqueue.Queueを使っていますが、これが最適かどうかはよくわかりません。 動かしてみる…

一応APU実装完了

NES

どうにか全チャネルがそれなりに鳴ってくれるようになりました(DMCは以前作ったPCM再生ROMでテストしましたが、本来の使い方であるDelta PCMについてはまだテストしてません)。ただ、ほとんどFCEUXのパクリなので理解度は半分以下です。 NesDevWikiの記述通…

NESエミュレータ(未完成)のリポジトリ作成

NES

とりあえず矩形波と三角波はそれっぽく鳴るようになったので一応リポジトリを作ってみました。ノイズとDMCは未実装です。 まだエミュレーション精度はガバガバです。最終的にはFCEUX互換にしたいですが…。 なお、このプロジェクトはとにかくシンプルでわかり…

SDL2のオーディオ再生

NESエミュレータはどうにか三角波がまともに鳴るようになりました。どうもSDL_QueueAudio()を使っていたのが良くなかったようで、従来のコールバック方式にしたら改善しました。そこで一応コールバック方式での再生について書いてみます(知識ゼロから調べた…

はてなダイアリーから移転しました

いきなりですがMarkdownを使いたかったので移転してみました。なんか横幅の狭いデザインばっかりなのが気になりますが…。スマホの影響なんですかね?