VGMPlay / in_vgm
Last update: 2023-12-31 (v0.51.1)
Technical discussion about the VGM format, and all the software you need to handle VGM files.
Moderator: Staff
- Sonic of 8! Offline
- Posts: 419
- Joined: 2011-12-13, 17:31:14
Some Easter Eggs that I found on in_vgm:
* Auto-detect SN76489-type (NCR7496 (Tandy PCs), SN94624 (a TI PC), SN76494 and SEGA PSG (SMS/MD/Pico). But, the Game Gear PSG-type is threat as SEGA PSG);
* Some keywords means future support for the FDS PWM channel, VRC7 and WonderSwan Custom soundchip. However, I belive that emulation of WS Custom is pretty bad on MESS, the only hope to ValleyBell is making a build of in_wsr with VGM logging, because most of WS/WSC games didn't have a Sound Test. The core of in_wsr is much old (2006), compared with OswanJ/Cygne, but is better than MESS one.
* Auto-detect SN76489-type (NCR7496 (Tandy PCs), SN94624 (a TI PC), SN76494 and SEGA PSG (SMS/MD/Pico). But, the Game Gear PSG-type is threat as SEGA PSG);
* Some keywords means future support for the FDS PWM channel, VRC7 and WonderSwan Custom soundchip. However, I belive that emulation of WS Custom is pretty bad on MESS, the only hope to ValleyBell is making a build of in_wsr with VGM logging, because most of WS/WSC games didn't have a Sound Test. The core of in_wsr is much old (2006), compared with OswanJ/Cygne, but is better than MESS one.
オモいカルチャーをオモチャーと言う - 細野晴臣
- RichterEX2 Offline
- Posts: 192
- Joined: 2012-03-30, 9:28:37
- Location: Georgia, USA
The X68K Castlevania test rip plays perfectly now. But has anyone come up with a good method to log X68K vgms with the PCM data intact?
- GTheGuardian Offline
- Posts: 84
- Joined: 2013-02-08, 2:40:33
The only way (for now) to get the X68000 rips with OKIM6258 is to use MESS. But given how slow X68K emulation in MESS is, it would need lots of patience.
On a side note: It seems K054539 channel muting now doesn't works on in_vgm.
On a side note: It seems K054539 channel muting now doesn't works on in_vgm.
Last edited by GTheGuardian on 2013-11-05, 9:30:32, edited 1 time in total.
- ValleyBell Offline
- Posts: 4937
- Joined: 2011-12-01, 20:20:07
- Location: Germany
I know that already - I just can't be bothered to redesign everything. This is not a new issue anyway. MultiPCM has 28 channels. (though the games seem to reserve the last 4 ones for SFX)Sonic of 8! wrote:1- [in_vgm] In the channel muting, the window of SCSP channel muting only shows 24 channels, but the SCSP has 32 channels. So, you need to resize the window
btw: Muting is barely useful for MultiPCM and SCSP, because the games like to use dynamic channel allocation.
According to this video, the NSFPlay is right and MESS is wrong.2ch-H wrote:Using the NSFPlay core pitch of "Balloon Fight/Vs. Balloon Fight - Track 02 Main BGM" is high.
It is normal in Mess core.
It sounds like the sweep effect goes wrong in MESS, but I need to investigate that.
I hope 2ch-H doesn't mind for posting one of his rips, but I worked on an alternative way to make X68k rips. (It's been almost a year since I worked on it the last time, but I plan to work on it again soon.)GTheGuardian wrote:The only way (for now) to get the X68000 rips with OKIM6258 is to use MESS. But given how slow X68K emulation in MESS is, it would need lots of patience.
Fixed with next update. (I promise that this will come sooner.)GTheGuardian wrote:On a side note: It seems K054539 channel muting now doesn't works on in_vgm.
The code for muting channels was lost when I updated the sound generation code. (I did a huge copy-paste from the new MAME source.)
I also fixed muting with the K053260 chip. (It never worked, but nobody noticed/reported it.)
P.S.: link (worked in the previous release already, btw)
I need to say that if you let it play simultaneously with a hardware recording (from YouTube), there's a noticeable desync after only a few seconds. And the tempo is different in every emulator I know.
- ValleyBell Offline
- Posts: 4937
- Joined: 2011-12-01, 20:20:07
- Location: Germany
If you could post a VGM, that would be nice. (Or a link to the pack, but since this is a MegaDrive game and I haven't found it on Project2612, I doubt that a pack exists.)
Anyway, YM2612 channel 3 sounds like that could be the bug with the CSM mode and Timer A I forgot to fix. (The internal timer system of MAME's YM2612 core is broken, since it uses external timers in MAME.)
Anyway, YM2612 channel 3 sounds like that could be the bug with the CSM mode and Timer A I forgot to fix. (The internal timer system of MAME's YM2612 core is broken, since it uses external timers in MAME.)
I looked, it seems to be a mistake of trimming. (or issues of VGMTool 2 Release 5 ?)
Here is the fix vgm.
https://www.dropbox.com/s/ad6guh5rdfcje ... 0Theme.zip
Here is the fix vgm.
https://www.dropbox.com/s/ad6guh5rdfcje ... 0Theme.zip
Last edited by 2ch-H on 2014-01-24, 3:13:44, edited 1 time in total.
- ValleyBell Offline
- Posts: 4937
- Joined: 2011-12-01, 20:20:07
- Location: Germany
It seems I overlooked the game twice when searching for it on P2612. :/
Anyway, I had a closer look at vgm2txts from the original and 2ch-H's fixed VGM.
(Warning: Technical details about the YM2612 following.)
Original: [channel numbers are 0-based]
fixed:
It's actually not a mistake of trimming or VGMTool, but from the emulator itself, because of the way it wrote the save state of the YM2612 to the VGM. (VGMTool luckily never got far enough to sort YM2612 commands.)
If you look at the order of the frequency commands, both VGM have them sorted in different ways. The original one has all "prepare" commands first, then all "set" commands. The fixed one sorts them in groups of frequency commands per channel.
Because the YM2612 has only 1 internal slot for the "prepare/MSB" data of all channels, the "Ch 5 F-Num (prepare)" command overwrites the data for channel 2.
This results in these frequencies:
However this behaviour is unique to the OPN chip family (with most other chips like OPL you can set the 2 bytes of a frequency independently) and isn't emulated in most older YM2612 emulators. (The old VGM sounds fine with the Gens emulator.)
Anyway, I had a closer look at vgm2txts from the original and 2ch-H's fixed VGM.
(Warning: Technical details about the YM2612 following.)
Original: [channel numbers are 0-based]
Code: Select all
0x00000272: 52 A4 02 YM2612: Ch 0 F-Num (prepare) MSB = 2, Octave 0
0x0000027E: 52 A6 13 YM2612: Ch 2 F-Num (prepare) MSB = 3, Octave 2
0x00000281: 53 A6 34 YM2612: Ch 5 F-Num (prepare) MSB = 4, Octave 6
0x00000284: 52 A0 E9 YM2612: Ch 0 F-Num (set) LSB = E9
...
0x00000290: 52 A2 5C YM2612: Ch 2 F-Num (set) LSB = 5C
0x00000293: 53 A2 81 YM2612: Ch 5 F-Num (set) LSB = 81
Code: Select all
0x00000162: 52 A4 0C YM2612: Ch 0 F-Num (prepare) MSB = 4, Octave 1
0x00000165: 52 A0 6C YM2612: Ch 0 F-Num (set) LSB = 6C
0x00000168: 52 A6 13 YM2612: Ch 2 F-Num (prepare) MSB = 3, Octave 2
0x0000016B: 52 A2 5C YM2612: Ch 2 F-Num (set) LSB = 5C
...
0x00000264: 53 A6 34 YM2612: Ch 5 F-Num (prepare) MSB = 4, Octave 6
0x00000267: 53 A2 81 YM2612: Ch 5 F-Num (set) LSB = 81
If you look at the order of the frequency commands, both VGM have them sorted in different ways. The original one has all "prepare" commands first, then all "set" commands. The fixed one sorts them in groups of frequency commands per channel.
Because the YM2612 has only 1 internal slot for the "prepare/MSB" data of all channels, the "Ch 5 F-Num (prepare)" command overwrites the data for channel 2.
This results in these frequencies:
Code: Select all
Ch 0 Ch 2 Ch 5
orig. 34 E9 34 5C 34 81 (as it is)
orig. 02 E9 13 5C 34 81 (as it should be)
fixed 0C 6C 13 5C 34 81
I was examined, VGMTool was working properly.
It seems to change in the output state of the emulator of Kega Fusion.
Sample:
https://www.dropbox.com/s/vq04kyc51mv0abz/bhb.7z
Title a.vgm - Play Title by playing another track
Title b.vgm - Play as it is
It seems to change in the output state of the emulator of Kega Fusion.
Sample:
https://www.dropbox.com/s/vq04kyc51mv0abz/bhb.7z
Title a.vgm - Play Title by playing another track
Title b.vgm - Play as it is
Last edited by 2ch-H on 2014-01-24, 3:14:39, edited 1 time in total.
- RichterEX2 Offline
- Posts: 192
- Joined: 2012-03-30, 9:28:37
- Location: Georgia, USA
Kinda related to in_vgm, but Winamp will be discontinued on December 20th according to Slashdot. The site, and the download links to it will be gone.
http://tech.slashdot.org/story/13/11/20 ... ecember-20
So what happens now?
http://tech.slashdot.org/story/13/11/20 ... ecember-20
So what happens now?
- dissident93 Offline
- Posts: 204
- Joined: 2012-02-17, 5:54:01
- Location: USA
- RichterEX2 Offline
- Posts: 192
- Joined: 2012-03-30, 9:28:37
- Location: Georgia, USA