Author Topic: Error in decoding OPM files (YM2151)  (Read 1491 times)

Offline bryc

  • Newbie
  • Posts: 2
  • Delek FTW
Error in decoding OPM files (YM2151)
« on: January 04, 2018, 01:04:32 pm »
This is related to YM2151 but may affect other FM modes if they use OPM import.

There's a bug when decoding DT1 parameter in OPM files.

Code: [Select]
val  VOPM DM 
0     0   -3
1     1   -2
2     2   -1
3     3    0
4     0    1
5    -1    2
6    -2    3
7    -3    3

VOPM parses this as a 3 bit signed number, where third bit is sign bit and other is magnitude. Deflemask does something else - maybe maps values to another value, but they don't match up.

Also KS (Key Scaling) is missing as a parameter, why? It's value 0-3 affects the envelope generator decay speed and appears to be ignored. That means it's not possible to fully import all settings from a YM2151 register.
I also noticed that LFO and noise settings are missing as well. It would be nice to have full access to all parameters especially in a tracker that can output VGM and playback on hardware.