/np2

Neko Project II

Primary LanguageC

PC9801エミュレータ ねこープロジェクトII(Neko Project II) FM音源改善版

概要

PC9801エミュレータねこープロジェクトIIのFM音源エミュレート部を実ハードに合わせて改善した物です。

変更点

FM音源(YM2608B)のハードウェアLFO関連のレジスタを追加(以下表の太字部分)

ADDRESS D7 D6 D5 D4 D3 D2 D1 D0 COMMENT
0x22 / / / / LFO LFO の FREQ CONTROL
0x60-0x6E AMON / / DR Decay Rate / AMON
0xB4-0xB6 L R AMS PMS PMS / AMS / LR

FM音源(YM2608B)のハードウェアLFOのエミュレート処理を実装した。

  • ハードウェアLFO(音程)
  • ハードウェアLFO(音量)

FM音源のエンベロープを実ハードに合わせて改善

  • AR, FBレジスタに書き込みし、且つ、発音中の音がReleaseフェーズ以外のフェーズであった場合、発音中のエンベロープのポインタをリセットするようにした。
  • KSレジスタに書き込みし、且つ、発音中の音があった場合、発音中の音のエンベロープのRateもKSに応じて更新するようにした。
  • DLレジスタに書き込みし、且つ、発音中の音がDecayフェーズで減衰が既にDecayLevelに達していた場合、発音中の音をSustainフェーズに移行するようにした。
  • KeyOnした場時に前の音が残っている(エンベロープが減衰しきっていない、又はAttackフェーズであった)場合、現時点のレベルからアタックするようにした。