SBVGM (DOS) VGM Player

Schedules and announcements about program releases.

SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-01 @ 14:37

In case anyone is interested, I recently released a VGM player for DOS that can be downloaded here.

Supported Sound Hardware
  • IBM PCJr
  • Tandy 1000
  • Tandy Sound (SN76489) Adapter
  • IBM PS/1 Audio
  • Adlib
  • Game Blaster
  • Sound Blaster 1.x/2.x
  • Sound Blaster Pro 2
  • Sound Blaster 16

Supported VGM chipsets
  • RP2A03 (NES APU)
  • SN76489 variants
  • AY-3-8910
  • YM2149
  • SAA1099
  • YM2413
  • YM3256
  • Y8950
  • YM3812 (OPL2)
  • YMF262 (OPL3)

A Game Blaster (or a Sound Blaster equipped with the C/MS chips) is needed for the RPA03, SN76489, AY-3-8910, or YM2149 emulation; direct hardware playback is supported on systems with an actual SN76489. Game Blaster playback should sound correct even under DOSBox v0.74. Hopefully in the future there will be some kind of standard way to for a program to identify what version of DOSBox it is running on (this is no longer the case as of v1.11).

At present there isn't any support for sample playback (for the VGMs that have them); I've already spent more time on this than I should have! :)
Thanks to all the folks who put out various information on the forums and suggested ideas.

I hope someone finds some use for the program. For now, my little experiment is over.
Last edited by OPLx on 2017-1-14 @ 08:49, edited 5 times in total.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby autoexecdotbat » 2016-3-02 @ 16:10

hello, I have a few sugestions for new features:
1. ay8910 support (there's a pretty good dos ay emulator by marsel de cogel that some old emulators use)
2. for sn77489: add tandy 3 voice support, it's the same sound chip.
"911, call wiliam shatner!"
-stinky from great word adventure 1994
autoexecdotbat
Member
 
Posts: 148
Joined: 2015-12-18 @ 22:10

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 02:15

autoexecdotbat wrote:hello, I have a few sugestions for new features:
1. ay8910 support (there's a pretty good dos ay emulator by marsel de cogel that some old emulators use)
2. for sn77489: add tandy 3 voice support, it's the same sound chip.


Thank you for the feedback. I actually am planning to support the SN76489 on the Tandy 1000 series and the IBM PCJr, but need to spend some time looking into methods for detecting which model the program is running on. From some of the information I found, the port address where the chip is access can depend on the Tandy model.

I had also considered AY-3-8910, but it turned out that there are several variations of the chip. This will also require some time to research before I attempt any implementation.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby DracoNihil » 2016-3-03 @ 09:47

Be very careful when assuming the Tandy 3 Voice is the same as the Master System and Genesis\MegaDrive. Variations of the SN76489 have differing noise generation if I'm not mistaken, which can prove problematic.
User avatar
DracoNihil
Oldbie
 
Posts: 937
Joined: 2011-10-09 @ 14:26
Location: Independence, KS

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 10:49

DracoNihil wrote:Be very careful when assuming the Tandy 3 Voice is the same as the Master System and Genesis\MegaDrive. Variations of the SN76489 have differing noise generation if I'm not mistaken, which can prove problematic.


The noise generation pattern is different so a VGM that doesn't have the same pattern will sound different (at least on noise playback). Apart from the how certain variants handle a frequency write of zero, the features available on the T6W28 and Game Gear (stereo) the variants all seem to be on parity with the register layout (based the information found in data sheets).
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby autoexecdotbat » 2016-3-03 @ 15:44

will there be a way to force game blaster for sa1099?
"911, call wiliam shatner!"
-stinky from great word adventure 1994
autoexecdotbat
Member
 
Posts: 148
Joined: 2015-12-18 @ 22:10

Re: SBVGM (DOS) VGM Player

Postby Scali » 2016-3-03 @ 16:04

DracoNihil wrote:Be very careful when assuming the Tandy 3 Voice is the same as the Master System and Genesis\MegaDrive. Variations of the SN76489 have differing noise generation if I'm not mistaken, which can prove problematic.


Yes, there are two versions of the SN76489, the early one, and the SN76489A.
There is also the SN76496, which has an extra audio input pin for mixing with other audio sources, but is otherwise equal to the SN76489A.
So if you support both types of noise generation, you should be okay with all the variations out there.
Scali
l33t
 
Posts: 2184
Joined: 2014-12-13 @ 14:24

Re: SBVGM (DOS) VGM Player

Postby autoexecdotbat » 2016-3-03 @ 19:18

regarding the ay8910, the only varient that is vastly different is the ay8930, which is not supported by the vgm format, and will probably never be since it was used only on the covox sound master, which is poorly documented. the other variations (8912, 8913, 8914, and the yamaha varients like ym2149) only differ in pinouts.
"911, call wiliam shatner!"
-stinky from great word adventure 1994
autoexecdotbat
Member
 
Posts: 148
Joined: 2015-12-18 @ 22:10

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 21:39

autoexecdotbat wrote:will there be a way to force game blaster for sa1099?

It looks like you found a bug in the auto detection. :depressed: I see that there could be a variation where a Sound Blaster (or compatible) device is detected before it checks for a Game Blaster (SB is of higher priority). I'll see what I can do to fix this. Thank you for pointing it out!
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 21:43

Scali wrote:Yes, there are two versions of the SN76489, the early one, and the SN76489A.
There is also the SN76496, which has an extra audio input pin for mixing with other audio sources, but is otherwise equal to the SN76489A.
So if you support both types of noise generation, you should be okay with all the variations out there.


Do you mind clarifying what you meant by "support both types of noise generation"? I'm probably misreading that as it's possible to change the noise pattern on the chip. It doesn't seem possible, but I'm not intimately familiar with any tricks or undocumented features.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby autoexecdotbat » 2016-3-03 @ 21:52

I'm not encountering a bug, I'm just saying it's an option, since it says the sa1099 emulation does not require a gameblaster or cms chip, despite the gameblaster containing not 1, but 2 such chips.
"911, call wiliam shatner!"
-stinky from great word adventure 1994
autoexecdotbat
Member
 
Posts: 148
Joined: 2015-12-18 @ 22:10

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 22:00

autoexecdotbat wrote:regarding the ay8910, the only varient that is vastly different is the ay8930, which is not supported by the vgm format, and will probably never be since it was used only on the covox sound master, which is poorly documented. the other variations (8912, 8913, 8914, and the yamaha varients like ym2149) only differ in pinouts.


Well, this is good news to hear! When I get a chance, I will look into how to map it's features onto the SAA1099.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby autoexecdotbat » 2016-3-03 @ 22:10

thanks.
by the way, could you implement alternate cores for some of the chips, similar to the official vgm player for windows? It could change between cores for different chips. for example, for ay8910, the available cores could either be your's which will probably use sa1099, marcel de cogels for addlib, and fmsx core for sound blaster. for sn77489, the cores could hardware emulation via sa1099, hardware emulation via a tandy 3 voice chip, or the software based core used by the dos version of meka, or the sb/gus specific core used by frogger's coleco emulator for dos.
"911, call wiliam shatner!"
-stinky from great word adventure 1994
autoexecdotbat
Member
 
Posts: 148
Joined: 2015-12-18 @ 22:10

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 22:10

autoexecdotbat wrote:I'm not encountering a bug, I'm just saying it's an option, since it says the sa1099 emulation does not require a gameblaster or cms chip, despite the gameblaster containing not 1, but 2 such chips.

I'm sorry. I don't fully understand what you mean. The scenario where the bug will arise is if a machine has a Sound Blaster card and a Game Blaster installed. The Sound Blaster will always get detected first (even if it doesn't support the C/MS option). In this scenario, the Game Blaster will never used (though it is present). If what you have is a Sound Blaster 1.5/2.0 and you want to force usage of the SAA1099 chips, just add the -c option at the end (in this fashion):

SBVGM file.vgm -c
Last edited by OPLx on 2016-3-03 @ 22:29, edited 1 time in total.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 22:27

autoexecdotbat wrote:thanks.
by the way, could you implement alternate cores for some of the chips, similar to the official vgm player for windows? It could change between cores for different chips. for example, for ay8910, the available cores could either be your's which will probably use sa1099, marcel de cogels for addlib, and fmsx core for sound blaster. for sn77489, the cores could hardware emulation via sa1099, hardware emulation via a tandy 3 voice chip, or the software based core used by the dos version of meka, or the sb/gus specific core used by frogger's coleco emulator for dos.


Thank you for the feedback. The player was written from scratch and only supports actual hardware that typically would have been available on the PC (no software emulation is used). The original motivation for the player was because I wanted to see how much of the NES' APU features could be simulated on the SAA1099. Since simulating the SN76489 on the SAA1099 was "simpler" compared to the NES APU, I went ahead and added support for that as well.

Seeing that there are VGM players available under Windows and other more modern platforms, it doesn't make sense to have an all encompassing VGM player under DOS as the player should also work on a slow 4.77 MHz PC (at least I hope it will).
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby autoexecdotbat » 2016-3-03 @ 22:57

well, so did the ay and sn77489 emulator cores I mentioned.
"911, call wiliam shatner!"
-stinky from great word adventure 1994
autoexecdotbat
Member
 
Posts: 148
Joined: 2015-12-18 @ 22:10

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-03 @ 23:30

autoexecdotbat wrote:well, so did the ay and sn77489 emulator cores I mentioned.

Thank you again for the feedback. It is possible to emulate those chips in software (using the examples you mentioned), but doing so would raise the minimum CPU requirements for the player. The player's main goal is playback (in hardware) VGMs that support the SAA1099, YM3812, and YMF262. The simulation of the NES APU and SN76489 on the SAA1099 was more of a bonus feature that I had some time to implement.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby MrKsoft » 2016-3-05 @ 17:16

As I've been working to make VGMs of a lot of DOS music, I'm so incredibly happy to see this and be able to play them back on the original hardware. I've linked it on the OPL Archive. Thanks so much!

edit: Works great! Are there plans for support for memory above 640k? A few large VGMs from my archive (mostly the ones by Madbrain) fail to allocate enough memory to play.
Wafflenet OPL Archive - Preserving MS-DOS music in a unified format!
User avatar
MrKsoft
Newbie
 
Posts: 97
Joined: 2010-9-07 @ 00:58
Location: Bloomington, IL, USA

Re: SBVGM (DOS) VGM Player

Postby OPLx » 2016-3-06 @ 22:08

MrKsoft wrote:As I've been working to make VGMs of a lot of DOS music, I'm so incredibly happy to see this and be able to play them back on the original hardware. I've linked it on the OPL Archive. Thanks so much!

edit: Works great! Are there plans for support for memory above 640k? A few large VGMs from my archive (mostly the ones by Madbrain) fail to allocate enough memory to play.


You are quite welcome; I'm glad it is working well for you! :) Thank you for also putting up a link to the program. While working on the program, I was testing with VGMs at VGMRips and didn't run into very large files. It may take me some time (because of other obligations), but I can look into adding XMS support.
OPLx
Newbie
 
Posts: 79
Joined: 2014-2-15 @ 17:02

Re: SBVGM (DOS) VGM Player

Postby lightmaster » 2016-3-07 @ 19:52

OPLx:
I've been playing a lot of adlib music in the past, without and with your Ganbatte! plugin. Already had those d00 and d01 vibrant music files and the rare ones and more.
Thank you for Ganbatte and SBVGM!!
Cheers
Image
User avatar
lightmaster
Oldbie
 
Posts: 547
Joined: 2005-10-01 @ 12:09
Location: Sol III(¡¿

Next

Return to Release Announcements

Who is online

Users browsing this forum: No registered users and 3 guests