Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Wanted: VGM mass tagger

Reply to topic
Author Message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14751
  • Location: London
Reply with quote
Wanted: VGM mass tagger
Post Posted: Mon Jun 01, 2009 7:19 pm
This might be an interesting diversion for someone who wants to help out in a coding way. It would need to support:

1. Specifying multiple files, either through a playlist, multiple file selection, wildcards, or just by being a commandline tool
2. Full Unicode (UCS-2) support for specifying the tags
3. Windows (whose commandline seems quite Unicode-unfriendly)

Does anyone want to give it a go before I give up and do it myself?
  View user's profile Send private message Visit poster's website
  • Joined: 16 May 2002
  • Posts: 1356
  • Location: italy
Reply with quote
Post Posted: Tue Jun 02, 2009 6:14 am
I can provide 1 and 3, but not 2, so I have to pass :(

I even tried to download the UniToolBox for Visual Basic, but apparently there is no way to get it to work properly. My other idea was something php-based, but php supports only utf-8 by default, and not utf-16/ucs-2. Finally, I thought about C#, which would technically allow for all the points, but I don't have a C# environment (not even a compiler) on this machine. Which is a shame, because this is the kind of little tool/utility I like to write :\
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14751
  • Location: London
Reply with quote
Post Posted: Tue Jun 02, 2009 6:42 am
I was thinking Java might be the way to go, personally.
  View user's profile Send private message Visit poster's website
  • Joined: 25 Jul 2007
  • Posts: 732
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Tue Jun 02, 2009 10:16 am
Its an intriguing enough task.. how were you thinking of 'mass-tagging' the files? where does it pull the info from? if its manual entry then is it really any better than a normal utility?
  View user's profile Send private message
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8661
  • Location: Paris, France
Reply with quote
Post Posted: Tue Jun 02, 2009 10:23 am
C# is the way to go.. You can use Visual Studio Express which is free for any purpose.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14751
  • Location: London
Reply with quote
Post Posted: Tue Jun 02, 2009 10:50 am
I thought Java would be more friendly to those people not using Windows.

I want to be able to take a bunch of VGM files, and edit selected fields. Something like

vgmtag *.vgm author="Tokuhiko Uwabo" authorjp="上保徳彦"

or a GUI that would show what's already in there, highlighting which fields were the same for everything. There's various issues with cases like when you want a slightly different credit for one file in the pack.

The reason I want it is because editing 30+ files in VGMTool takes forever. A better pack tagging overview would be helpful. VGMTool can generate 1 line of the standard text file listing (tag + track time info) but it'd be nice to generate the whole pack. But mainly being able to mass-edit one field is what I want.

Windows seems somewhat iffy in its support for Unicode in the commandline, which might make it rather more work than otherwise.
  View user's profile Send private message Visit poster's website
  • Joined: 25 Jul 2007
  • Posts: 732
  • Location: Melbourne, Australia
Reply with quote
Post Posted: Tue Jun 02, 2009 1:10 pm
support is not really much of an issue.. but getting VS to not whinge about every potential non-unicode string on compilation takes effort.
  View user's profile Send private message
  • Joined: 05 Apr 2006
  • Posts: 6
  • Location: Right Here
Reply with quote
Post Posted: Wed Jul 15, 2009 6:23 pm
I'm looking into this right now. It would be a Windows app written in C#. Most of my C# will compile in mono (of course stuff that requires a .dll or .exe will have issues). I'm modeling it after my xSF tagger in VGMToolbox. Check that out if you want an idea of what it may look like. The tagging part seems easy, it's the rebuilding that would suck. That and converting from old to new versions. I'll post more if I get anywhere.

EDIT: I've added an initial version to VGMToolbox. You can find the current revision here. It needs more verification that it maintains the format standards, but the tracks look ok and play ok in in_vgm. Also, any track retagged will be automatically updated to the v1.50 spec. You don't even need to change anything really, just select all the files and click the "Update Tags" button. I'll probably make this a separate function in the future when I'm sure about the format output.

Questions: Maybe someone can explain this for me. In the spec, the version 1.10 additions include YM2612 and YM2151 clock fields. The spec says to use the values for the YM2413 clock in these sections (if upgrading from older versions). I now do this blindly. Can this cause problems? It seems like something could be wrong with it, but I don't really understand the emulation side of this stuff. Do I need to try to parse every command in the file to see which chips are actually used?

To Do:
- I'd like to add drop down lists for systems in En and Jp (if anyone could provide the system list in the spec translated Jp, i'd be very grateful). Hopefully SQLite can store it :|
- Add output compression options (vgm, vgz, vgm7z?). For now, it will gzip the output if the input was gzip'd and vice versa



Any input and Bug Reports are appreciated. Best to get this in good shape.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14751
  • Location: London
Reply with quote
Post Posted: Thu Jul 16, 2009 8:07 am
snakemeat wrote
I'm modeling it after my xSF tagger in VGMToolbox.

Ooh, I never heard of that before.
snakemeat wrote
The tagging part seems easy, it's the rebuilding that would suck. That and converting from old to new versions. I'll post more if I get anywhere.

GD3 has never changed (yet...) and you don't need to upconvert the VGM header.

snakemeat wrote
Questions: Maybe someone can explain this for me. In the spec, the version 1.10 additions include YM2612 and YM2151 clock fields. The spec says to use the values for the YM2413 clock in these sections (if upgrading from older versions). I now do this blindly. Can this cause problems?

At worst, a player will start up chip emulators for them without needing to.
snakemeat wrote
Do I need to try to parse every command in the file to see which chips are actually used?

That's the only way to be sure.

snakemeat wrote
- I'd like to add drop down lists for systems in En and Jp (if anyone could provide the system list in the spec translated Jp, i'd be very grateful). Hopefully SQLite can store it :|

Sega Master System
セガマスターシステム
Sega Game Gear
セガゲームギア
Sega Master System / Game Gear
セガマスターシステム / ゲームギア
Sega Mega Drive / Genesis
セガメガドライブ

As far as I know, the rest don't normally have names in the Japanese character system.

snakemeat wrote
- Add output compression options (vgm, vgz, vgm7z?).

VGM7z is a multi-file packing thing and requires extra files so it might not be so simple.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Apr 2006
  • Posts: 6
  • Location: Right Here
Reply with quote
Post Posted: Thu Jul 16, 2009 1:18 pm
Maxim wrote
GD3 has never changed (yet...) and you don't need to upconvert the VGM header.

You're right, I was overthinking this. I can keep the old header and that will also help me avoid having to parse the file for the building the 2612 and 2151 values needed in upconversions.

Maxim wrote

Sega Master System
セガマスターシステム
Sega Game Gear
セガゲームギア
Sega Master System / Game Gear
セガマスターシステム / ゲームギア
Sega Mega Drive / Genesis
セガメガドライブ

As far as I know, the rest don't normally have names in the Japanese character system.

Thanks!

I'll upload a revised version later. Should be a lot less complex now, thanks again for the help.

EDIT: Uploaded a revised version of VGMToolbox here. I've updated the VGM Tag Editor to no longer upconvert the files. I've also updated my DB to Unicode, allowing for proper storage of the Jp System names. Added some more instructions, primarily a little blurb on how to select multiple files for people unfamiliar with the keyboard shortcuts for doing so. Oh, and you can now refresh the file list by right clicking on it and choosing "Refresh" for both the VGM and xSF tag editors.

As before, any input or bug reports will be very much appeciated.
  View user's profile Send private message Visit poster's website
  • Joined: 05 Apr 2006
  • Posts: 6
  • Location: Right Here
Reply with quote
Post Posted: Sat Jul 18, 2009 4:45 pm
Well, since no one reported any bugs, I've gone and released the latest version of VGMToolbox with the VGM Ripper included. You can grab it, along with the source if you like, from Sourceforge. Checkout the news section if you want info on other new features or improvements included in this release.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14751
  • Location: London
Reply with quote
Post Posted: Sat Jul 18, 2009 5:57 pm
I didn't get a chance to try it yet! It seems to do the job, many thanks.
  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!