vgm2smps

Discussion in 'Utilities' started by Ivan YO, Jan 27, 2019.

  1. Ivan YO

    Ivan YO Well-Known Member Member

    Joined:
    Jan 23, 2012
    Messages:
    63
    Hello everyone. I'm back with my new tool and I want to share it with you. :)

    vgm2smps -- it's a tool that converts VGM files (with YM2612 and/or SN76489 of course) to SMPS (Sonic 1) that was made to help you port music from other games or from your own VGMs. (Instructions and flags in the start message)

    Features:
    • Easy for use.
    • DAC sequence detecting (only for optimized VGMs with data banks as Defle Mask or SMPSPlay exports).
    • DAC samples export.
    • Ability to choose exported channels and song start offset and its length.
    • Ability to set parsing speed in FPS.
    • Alternate "smart" instrument detecting mode. If final note's frequency is lower, than SMPS supports, all notes transposes in octave up, but instrument's multiply transpose down (make instrument lower). (Useful for some TAoBR songs)

    Warning!
    Convertions may not be perfect. Also, the tool does not optimize patterns and does not find modulations, and therefore the output file size can be large and can go beyond 64 KB (max).
    But, you can select your song start offset, length, filter channels, optimize them by SMPS Optimizer and merge channels (for example).

    Known bugs:
    • Sometimes (but rarely) notes may be wrong (frequencies).
    • Sometimes notes are wrong if -altins is used.
    • Sometimes (but rarely) notes length may be detected wrong.
    ...which I may be fix in the future...

    Thanks:
    • ValleyBell for VGM tools and specifications.
    • Delek for Defle Mask with easy VGM creation.

    Download:
    Binaries: Windows, Linux
    Source: GitHub
     
    Last edited: Jan 27, 2019
  2. PoloBlue

    PoloBlue Newcomer Trialist

    Joined:
    Jan 18, 2019
    Messages:
    7
    I used to do a lot of stuff with DefleMask before getting my feet wet with Sonic hacking. Can't wait to hear what it could sound like in-game!
     
  3. EMK-20218

    EMK-20218 Eduardo Knuckles Member

    Joined:
    Aug 8, 2008
    Messages:
    997
    Location:
    Acapulco, Guarujá
    Did I ever say I love you for this? You're definitely a genius, man. Seriously... I'm always fan of your work with SMPS, but you and valleybell never stop surprising me. Games I thought it was impossible to port will now be fully (or at least almost) fully possible. Thank you very much!
     
    KCEXE likes this.
  4. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    778
    Location:
    Portland, Maine
    This sounds like it could be really awesome to use, though it isn't working for me. A black screen pops up and then disappears on my Windows 10 64-bit laptop. I made sure to keep zlib1.dll in the folder its in. Is there anything I might be doing wrong?
     
  5. GenesisDoes

    GenesisDoes Well-Known Member Member

    Joined:
    Jan 2, 2016
    Messages:
    128
    Location:
    Pittsburgh, PA
    (It's a command-line program, so make sure to run it from the Command Prompt.)

    This tool will be great for helping to port songs from difficult sound drivers (and even sfx to an extent.) And for what few minor issues it has, there is always SMPS2ASM disassembling for fine tuning.)

    May I request a feature for a future update? A command line switch to read a file with IDs for DAC remapping, similar to the same functionality within MID2SMPS. This way the unique DAC samples in a VGM file can be mapped to standard S1 ones. A minor feature, but I feel it would be important for fine-tuning
     
    ProjectFM and KCEXE like this.
  6. EMK-20218

    EMK-20218 Eduardo Knuckles Member

    Joined:
    Aug 8, 2008
    Messages:
    997
    Location:
    Acapulco, Guarujá
    I forgot to ask in my previous post...

    Is there any preview of when (or if) will be possible to import the DAC sequences along with the song?
     
  7. BurningFlame

    BurningFlame Golden Ringsperience Requiem Member

    Joined:
    Jan 1, 2017
    Messages:
    37
    Location:
    Vodkaland
    Really impressive stuff there, Ivan. Really helpful for porting songs without driver porting or other stuff like that.
     
  8. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    778
    Location:
    Portland, Maine
    That's what I thought at first, but the lack of instructions and
    made it seem like it would be visual.

    I guess its just the standard format of "vgm2smps input.vgz output.bin" then, right? I'll have to try it when I get home. I definitely recommend mentioning that for those less familiar with command-line programs.
     
    EMK-20218 likes this.
  9. Ivan YO

    Ivan YO Well-Known Member Member

    Joined:
    Jan 23, 2012
    Messages:
    63
    > Did I ever say I love you for this? You're definitely a genius, man. Seriously... I'm always fan of your work with SMPS, but you and valleybell never stop surprising me. Games I thought it was impossible to port will now be fully (or at least almost) fully possible. Thank you very much!

    Thanks, very pleased to hear! Enjoy.

    > Games I thought it was impossible to port will now be fully (or at least almost) fully possible. Thank you very much!

    Yes, this is one of the purposes of creating vgm2smps...

    > (It's a command-line program, so make sure to run it from the Command Prompt.)
    +++
    The program does not pause.
    For see message you need to run this as Win+R -> cmd *vgm2smps path*

    > May I request a feature for a future update? A command line switch to read a file with IDs for DAC remapping, similar to the same functionality within MID2SMPS. This way the unique DAC samples in a VGM file can be mapped to standard S1 ones. A minor feature, but I feel it would be important for fine-tuning


    Yes! It's absolutely possible. I guess I'll do that in next update.

    > I forgot to ask in my previous post...
    Is there any preview of when (or if) will be possible to import the DAC sequences along with the song?


    No. You can only insert your DAC sequence by hand with SMPS2ASM.

    > I guess its just the standard format of "vgm2smps input.vgz output.bin" then, right?
    Yes. With default settings of course.

    > Really impressive stuff there, Ivan. Really helpful for porting songs without driver porting or other stuff like that.

    Thanks :) Enjoy using.

    > made it seem like it would be visual.

    May be if I create GUI frontend for this...
     
    Last edited: Jan 28, 2019
    ProjectFM and EMK-20218 like this.
  10. Dj. Joker 27

    Dj. Joker 27 Known as "Mr. Joker 27" Member

    Joined:
    Aug 26, 2016
    Messages:
    54
    I'm glad to see finally this tool, I will test it, congratulations.
     
    Last edited: Jan 28, 2019
  11. A-S-H

    A-S-H Moderator and Host of the SMPS Competition Member

    Joined:
    Jun 5, 2015
    Messages:
    415
    Location:
    Music Plant Zone
    I'm not sure whether I like the implications of this tool. Yes, you can port songs from games easier, but it comes at the cost of having a safe and compact way to share SMPS songs without giving them away to any old ROM hacker that comes across it. The tool also makes mince meat out of the privacy rule in the SMPS Competition, seeing as anyone can now take the public VGM and use the tool to get the source. Granted, I haven't tried using it yet so I have no idea how effective it is.
     
    kenny0989, Ozaleto, Renegade and 6 others like this.
  12. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    778
    Location:
    Portland, Maine
    I tried this out for a bit, and I am astounded by this. The ports that this tool can create are pretty much perfect sounding. It can greatly improve the soundtracks of new Sonic hacks and inspire people to delve into all the amazing music the Genesis has to offer. Now anyone who has a good idea of what music can fit their purposes can easily find it and using, and it will sound great. I also understand that this will discourage SMPS porting, but those who still do it will have the advantage of the larger library and those who don't will still be able to have great music without having someone else do it for them.

    On issue I've found is that some songs have their PSG delayed because the initial rest period is greater than it's supposed to be. Space Walk from Thunder Force IV is an example of one of them. Fortunately I've been able to fix this with some simple trial-and-error editing with smps2asm. The large file sizes will probably be an issue for someone trying to create a large soundtrack of vgm conversions, especially if that person is using a Z80 sound driver, so that's something for people to keep in mind.

    Great work, @Ivan YO, and I'm really excited to see how this possibly-revolutionary tool is used.

    This only works with Genesis and Master System games, and I assume people would rather port music from other systems. If a Genesis game is chosen, then you can add a rule against using this tool.
     
  13. AkumaYin

    AkumaYin Recluse Member

    Joined:
    Aug 21, 2014
    Messages:
    127
    Location:
    Annapolis, MD
    What he means to say is that this will now discourage others from sharing their SMPS works in the form of VGM files, as they can now be ported to SMPS almost flawlessly and used any way one pleases with fewer hoops necessary to jump through than before. Of course there are regulations here and other places in regards to stolen content, but the issue exists regardless. Despite having not publicly shared (or finished, for that matter) any covers in a long time, I'm now having serious second thoughts about distributing VGM files of any covers or compositions I make in the future. Which is a shame, since I love to collect VGM files of other people's covers, and I'm sure there are others who feel the same way.
     
    Ozaleto, jubbalub, A-S-H and 3 others like this.
  14. ProjectFM

    ProjectFM Optimistic and self-dependent Member

    Joined:
    Oct 4, 2014
    Messages:
    778
    Location:
    Portland, Maine
    Oh. I'm very good at misunderstanding things. You can still distribute files using MP3 or Soundcloud, in that case. I've never really seen the purpose in using VGM files for that purpose unless you want others to get a very authentic version or prove that it works on hardware, but I can see how people would want to build libraries of them. Overall, it's a minor issue compared to what the program allows.

    It's too bad that there isn't a way to lock a VGM out of being converted. I tried converting a couple of Savaged Regime's Mega Man X conversions and they ended up having the FM voices play extremely low, I guess he unknowingly was able to prevent that possibility.
     
    A-S-H likes this.
  15. Natsumi

    Natsumi Phoenix egg Member

    Joined:
    Oct 7, 2011
    Messages:
    681
    Location:
    Long and dangerous river
    I kinda agree with the stolen content argument but here is the deal; its the same thing as ROM hacking tools or disassemblers. Sure you could just use IDA to disassemble someone elses hack, but more likely you are not gonna get too great results without actually knowing what you're doing and its gonna be really blatant when your new ROM hack is full of crap you stole poorly. We already have tons of tools that basically allow you just be a cuntass and we have tons of experience exiling people who do. This kind of tools is gonna make inaccurate, large and very unoptimal SMPS files and as long as it does, its very easy to tell, leaving little confusion over whether it was legimate port or not.

    Sure it can allow porting from other games but I do not expect the result to be good if its not an SMPS game for huge variety of reasons. Since it does not seem to support that many flags (like does this even support LFO of SSG-EG?) I also expect you must still do manual research to fix up ports and good luck with any driver-specific effects. I know GEMS and Westone drivers are out of the question. How I see this tool realistically being used is to do lazy ports of SMPS music, or used with things like Deflemask. It'd be quite an interesting workflow.
     
  16. Ivan YO

    Ivan YO Well-Known Member Member

    Joined:
    Jan 23, 2012
    Messages:
    63
    I'm glad to see that you have some good principles, but the person who will steal other people's smps will still not be approved by the community and it is not in his interest, right?

    Same.
    I also love collect vgms, so please share it.

    I remind that the main goal of this program is to facilitate the porting of music from other games or the conversion of your VGMs. But not rip content from hacks or your created VGMs without permission. everyone uses as he wants.
     
  17. EMK-20218

    EMK-20218 Eduardo Knuckles Member

    Joined:
    Aug 8, 2008
    Messages:
    997
    Location:
    Acapulco, Guarujá
    Taking into account the risk of being discovered and exiled or banned depending on the way these SMPS are taken. I'm pretty much sure someone will try to use this tool to steal music, but it seems it will fail drastically especially after someone notices the clear differences between the own made SMPS and the SMPS converted with this tool.
     
    Ivan YO likes this.
  18. Lone Devil

    Lone Devil What's next? Member

    Joined:
    Dec 29, 2010
    Messages:
    151
    Location:
    Texas
    Shouldn't the best way of sharing vgms be as .mp3 or .wav files now?
     
  19. Natsumi

    Natsumi Phoenix egg Member

    Joined:
    Oct 7, 2011
    Messages:
    681
    Location:
    Long and dangerous river
    Yes because the way I like it is the best one
     
  20. A-S-H

    A-S-H Moderator and Host of the SMPS Competition Member

    Joined:
    Jun 5, 2015
    Messages:
    415
    Location:
    Music Plant Zone
    VGMs are popular sharing files because they are tiny and have a ton more features than plain MP3 recordings. For reference, the largest VGM I have in my collection on my phone clocks in at ~200kB and I can play the song on a perfect infinite loop, no fade out. MP3s are just lossy recordings of them, 3-10MBs per track depending on quality. And don't even get me started on WAVs, they're 20x the size for the same audio as a FLAC, which are all still recordings of the VGM file.

    And yes Ivan, I see what you're getting at, but saying that is like blaming a spoiled child for being a dysfunctional human being; sure the child is most definitely at fault for being an entitled prick, but the parents are ultimately responsible for raising them to act this way. They could have been the nicest people with the best intentions, but it doesn't stop the snowball from rolling.

    I know that you didn't make this tool to give people access to community members' private tunes, but whether you like it or not, this tool will open the floodgates to these sorts of problems.
     
    ProjectFM, Ivan YO and AkumaYin like this.