VOGONS


SBVGM (DOS) VGM Player

Topic actions

Reply 240 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I feel so silly, I forgot what was the RP2A03 and a search lead me to believe it was a soundcard like the opl2ltp with an arduino-like device. I hope you forgive me, I know very little about the NES. I've read about the DPCM and it's usage. I see it does not affect the few music I like to listen with your player (ninja gaiden, castlevania and super mario bros). I did test the ghostbuster speech and it was effectively silent. I'm not sure if I would bother implementing that either. I found some SAA1099 technical manual, you must have considered using one's SAA1099 for the noise channel and maybe playing with register 20/21 of the second SAA1090 to emulate the DPCM? Reading the documentation of both chips made me realize your players if certainly most complex than just remapping the chip data pinout and feeding it the vgm stream as I originally thought so.

As I keep an history of your versions I could compare the music I know from the NES with player 1.27 and 1.28 and I cannot pretend I could notice any difference.

Reply 241 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote on 2020-01-04, 03:23:

I feel so silly, I forgot what was the RP2A03 and a search lead me to believe it was a soundcard like the opl2ltp with an arduino-like device. I hope you forgive me, I know very little about the NES. I've read about the DPCM and it's usage. I see it does not affect the few music I like to listen with your player (ninja gaiden, castlevania and super mario bros). I did test the ghostbuster speech and it was effectively silent. I'm not sure if I would bother implementing that either. I found some SAA1099 technical manual, you must have considered using one's SAA1099 for the noise channel and maybe playing with register 20/21 of the second SAA1090 to emulate the DPCM? Reading the documentation of both chips made me realize your players if certainly most complex than just remapping the chip data pinout and feeding it the vgm stream as I originally thought so.

As I keep an history of your versions I could compare the music I know from the NES with player 1.27 and 1.28 and I cannot pretend I could notice any difference.

Please don't worry about the mistake. Not too many people refer to the NES' audio chip using RP2A03. 😀 It's possible to use one of the envelope generators (registers 18h or 19h) for sample playback. Playing samples this way requires more CPU time in addition to decoding the DPCM format.

The RP2A03 emulation was a bit tricky (but interesting) to implement. I spent a lot of time reading and re-reading the documentation at APU - Nesdev wiki. There was also a tool I used (I can't remember what it was) to help verify the RP2A03 behavior.

There shouldn't be any audible difference between v1.27 and v1.28 of SBVGM ... unless you physically remove the second SAA1099 from your sound card! 😁

Reply 242 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

Hi OPLx, I was searching for a way to listen to .VGM from the ym2612 from the genesis/megadrive. When I heard about rom vgm player, sdcard cartdrige and that the genesis was hardware compatible with the sega master system I could not resist buying one. So now I'm curious about to compare playing a music on the SAA1099 versus the SN76489. I think I will record both version and, since it's mono chip, if the timing fit, do a stereo music with each version on left/right channel. I will start with a text-to-speech saying the name of the chip because there are many stereo reversed setup. I hope you dont see it as an attack against your player fidelity. My motivation is that, thank to your player, we have the opportunity to listen to how chip compares. I intend to record 4 or 5 musics and I was wondering if you had any suggestion of a music or two from the sega master you would like to hear ? I owe you well that.

Reply 243 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote on 2020-01-19, 02:50:

Hi OPLx, I was searching for a way to listen to .VGM from the ym2612 from the genesis/megadrive. When I heard about rom vgm player, sdcard cartdrige and that the genesis was hardware compatible with the sega master system I could not resist buying one. So now I'm curious about to compare playing a music on the SAA1099 versus the SN76489. I think I will record both version and, since it's mono chip, if the timing fit, do a stereo music with each version on left/right channel. I will start with a text-to-speech saying the name of the chip because there are many stereo reversed setup. I hope you dont see it as an attack against your player fidelity. My motivation is that, thank to your player, we have the opportunity to listen to how chip compares. I intend to record 4 or 5 musics and I was wondering if you had any suggestion of a music or two from the sega master you would like to hear ? I owe you well that.

Hi ElBrunzy,

I don't see it as an attack at all; by all means please do the comparison! I think the SAA1099 getting more exposure couldn't hurt at all. Gunstar Heroes might be a good comparison to try out; there will likely be subtle differences between the noise generators on both chips. If there is a YouTube link, could you please send it to me? I'm curious as well! 😀

Reply 244 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie
OPLx wrote on 2020-01-20, 14:11:

Hi ElBrunzy,

I don't see it as an attack at all; by all means please do the comparison! I think the SAA1099 getting more exposure couldn't hurt at all. Gunstar Heroes might be a good comparison to try out; there will likely be subtle differences between the noise generators on both chips. If there is a YouTube link, could you please send it to me? I'm curious as well! 😀

So I made a first step into this project tonight but I dont think it's that easy to come to an end. Since both synth are mono I wanted to record them mono and make a stereo mix. I used a text2speech at start but left should be PSG and right CMS. I was afraid of youtube "joint-stereo" recompres on lower quality so I wanted to upload an uncompressed file on free hosting service since it's 80mb. Youtube compressor dont work well on not natural music anyway so I was afraid it would add artifacts.

The first thing that striked me is that they are not totally playing at same speed so they de-sync. It's an interesting phenomenon as it allow to compare notes as an echo. It's also quite stunning, my head is still spinning.

The other thing I noticed is that kind of bell hang high pitch note on complex music from Phantasy Star and Ys.

20200131172129.png
Filename
20200131172129.png
File size
3.4 KiB
Views
1209 views
File license
Public domain

https://drive.google.com/file/d/1RHXK5LdNqPSx … NcH1pTecW_/view

Reply 245 of 530, by OPLx

User metadata
Rank Member
Rank
Member

Thanks for sharing the results. I think the de-sync you are hearing is either the Master System VGM player is not 100% accurate. It might be the implementation is not using CPU interrupts and could be polling the CPU (which could introduce the subtle delay). The other possibility is simply that SBVGM is playing back too fast. I did a comparison with the audio in this link: Ys: The Vanished Omens (Master System PSG) - First Step Towards Wars and the audio in that video matched 100% with SBVGM's SAA1099 playback. Unfortunately, there's no information on which player they used to record the audio. The only way to be 100% is to get a recording from the actual game itself (hopefully there is a sound test mode) and compare the results. Are there other VGM players on the Master System that you could try to use?

The bell hang high pitch note you are hearing is likely on the SAA1099. I know that some music uses this "trick" where they can simulate a note off by playing a sound at a higher frequency that can be heard. I'm familiar with that on the NES, but not on the SN76489 (if that was used). The other thing is that it could simply be that the SN76489 has a higher note range than the SAA1099 so what would sound normal on the SN76489 sounds incorrect (at higher frequencies) on the SAA1099. Fascinating results all the same.

Reply 246 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

You are totally correct, in fact this morning I realized I only assumed deadfish shitware's player was the timed one because it run on original hardware, but something in that name did not bring confidence to me 😆 . So I decided I would ran a game, do a recording test and give you the result ASAP. I think you will be glad to know that your player is correct. It lost around 0.05 second over a 38 seconds music, which is unnoticeable unless you are using precise measurements tools. There is another sega master system player that I will test, Maxim's world of stuff VGM Player which would allow for easy recording of the selected .vgm files, and there is chances it have correct timing since it's only targeted at the sega master system and not only support it as a side effect via the genesis. Also this player's interface look so nice I wonder why I did not test it already, I was lazy and use deadfish since it support playlist. Hopefully it will play correctly and it will be easy to redo the PSG recording.

There is a tool that give .vgm file information, you remember, I pasted a GUI screenshot there since I found it fun he put Alex Kidd head as the "header" tab icon? I can fetch you the information about what was used to play the file if you want? Rippers usually write that in the info section.

For the high pitched note, I dont know what to say, both your suppositions are valid. I think when the recording will be in synchro it will be easier to know what it is. I will do some spectrogram screenshot of both music, this kind of synthesizer music is quite interesting to look on such tool and usually give alot of information.

I dont know when I will redo the PSG recording, but certainly shortly since I prepared my gear for that project. I will post new results as soon as I have them, it's a great opportunity to have your collaboration on that study.

Reply 247 of 530, by OPLx

User metadata
Rank Member
Rank
Member

I'm glad you were able to find out the source of the delay! Thinking about it a little bit more, it's also possible that the deadfish player may be waiting on the V-SYNC signal (for updates) which is not exactly 60Hz. The Maxim player seems to be one that would be more accurate given the care to the VGM details that are listed on the page.

I do remember that VGM tool with the Alex Kidd icon. If you don't mind sending me that information, it would be helpful. I don't have the SAA1099 and SN76489 datasheets on hand at the moment, but I think the spectrogram you make will likely reveal the source of why the SA1099 sounds different.

Please take your time in doing the PSG recording; I'm sure you have a lot of other things and priorities going on in life for you. Thank you again for all the wonderful comparisons; it's been a fun adventure! 😀

Reply 248 of 530, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie

Hi OPLx,
Thanks for your software.

I would like to add SBVGM in my Mod Master player. If you don't know it it is a .MOD player for XT computers.
My goal is to have a all in one software from where ye can play various music on XT computers, not only .MOD

I already implement it, we can browse and select the files. Then, it execute SBVGM in DOS shell.
I added a test in the begining saying it is SBVGM by OPLx.

Do you agree that I release it ?
FreddyV

Reply 249 of 530, by OPLx

User metadata
Rank Member
Rank
Member
FreddyV wrote on 2020-02-03, 13:23:
Hi OPLx, Thanks for your software. […]
Show full quote

Hi OPLx,
Thanks for your software.

I would like to add SBVGM in my Mod Master player. If you don't know it it is a .MOD player for XT computers.
My goal is to have a all in one software from where ye can play various music on XT computers, not only .MOD

I already implement it, we can browse and select the files. Then, it execute SBVGM in DOS shell.
I added a test in the begining saying it is SBVGM by OPLx.

Do you agree that I release it ?
FreddyV

Hi FreddyV,

Thank you for asking. Please feel free to release it. All I ask is that it's not part of any package that will get sold. Thank you again!

Reply 251 of 530, by OPLx

User metadata
Rank Member
Rank
Member
FreddyV wrote on 2020-02-04, 23:03:
Hi, […]
Show full quote

Hi,

I don't sell Mod Master and SBVGM will not be integrated in my file.
Here is how it looks like:
https://youtu.be/F4V6ax5b83c

Wow! It looks nice! I wish I kept my Gravis Ultrasound from many years ago. By the way, since SBVGM already displays "by OPLx" when run, you don't have to add in the "SBVGM by OPLx" part if you like. You have a really nice player!

Reply 252 of 530, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie

So I take it as a final approval 😀
Thanks for the release of your player for 8086, it is a simple way for me to demonstrate Games music using my player without needing to start them (If they can run)
Doom OPL3 music under DOS with a 8086, it can be nice.

I took the video under DOSBox, so you can play with it without GUS. It support of course Sound Blaster mixing.

Does anybody have an idea about Small command line music player for DOS / 8086 ? (Like Midi one)

Reply 253 of 530, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
FreddyV wrote on 2020-02-05, 12:19:

Does anybody have an idea about Small command line music player for DOS / 8086 ? (Like Midi one)

DOSMid?
DOSMid - an open-source MIDI player for DOS

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 254 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie
OPLx wrote on 2020-02-02, 22:03:

I'm glad you were able to find out the source of the delay! Thinking about it a little bit more, it's also possible that the deadfish player may be waiting on the V-SYNC signal (for updates) which is not exactly 60Hz. The Maxim player seems to be one that would be more accurate given the care to the VGM details that are listed on the page.

I do remember that VGM tool with the Alex Kidd icon. If you don't mind sending me that information, it would be helpful. I don't have the SAA1099 and SN76489 datasheets on hand at the moment, but I think the spectrogram you make will likely reveal the source of why the SA1099 sounds different.

Please take your time in doing the PSG recording; I'm sure you have a lot of other things and priorities going on in life for you. Thank you again for all the wonderful comparisons; it's been a fun adventure! 😀

Thankfully Maxim player was in time, but maybe not as much as a video game. On the v2 version of the comparison lineup I used his player except for the music : ys first step toward war and miracle warriors castle where I used actual gameplay music.
I also did visual record from the ys first step toward wars recording.

so here is

detail_1_psg.png
Filename
detail_1_psg.png
File size
259.51 KiB
Views
1081 views
File license
Public domain

and here is

detail_1_cms.png
Filename
detail_1_cms.png
File size
257.11 KiB
Views
1081 views
File license
Public domain

it is this detail music :

Filename
detail_1.7z
File size
549.67 KiB
Downloads
58 downloads
File license
Public domain

also here is version 2 of the stereo music : https://drive.google.com/file/d/1qIkGInJsxYKG … iew?usp=sharing

I'll do the .vgm header ripoff info next week, it is just not an weekend activity.

Reply 255 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie
Filename
detail_2.7z
File size
525.2 KiB
Downloads
44 downloads
File license
Public domain

I'm sorry I forgot what was

detail_2_left.png
Filename
detail_2_left.png
File size
237.46 KiB
Views
1077 views
File license
Public domain

and

detail_2_right.png
Filename
detail_2_right.png
File size
247.17 KiB
Views
1077 views
File license
Public domain

...

Reply 256 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I realize the .VGM GD3 dont provide much information about what ripper they used. But they left them name and with the info text file I was able to track them down to the sega retro forum where it appear that kega "log to VGM" seem to be their software of predilection. While I was at it, I did try other emulator that could log VGM (fusion and meka) but they all had that weird bell at around 7khz and 21khz. Hopefully time will bring us some track of solutions, because now I can only draw a blank.

But other than that, I am surprised how close the saa1099 sound to the sn79486, I did not expect them to be so similar. You would not say that just by looking at the pinout.

Reply 257 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote on 2020-02-11, 02:59:

I realize the .VGM GD3 dont provide much information about what ripper they used. But they left them name and with the info text file I was able to track them down to the sega retro forum where it appear that kega "log to VGM" seem to be their software of predilection. While I was at it, I did try other emulator that could log VGM (fusion and meka) but they all had that weird bell at around 7khz and 21khz. Hopefully time will bring us some track of solutions, because now I can only draw a blank.

But other than that, I am surprised how close the saa1099 sound to the sn79486, I did not expect them to be so similar. You would not say that just by looking at the pinout.

Really nice work! The sound of the chips are very similar (at least to my ears). The SAA1099 lacks the "periodic noise" feature that the SN76489 has so once one starts to look at the specific features of each chip the differences become clear. If the SN76489 emulators have the strange bell sound around 7kHz and 21kHz it could be an issue with either the sample playback rate set up on the emulator or the emulation could be incorrect. Again, really nice work!

Reply 258 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

Hi OPLx, I made some more research considering the "bell" bug as I call it now and found that, once again, you where right with that "mute" trick. I wanted to take a problematic music and split it in 4 files with the 3 PSG channel and the noise channel in solo. It was then evident that the high pitched note was how a musician cut a note in a channel. I took the intro lead of the Y's music : First step toward wars, and made another spectrogram zooming in the first 6 notes of the music. You can see a "bell" after the first note and the sixth one:

ys_channel_0.jpg
Filename
ys_channel_0.jpg
File size
122.26 KiB
Views
1008 views
File comment
spectrogram of channel 0 zoom
File license
Public domain

Now we are lucky to have a note cut just at 1.4 second of the music after the first note so I could trim the .vgm around here and make a text dump. It was not very easy to analysis but something grabbed my attention at line 49 of the file about "NotANote" of 0.00hz after the initial B3 first note.

0x0000007a: 50 80    PSG:    Latch/data: Tone ch 0 -> 0x1c0 =   249.69 Hz =  B3  +19
0x0000007c: 50 00 PSG: Data: Tone ch 0 -> 0x000 = 0.00 Hz = notanote
0x0000007e: 50 92 PSG: Latch/data: Volume: ch 0 -> 0x2 = 86%

For now I think I will experiment some vgm optimizer that deal with silent or duplicate removal. I'm also interesting in paying attention of music that use silence without producing a bell effect, I'm compiling a list of music that produce it or not.

Attachments

  • Filename
    ys_channel_0.vgm.zip
    File size
    1.17 KiB
    Downloads
    48 downloads
    File comment
    channel 0 solo vgm format
    File license
    Public domain
  • Filename
    ys_channel_0.mp3
    File size
    39.9 KiB
    Downloads
    53 downloads
    File comment
    channel 0 solo mp3 format
    File license
    Public domain
  • Filename
    ys_channel_0.txt
    File size
    4.07 KiB
    Downloads
    46 downloads
    File comment
    vgm tool text info
    File license
    Public domain

Reply 259 of 530, by OPLx

User metadata
Rank Member
Rank
Member

Pretty nice analysis! I think there are probably a lot of music that used that method. One thing also though is that on the SN76489 setting the note value to 0 causes the hardware to set the square wave output to a high state which some games or demos used this side effect for sample playback on the hardware. It is possible to strip out note 0 from the VGM, but it will likely have to be replaced with a command to set the channel volume to 0xF to silence it ... though this might not really work well if the music continues to update the volume values after it has triggered the "note off" using this method.