VGM player

Discussion of programming and development for the original Game Boy and Game Boy Color.
Post Reply
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

VGM player

Post by mic_ »

I decided to write a VGM player for the Gameboy.

You can download it and the source code here
And you can see/hear it in action here

It obviously doesn't cover all the chips supported by the VGM format. Only the SN76489 is emulated (used in Sega Master System and Game Gear).

Since the waveform channel on the Gameboy only has 4 different volume settings it'll probably sound weird in some songs. Loading new waveforms dynamically to simulate 16 volume settings didn't seem like a good option.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

"The system cannot execute the specified program."

Really? Is this a .NET thing?
User avatar
Hamtaro126
Posts: 818
Joined: Thu Jan 19, 2006 5:08 pm

Post by Hamtaro126 »

tokumaru wrote:"The system cannot execute the specified program."

Really? Is this a .NET thing?
It also may be that it's not 32/64-bit, I'll test it later.
AKA SmilyMZX/AtariHacker.
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ »

tokumaru wrote:"The system cannot execute the specified program."

Really? Is this a .NET thing?
Nope. Regular C++, and it's 32-bit.
It's compiled with Visual Studio 2008, so the only thing I can think of right now is that you're missing the correct RTL (msvcrt90.dll).
User avatar
Banshaku
Posts: 2417
Joined: Tue Jun 24, 2008 8:38 pm
Location: Japan
Contact:

Post by Banshaku »

I have VS2008 and it's not working. Could the uploaded file be corrupted?
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ »

Could the uploaded file be corrupted?
Not unless winrar corrupted it when I zipped everything. The same exe is working fine on my machine (running 32-bit Vista). I can upload a new archive later, along with the source of the tool.
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ »

Ok, I made some fixes to the player. I also recompiled the tool with VS2005, and it's now statically linked against the RTL. The source code for the tool is now included as well.

Download link
Youtube video
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

I still couldn't run the EXE after installing the runtime files... Will try the new package now!

EDIT: Still the same error. This is really weird... I'll try it on my other PC sometime.
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ »

I checked the latest exe (the one from dmvgm-2.zip) with DependencyWalker, and it only listed MSVCR80.DLL and KERNEL32.DLL.

Here's what VS puts in the manifest when it builds the program:

Code: Select all

    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
That's the only dependency in the manifest.

EDIT: I added the exact DLL I'm using to the archive. Download here
User avatar
thefox
Posts: 3134
Joined: Mon Jan 03, 2005 10:36 am
Location: 🇫🇮
Contact:

Post by thefox »

mic_ wrote:I checked the latest exe (the one from dmvgm-2.zip) with DependencyWalker, and it only listed MSVCR80.DLL and KERNEL32.DLL.

Here's what VS puts in the manifest when it builds the program:
I'm pretty sure you also have to include the file "Microsoft.VC80.CRT.manifest" in the release.
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ »

thefox wrote:
mic_ wrote:I checked the latest exe (the one from dmvgm-2.zip) with DependencyWalker, and it only listed MSVCR80.DLL and KERNEL32.DLL.

Here's what VS puts in the manifest when it builds the program:
I'm pretty sure you also have to include the file "Microsoft.VC80.CRT.manifest" in the release.
Alright. Added all of those files and re-uploaded
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

Ah, it finally worked! It's pretty interesting to listen to SMS songs on the GB! Some songs end up losing important channels, but it's still very cool!
User avatar
B00daW
Posts: 586
Joined: Thu Jan 03, 2008 1:48 pm

Post by B00daW »

I don't know how well this would work for volume slides, but you could have a table of different height pulse waves for the other pulse channel via the GB WAV channel.

Good work. :)
mic_
Posts: 922
Joined: Thu Oct 05, 2006 6:29 am

Post by mic_ »

Already tried that. It sounded awful. :P
Post Reply