Hello,
I'm trying to play VGM files on an Atari ST, but I encounter some problems I hoped you guys could help me out with...
I have successfully generated a VGM from Furnace and replayed it correctly (besides the stop/loop thing that I didn't test yet), but when I try to play files downloaded off the web I seem to be missing the replay rate info. The VGM specification page says the rate is located @0x24 but in the files I checked, one has 0x3C (60 Hz), but the rest has just zeros (which is when the replay rate might change during the track?). There's a specific file I'm trying to play that has 0x62 instructions in it, which makes me guess the replay rate should be 60Hz, but when playing it at 50Hz it is an awful lot slower (I'm guessing between 2 and 3 times slower) than when played on Winamp. My 50Hz file plays at the correct speed so it's not my replay routine that slows everything down. Any idea how to find the adequate replay rate when the file says 0 @ 0x24?
Thanks in advance for any help!
EDIT: I think it's my replay routine actually, will keep you updated!
Playing Furnace VGM on Atari ST
Technical discussion about the VGM format, and all the software you need to handle VGM files.
Moderator: Staff
Re: Playing Furnace VGM on Atari ST
Replay working fine now, just too high pitched because of the clock discrepancy between original clock and ST clock! I will have to check the differences between the AY and YM and do something to replay as accurately as possible. I can hear some tiny glitches too, I will have to investigate that as well.
- ValleyBell Offline
- Posts: 4898
- Joined: 2011-12-01, 20:20:07
- Location: Germany
Re: Playing Furnace VGM on Atari ST
The "rate" header field can indicate the Hz that the console ran at when recording the VGM.
It is recommended to set it to 50/60 when the respective song changes its speed between PAL and NTSC. This allows the user to specify a preferred speed (50/60 Hz) in the VGM player.
It should be set to 0 when a song plays at its original speed in both regions.
Regardless of the "rate" field, the VGM can contain 60 Hz (command 0x62) and 50 Hz (command 0x63) wait commands. My VGM optimization tools use those commands as "shortcuts" for 735 and 882 sample waits.
It is recommended to set it to 50/60 when the respective song changes its speed between PAL and NTSC. This allows the user to specify a preferred speed (50/60 Hz) in the VGM player.
It should be set to 0 when a song plays at its original speed in both regions.
Regardless of the "rate" field, the VGM can contain 60 Hz (command 0x62) and 50 Hz (command 0x63) wait commands. My VGM optimization tools use those commands as "shortcuts" for 735 and 882 sample waits.
Re: Playing Furnace VGM on Atari ST
Thx!
So if the rate set to 0, the tune should play at 50Hz in Europe and 60Hz in the USA? Did I get it right? But in this case how does a PC player choose what rate to use? By having a peek to see if the file contains 62 or 63 instructions?
So if the rate set to 0, the tune should play at 50Hz in Europe and 60Hz in the USA? Did I get it right? But in this case how does a PC player choose what rate to use? By having a peek to see if the file contains 62 or 63 instructions?
- ValleyBell Offline
- Posts: 4898
- Joined: 2011-12-01, 20:20:07
- Location: Germany
Re: Playing Furnace VGM on Atari ST
If the rate is set to 0, the tune will play at its original speed in any case.
If the rate is set to 50, then the tune will play faster when the user sets the "play songs at 60 Hz" option in the VGM player on the PC.
(rate = 60 and user sets "play at 50 Hz" -> play song slower)
The VGM player will not look inside the actual VGM data. The decision is entirely based on the "rate" value from the VGM header and the "preferred Hz" option in the VGM player.
The combination of the VGM "rate" header value and a user setting just modifies the song's overall playback speed and it affects all "wait" instructions, not just 62/63. (else it won't work with any VGM that uses YM2612 PCM samples)
If the rate is set to 50, then the tune will play faster when the user sets the "play songs at 60 Hz" option in the VGM player on the PC.
(rate = 60 and user sets "play at 50 Hz" -> play song slower)
The VGM player will not look inside the actual VGM data. The decision is entirely based on the "rate" value from the VGM header and the "preferred Hz" option in the VGM player.
The combination of the VGM "rate" header value and a user setting just modifies the song's overall playback speed and it affects all "wait" instructions, not just 62/63. (else it won't work with any VGM that uses YM2612 PCM samples)
Re: Playing Furnace VGM on Atari ST
Ok, so it only relies on the wait instructions for the speed? And every instruction that happens between two wait instructions are supposed to happen at the same time? Did I get it right?
- ValleyBell Offline
- Posts: 4898
- Joined: 2011-12-01, 20:20:07
- Location: Germany
Re: Playing Furnace VGM on Atari ST
Yes, that's right.