Excellent. I added the header and I can adjust volumes.
Now, is it a better idea to boost the YM2151 or attenuate the C140? I've seen posts about how System 2 volume is supposed to work:
I already added an "extra header" section that allows to adjust the chip volume on a per-vgm basis in v1.70.
I just haven't written tools that write these values yet. (Currently I resize the header with vgm_ptch and overwrite a few bytes using a mini-tool.)
Anyway, I found:
- MAME Namco System 2 "default": YM2151 0.80, C140 0.75 (100%/94%)
- MAME Namco System 2 "default3": YM2151 1.00, C140 0.45 (100%/45%)
- MAME Namco System 2 "metlhawk": YM2151 0.80, C140 1.00 (100%/125%)
- MAME Namco System 21: YM2151 0.30, C140 0.50 (100%/166%)
- M1 Namco System 2: YM2151 0.80, C140 0.40 (100%/50%)
- M1 Namco System 21: YM2151 0.80, C140 0.45 (100%/56%)
This is really a mess, but I think I'll go with default values of YM2151 100% and C140 50% for the next release of VGMPlay.
I'm using Foobar2000 foo_gep to listen and it doesn't seem to have the special case of Namco System 2 volume adjustment that Valleybell put in vgmplay.
Here's my subjective observation, let me know if I got these volume levels wrong:
0x10d: 03 00 00 82 Boost YM2151 to 200%, the volume is pretty close to MAME
0x10d: 1c 00 80 00 Attenuate C140 to 50%, for some reason this sounds slightly better, maybe something with how the player is normalizing the rest of the volume?