Skip to content

VGMPlay / in_vgm

Last update: 2023-12-31 (v0.51.1)

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • User avatar
  • jrlepage Offline
  • Posts: 32
  • Joined: 2012-10-07, 3:33:28
  • Location: Canada

Post by jrlepage »

Thanks to both of you!
  • User avatar
  • drdevil Offline
  • Posts: 73
  • Joined: 2015-08-30, 14:24:00
  • Location: Scotland
  • Contact:

Post by drdevil »

Two issues.

The program does not emulate some Game Boy VGMs correctly. I've attached an untrimmed VGM from the Game Boy version of Side Pocket, for proof. I've brought it up on IRC before, and ctr told me it's an emulation issue or something like that.

The second issue is more minor. Why does in_vgm play C140 VGMs at a lower quality than VGMPlay does?
Attachments
DMG-SWA_02.vgm
(81.03 KiB) Downloaded 555 times
I'm HarmoDevil. Formerly Dr Devil, but I still use the drdevil username here.

Check out my Soundcloud.

I might get back to VGM ripping someday.
  • ctr Offline
  • Posts: 492
  • Joined: 2013-07-17, 23:32:39

Post by ctr »

The second issue is because you have your Chip Sample Mode set to "native". Go into your in_vgm settings, first tab, set Chip Sample Mode to "highest".
  • User avatar
  • 2ch-H Offline
  • Posts: 280
  • Joined: 2012-01-03, 2:10:28

Post by 2ch-H »

I noticed now look at the post, Castle of Dragon will play correctly when set to "native".
  • ctr Offline
  • Posts: 492
  • Joined: 2013-07-17, 23:32:39

Post by ctr »

Yes, that is some strange behavior with the X1-010 chip that causes some packs only to work with "native" sample rate. But other chips should be fine.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

That's a race condition, caused by the way the tracks are looped.
The sound engine waits for the X1-010 chip to send a "sample finished" signal and restarts the song then.
But due to how the sound chip works, sending the "start" command just 1 sample too early results it the command being ignored.
I'll work on a patch for that as soon as I get time.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

So, here is a official release of VGMPlay/in_vgm 0.40.7. Links are in the [pack] OP.

Here a small summary of the most important updates: (details can be found in VGMPlay_Updates.txt)
  • improvements for emulation of: SAA1099, ES5503, YMF278B FM part, X1-010 (fixes PCM streams with non-native sample rate)
  • fixed bugs related to muting channels in SAA1099, GA20, SN76489
  • new C352 sound core thanks to ctr
  • added a few options to the .ini files (disable C352 rear channels, disable in_vgm tag cache, hard-stop non-looping VGMs <1.50)
Enjoy!
  • User avatar
  • kyusawamura Offline
  • Posts: 33
  • Joined: 2015-06-08, 20:42:22
  • Location: Argentina
  • Contact:

Post by kyusawamura »

Thank you very much for the update. :D
Question, how long might it take for foo_input_vgm to update after in_vgm.dll?
  • User avatar
  • RichterEX2 Offline
  • Posts: 191
  • Joined: 2012-03-30, 9:28:37
  • Location: Georgia, USA

Post by RichterEX2 »

kyusawamura wrote:Thank you very much for the update. :D
Question, how long might it take for foo_input_vgm to update after in_vgm.dll?
That's handled by a Japanese user by the name of Nakami (I think). They'll probably update it as soon as they find out.

Post by vampirefrog »

Congrats on new release!
  • kirishima Offline
  • Posts: 82
  • Joined: 2015-06-18, 22:26:41

Post by kirishima »

kyusawamura wrote:Thank you very much for the update. :D
Question, how long might it take for foo_input_vgm to update after in_vgm.dll?
It's available now: http://ux.getuploader.com/foobar2000/do ... m_v0.26.7z

Post by vampirefrog »

thanks for the foo update too, that was quick
  • Blazer Offline
  • Posts: 2
  • Joined: 2016-06-17, 18:18:01

Post by Blazer »

Hi!

I'm the authour of BZR Player ( bzrplayer.blazer.nu ) and is trying to incorporate VGMPlay.

I've compile using mingw32 and made my own makefile and defined ENABLE_ALL_CORES. It compiles fine and music files are read properly (I can get system name, title etc. fine) but I don't get any sound at all, just silence. Basically this is my code:

Code: Select all

/*Load method*/
Load file
VGMPlay_Init();
VGMPlay_Init2();
PlayVGM();
/* play method*/
int RetSamples = FillBuffer((WAVE_16BS*)buffer, 512); 
Is there anything obvious I'm missing? I'm guessing the ini/settings file isn't mandatory to parse since all variables seems to have good default values.

Thanks!
  • Blazer Offline
  • Posts: 2
  • Joined: 2016-06-17, 18:18:01

Post by Blazer »

Ah, I found out the problem!

VGMPlay_Init() should be called before OpenVGMFile().
  • User avatar
  • 2ch-H Offline
  • Posts: 280
  • Joined: 2012-01-03, 2:10:28

Post by 2ch-H »

I noticed ripping Bells & Whistles, but the stereo channel of K053260 is swapped.

BTW:Sunset Riders music is mono (Except for Attract Mode BGM), You can set it to stereo in service mode.
Post Reply