vgmrips

The forum about vgm files
It is currently 2020-02-28, 23:21:12

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 10 posts ] 
Author Message
PostPosted: 2019-12-18, 22:42:08 
Offline

Joined: 2019-12-18, 22:34:18
Posts: 4
How accurate is using VGMPlay (or other players) on modern computers? (i.e. Windows 10, etc)

Over the past year I've purchased a Roland MT32 and SC-55 MK2 and it allows me to connect directly to a modern PC using a USB adapter (UM-ONE). I can then use DosBox or other emulators but use authentic hardware to produce sounds and music.

Is there anything similar for AdLib/SoundBlaster (OPL?) or NES/SNES/Genesis sounds?

I've just found out about VGM files and VGMPlayer (thanks 8-bit guy!) but I'm not completely sure how authentic playback is on a modern PC. If I understand correctly, the VGM files have the exact commands sent to the original hardware, but I'm guessing it's emulated when playing back on a modern PC?

I did see that VGMPlayer supports DOS and if you have an old machine with an old soundcard it will use that to playback sounds on the original chips (if your soundcard has them) but that requires a separate/dedicated PC?


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-19, 10:17:32 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 3201
Location: Germany
VGMPlay is probably the most accurate way of playing VGMs if you can't play them on actual OPx chips.

MegaDrive emulation is as accurate as it can get if you enable the NukedOPN2 core. (I personally consider the MAME/Genesis Plus GX core sufficient most of the time though.)
OPL emulation is "decent" currently. (NukedOPL3 will be included with the next major update.)
The quality of the emulation generally varies between "okay" and "very good".
For some PCM chips you also get the option of oversampling them, so VGMPlay's output sounds better than the actual chip.

As for playing on real hardware, you can use SBVGM if you want to play back VGMs in real DOS.
VGMPlay itself can also play back data on real a OPL3 card. On Windows NT/2000/XP/... it does that through the PortTalk driver. On Windows 9x and Linux-based OS it works without any special driver.
I've been using VGMPlay to listen to OPL2/3 VGMs on an old PC (Pentium II with SoundBlaster 16, Windows 2000), as well as a modern PC (Intel i7 with YMF744 PCI sound card, Gentoo Linux).
Note that VGMPlay is not a DOS program. It just runs in a console window.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-20, 22:46:10 
Offline

Joined: 2019-12-18, 22:34:18
Posts: 4
Thanks very much for the reply and information!

Do you know if anybody has thought about (and has enough experience/knowledge!) to use an FPGA to recreate these sound chips and play VGM files?

It would be absolutely incredible if a device like the MiSTer (FPGA) had a core(s) written to playback VGM files and cycle-accurate (or nearly) sound chip recreation.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-21, 0:18:24 

Contributors Contributors
Staff Staff
Reverse engineers Reverse engineers
Offline
User avatar

Joined: 2013-07-17, 23:32:39
Posts: 402
I know about the jt12 and jt51 cores (they are supposedly very accurate) but I don't know if anyone wrote a VGM player that uses those that can run on a MiSTer (DE10 Nano) or other kind of FPGA board. Btw cycle accurate doesn't necessarily mean sample accurate :)


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-21, 0:53:25 
Offline

Joined: 2019-12-18, 22:34:18
Posts: 4
I've written briefly to Jose and he's actually created a bunch of cores:

  • YM2203 (JT03)
  • YM2612 (JT12)
  • YM2610 (JT10)
  • YM2151 (JT51)

He mentioned working on an enhanced Atari ST core as a VGM player but he hasn't worked on it in a while.

I'm not sure what you mean by 'cycle accurate isn't sample accurate' but most of this goes above my head. I just want to hear accurate playback of video game music :)


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-21, 20:17:21 
Offline

Joined: 2016-08-03, 22:36:09
Posts: 26
Location: Italy
@ValleyBell : can You please elaborate how do You manage to use pci Opl3 on GNU/Linux? I have the hardware and I would try it.
Thank You.
Happy Holidays!


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-23, 11:17:20 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 3201
Location: Germany
For me the most difficult part with OPL3 on modern hardware was actually getting the FM port to work at all.
The legacy port (0x388) doesn't work on modern main boards, so you need to specify a port that is within the sound card's PCI address range. (see this comment by Nuke.YKT)

For YMF744/YMF754 cards, you have to remap the OPL port using kernel driver options.
I set those in /etc/modprobe.d/alsa.conf (file name may vary, my card uses PCI ports 0xD000..0xDFFF)
Code:
# make YMF744 MIDI Out and OPL3 ports work
options snd-ymfpci mpu_port=0xDF30 fm_port=0xDF88

After that, you can just specify that port in VGMPlay.ini
Code:
FMPort = DF88

Finally, run vgmplay as root in order to be able to access the FM ports.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-23, 15:40:00 
Offline

Joined: 2019-12-18, 22:34:18
Posts: 4
That's really interesting...

It sounds like you can find a modern PCI-Express sound card with an OPL3 (YMF744/YMF754) card and play VGM files through the authentic OPL3 chip?

I wonder if these also work in Windows 10 or only Linux?

Also, do you pass the audio output to another sound card (i.e. onboard/motherboard sound card) or output directly to speakers?


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-23, 16:34:04 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
Offline
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 3201
Location: Germany
The YMF744 is a (non-Express) PCI card from about 2000, so it's a pretty old card.
You need to find a mainboard that has a non-Express PCI slot in order to use it.

Under Linux it works just fine. (except that you won't get an XG MIDI synthesizer - that's part of the Windows driver)
There are 32-bit drivers for Windows 98/ME/2000/XP. I'm not sure if they work on modern machines though, as they probably just use the Legacy ports for FM and MIDI out.
There are no 64-bit drivers, so I haven't been able to get it to work under Windows 10 (64-bit) at all.

When it works, then all sound (OPL + wave) is output through the speakers, just like it is on old cards like the SoundBlaster 16.


Top
 Profile  
 
 Post subject:
PostPosted: 2019-12-23, 20:47:23 

Contributors Contributors
Offline
User avatar

Joined: 2015-11-01, 22:18:27
Posts: 41
Location: Canada
sofakng wrote:
... It sounds like you can find a modern PCI-Express sound card with an OPL3 (YMF744/YMF754) ...

Does not exist! OPL3 (and other forms of synth-as-part-of-soundcard) were long dead+buried by the time PCIe became a thing around ~2005.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
[ Time : 0.144s | 18 Queries | GZIP : On ]