vgmrips / vgmplay-legacy

VGM file command-line player and Winamp plugin.
http://vgmrips.net
221 stars 52 forks source link

update all Nuked FM-cores #63

Closed eugene-s-nesdev closed 4 years ago

eugene-s-nesdev commented 4 years ago

Nuked OPL3 (YMF262) & OPN2 (YM3438/YM2612) FM-chip emulation cores are the most accurate according to many tests on vogons.org

NukeYKT (developer) page: http://nukeykt.retrohost.net/

OPL3 emulation core, current version 1.8: https://github.com/chocolate-doom/chocolate-doom/blob/master/opl/opl3.c https://github.com/chocolate-doom/chocolate-doom/blob/master/opl/opl3.h DOSBOX-ECE (Enchanced Community Edition) use it: https://www.vogons.org/viewtopic.php?f=41&t=49327&start=20#p661417

OPN2 emulation core, current version 1.0.9: https://github.com/nukeykt/Nuked-OPN2 Genesis-Plus-GX emulator (by EkeEke) use it too, as well, as mame core.

Any hope you'll update Nuked OPN2 and add Nuked OPL3 to vgmplay? Thank you.

ValleyBell commented 4 years ago

I'm afraid this version of VGMPlay is in "maintenance mode". I won't add any features unless I get pull requests.

But thanks for the links - I'll integrate the updates into libvgm, so it will be part of the VGMPlay rewrite.

superctr commented 4 years ago

I don't think there are any major differences in latest NukedOPN2 vs the one we have (which was contributed by nukeykt himself). If you can find any feel free to send PR, it shouldn't need a complete re-porting of the code.

eugene-s-nesdev commented 4 years ago

Nuke.YKT wrote:

Changelog v1.8:

  • New envelope generator.
  • Rhythm mode emulation is 100% correct now. These and other aspects of chip have been verified on YMF262 die shot, so emulation should be perfect now.
superctr commented 4 years ago

That change log is for the OPL3 core. We don't even have it in vgmplay, only libvgm. I'm talking about the OPN2 core here.

ValleyBell commented 4 years ago

libvgm already has Nuked OPL3 v1.8. Nuked OPN2 v1.0.9 doesn't have any improvements over 1.0.7 that have any audible effect. (It's just changes related to reading the status register, which is not used by VGMPlay, and some renamed variables.)