It is currently Sat Dec 16, 2017 2:30 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: VGM player
PostPosted: Sat May 21, 2011 1:58 pm 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
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.


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 21, 2011 4:23 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10165
Location: Rio de Janeiro - Brazil
"The system cannot execute the specified program."

Really? Is this a .NET thing?


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 21, 2011 5:59 pm 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 748
Location: Shelton, Washington.
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.


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 21, 2011 11:51 pm 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
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).


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 12:58 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 1519
Location: Fukuoka, Japan
I have VS2008 and it's not working. Could the uploaded file be corrupted?


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 1:26 am 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
Quote:
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.


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 3:15 am 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
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


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 8:47 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10165
Location: Rio de Janeiro - Brazil
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.


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 9:48 am 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
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:
    <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


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 10:04 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2983
Location: Tampere, Finland
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.


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 10:14 am 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
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


Top
 Profile  
 
 Post subject:
PostPosted: Sun May 22, 2011 11:03 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10165
Location: Rio de Janeiro - Brazil
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!


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 28, 2011 9:32 am 
Offline
User avatar

Joined: Thu Jan 03, 2008 1:48 pm
Posts: 544
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. :)


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 28, 2011 12:08 pm 
Offline

Joined: Thu Oct 05, 2006 6:29 am
Posts: 911
Already tried that. It sounded awful. :P


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 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