QEMU/9821 on Windows Snapshot (3/20/2011) - 模擬器

Jessica avatar
By Jessica
at 2011-03-20T16:28

Table of Contents

http://homepage3.nifty.com/takeda-toshiya/

2011/3/20
突発的にFM音源(OPNA)を実装してみました。
YM2608+CS4231Aなので、98MULTi CanBe内蔵型音源相当ですね。
コアは他のエミュレータでも使用させていただいているfmgenです。

QEMUはCで実装されていますが、そこにC++のfmgenを組み込むのが大変でした。
configure/makefileの書き方がよく判らなくて、ビルドするのにも一苦労で(苦笑)


以前に実装を試みたときは、QEMU側のタイマの精度の問題があったのですが、
今回は、qemu_get_clock_ns()をバックポートして使用しています。
この関数は、Win32環境ではQueryPerformanceCounter()から取得されますので、
環境依存ではありますが、実時間を高精度で取得できるようになっています。

実装的には、qemu_mod_timer()を使って実時間で1msec単位で割り込んでやって、
(1msec単位を指定しても、実際には2~3msec程度になってしまいますが)
そのときにqemu_get_clock_ns()で取得した経過時間だけ音源を駆動してやります。
その他、ステータスを取得するときに、音源のタイマが駆動中かどうか判定して、
駆動中のときは、やはり音源を駆動してステータスを更新しています。

その他、フロッピーディスクI/Fにおいて、1MB/640KBのモード切り替え時に、
IRQ/DMAを変更する処理を追加しました。
ただし、ディップスイッチの設定は、従来通り1MBモード固定としています。

今回、0.10.6ベースとは別に、最新の0.14.0ベースの実装も試しています。
配布しているバイナリは従来通りの0.10.6ベースですが、ソースアーカイブには
両方のソースが入っています。
KQEMUが使えないこともあって、0.10.6ベースの方が動作は軽くなっていますが、
CPUコアやTCGなど色々改良されていますので、ご興味の方はビルドしてみてください。
mingw以外でビルドするときは、stdc++をリンクするのをお忘れなく。


--

All Comments

MD經典大作—光之咒法師(澎湃的電風)漢化版

Kama avatar
By Kama
at 2011-03-20T15:21
剛剛在棒球板推文聊天,結果一位棒球板板友私信傳過來這個東西,看來是這兩天 才發佈的。這款遊戲算是MD後期的作品,所以大家可能會比較陌生一點。不過也 相當值得一玩,我有寫過相關的簡介,有興趣的人可以去翻一下(#18YVQWJC)。 ______________________________________ ...

(Tool) VGMToolbox SVN r760

Enid avatar
By Enid
at 2011-03-20T10:38
2011.03.19 多平台音樂/音效管理工具。 VGMToolbox SVN r760 is released. VGMToolbox is a C# based tool to assist VGM collectors and dumpers. It includes ...

WIN7下ePSXe手把設定不了

Andrew avatar
By Andrew
at 2011-03-19T20:28
我從四個月前換WIN7到現在都沒試過PS模擬器 今天心血來潮將硬碟中的PS模擬器打開(ePSXe 1.6.0~1.7.0都一樣) 手把也都拿以前的東西來用(SANWA JY-PASUAD2加上PS2手把) 但遇到最大的問題就是手把設定不知被什麼東西干擾 我隨便點一個手把設定都會變成underline ...

GNOMESS v1.1.0

Faithe avatar
By Faithe
at 2011-03-19T17:01
http://sourceforge.net/projects/gnomess GNOMESS v1.1.0 is released. GNOMESS is a basic front-end for SDLMESS. It runs under Linux with the GTK libraries. ...

Wine v1.3.16 Final

Hamiltion avatar
By Hamiltion
at 2011-03-19T17:00
http://www.winehq.org/ Wine v1.3.16 Final is released. Wine is a project to allow a PC running a Unix-like operating system and the X Window System to run ...