diff options
-rw-r--r-- | README.ja.md | 5 | ||||
-rw-r--r-- | README.md | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/README.ja.md b/README.ja.md index 8f3bd1e..0b793de 100644 --- a/README.ja.md +++ b/README.ja.md @@ -11,9 +11,10 @@ PC-98用のFM音源ドライバエミュレーション(予定) ![w2k screenshot](/img/screenshotw2k.png?raw=true) * PMD, FMP の形式を解析するついでに作ったもので、手持ちのデータが少ないため再現性は PMDWin, WinFMP の劣化版 * FM は 55467Hz で合成, SSG は 249600Hz で合成した後 sinc でフィルタして混合 (高調波の多い矩形波に対して線形補間を行ったりはしません) +* FM 合成は特定の条件下で実チップ OPNA/OPN3 の出力と 4 <= ALG の時のステレオ出力を含めて完全に一致 (エンベロープは完全でなく、AR >= 21 のときのみ一致) * CSM モード (効果音モードとの違いが分からない) と SSGEG とハードウェア LFO 未対応 * PPZ8 は線形補間のみ(オリジナルの無補完よりは…) -* libopna, fmdriver 部分は freestanding な c99 (のはず) なのでマイコンからFM音源の制御にも使えるかもしれない(但し曲データを全部読み込むバッファが必要なので SRAM が 64KB くらいは必要) +* libopna, fmdriver 部分は freestanding な c99 (のはず) なのでマイコンからFM音源の制御にも使える (但し曲データを全部読み込むバッファが必要なので SRAM が 64KB くらいは必要) ## 今後の予定: * まともなUIを作る @@ -42,4 +43,4 @@ $ cd win32/x86 $ make ``` exe の置いてあるディレクトリの中の`ym2608_adpcm_rom.bin`からMAME互換のドラムサンプルを読み込みます。 -DirectSound, WinMM の順に使用します。Windows 2000 までの API しか使用していないので、理論的には PC-98 実機でも動くはずですが、libopna 部の処理が最適化されてなく非常に重いため手持ちの PC-9821V12 (Pentium 120MHz) では半分くらいの速度でしか再生されませんでした。 +DirectSound, WinMM の順に使用します。Windows 2000 までの API しか使用していないので、理論的には PC-98 実機でも動くはずですが、libopna 部の処理が最適化されてなく非常に重いため手持ちの PC-9821V12 (Pentium 120MHz) や PC-9821Ra300 (P6 Mendocino Celeron 300MHz) では半分くらいの速度でしか再生されませんでした。 @@ -10,6 +10,7 @@ PC-98 FM driver emulation (very early version) * FMP: FM, SSG, Rhythm, ADPCM, PPZ8, PDZF supported * This is just a byproduct of reverse-engineering formats, and its emulation is much worse than PMDWin, WinFMP * FM always generated in 55467Hz (closest integer to 7987200 / 144), SSG always generated in 249600Hz and downsampled with sinc filter (Never linear interpolates harmonics-rich signal like square wave) +* FM generation bit-perfect with actual OPNA/OPN3 chip under limited conditions including stereo output when 4 <= ALG (Envelope is not bit-perfect yet, attack is bit-perfect only when AR >= 21) * SSGEG, Hardware LFO not supported * PPZ8: linear interpolation only (same as PMDWin/WinFMP, much better than original ppz8.com which only did nearest-neighbor interpolation) @@ -36,4 +37,4 @@ $ cd win32/x86 $ make ``` Reads drum sample from the directory in which `fmplayer.exe` is placed. -Uses DirectSound (WinMM if there is no DirectSound) to output sound. This works on Windows 2000, so it is theoretically possible to run this on a real PC-98. (But it was too heavy for my PC-9821V12 which only has Pentium 120MHz) +Uses DirectSound (WinMM if there is no DirectSound) to output sound. This works on Windows 2000, so it is theoretically possible to run this on a real PC-98. (But it was too heavy for my PC-9821V12 which only has P5 Pentium 120MHz, or on PC-9821Ra300 with P6 Mendocino Celeron 300MHz) |