Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Game Audio Decoder 1.07 released. (Read 71729 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Game Audio Decoder 1.07 released.

The latest version of the Game Audio Decoder is 1.10.

Game audio decoder (foo_game) is an input plugin for Foobar2000, capable of playing AUD, SFX, ISS, WAD, RWD, MUS, IDX, DCT, BIG and SC68 files. The plugin has only been tested against Foobar2000 v0.9.6.

Plugin, Homepage,
Alternate link (if DNS goes down),
Visual C++ 2008 redistributable (needed if you get "application configuration incorrect" or "missing DLL" errors).

Game Audio Decoder 1.07 released.

Reply #1
Game Audio Decoder updated to 1.02:
  • Finished RWD support (format used by Timegate Studios). Now the plugin also supports RWDs.
  • WAD plugin is now an archive plugin (meaning it acts more like a zip than a custom format). The RWD plugin is also an archive plugin.
  • ISS plugin can now play tracks embedded in resources (XARC). XARC is now supported.
  • Fixed bug that caused the playlist to stop when seeking to the end of an AUD.
  • Fixed sc68 regression that caused some music to be skipped at the start.
  • You can now read info from an Sc68 whilst playing another.
  • Subsong support now detects if an excessive number of tracks are being added (unless it's from a WAD or RWD, which no longer use subsong support).
If you are updating from the previous version, you will need to remove your current foo_game songs and re-import them.

plugin homepage, foo_game plugin, source (GPL), manual, screenshot.

Game Audio Decoder 1.07 released.

Reply #2
Nice, you can seek in AUD files with this. That was something I missed in foo_input_aud.

A question tho, IMA ADPCM files are already handled by foo_input_std as the format is pretty much built into Windows. Will this cause any conflict or such?

Game Audio Decoder 1.07 released.

Reply #3
I shouldn't think that there will be a conflict.

Standard IMA ADPCM files (particularly those that contain the WAVEFmt headers, which happens to be all of them) will not be recognised by the Game Audio Decoder, thus it should ignore them. The AUD/ISS plugins work by searching for AUD/ISS-specific signature bytes, and if they're not found, the file will be rejected, and those are the only two plugins that use IMA ADPCM.

That said, if you do find such a conflict, or any other conflict, that Will be a bug, and I'd want to hear about it. You should find it easier to find such conflicts if you enable the option "Ignore file extension" in preferences (I turned off that option by default because some of those plugins will have to read the entire file from beginning to end before it determines that it is not theirs, not nice when you're importing a 10000 song playlist).

Game Audio Decoder 1.07 released.

Reply #4
You should keep the links in your initial post up to date by editing it, rather than posting new links every time. I have taken the liberty of editing them up to the latest versions as of this post.

Hmm, does that sc68 library even support clean multi-instance? If it is a .dll, you can use this class I wrote for the purpose of loading a unique instance of a given DLL for each request, by copying the DLL to a temporary file. It's a bit dodgy, but will ensure unique memory space per each instance. Only use it if you're sure the sc68 library doesn't support some instance mechanism, like handles or something. ( Bah, emulator authors are notorious for stupid things like this. Oh, and not understanding how to write an accurate emulator without making it horribly inefficient. Cycle accuracy should not need to be 'run this part for one cycle, then run this part for one cycle, repeat'. But that's a story for another topic, unless you're interested. )

Also, I wonder why it is you were using MSLU when utf8api.dll provides wrappers for most of the functions you should need. I am guessing you already discovered this, and are using IsUnicode() appropriately. Or something.

Off-topic, your DirectMusic MIDI input is a hack, but then, I guess that is why you haven't posted about it here. I should note that my MIDI plug-in supports all of those formats, and then some. The only requirement is that you somehow acquire Yamaha's S-YXG50 VSTi, or Edirol's HyperCanvas VSTi. ( I have compiled DXi support out of my latest beta version, since the DXi2 SDK's own host application sample is too buggy, and depends on MFC. )

Game Audio Decoder 1.07 released.

Reply #5
1.03 released. Changes mostly centre around Sc68.
  • Switched to Chris Moeller's DLL manager to handle Sc68's threading problems
  • Updated Sc68 to the latest CVS and enabled its _DEBUG routines. Should fix the bulk of sc68 related crashes.
  • Improvements to seeking (esp. for Sc68, AUD, SFX and ISS).
  • RWD is now enabled by default.
  • Other bug fixes...

Game Audio Decoder 1.07 released.

Reply #6
The big change for 1.04 was the introduction of the EA ADPCM decoder. Only preliminary support has been added so far. Little error checking is done for that input, hence some EA music tracks can crash the decoder, especially if it's a newer audio track (2002+). By default, that input is disabled.

With the release of 1.05, foo_game was rewritten to use the 0.9 SDK, and therefore now requires Foobar2000 0.9 to run.

Game Audio Decoder 1.07 released.

Reply #7
Thanks for the update.

However, I can't get sc68 support to work. Actually I can't even enable it in the config, it just gives me an 'Sc68 is not properly installed or was not found' error. I do actually have the sc68 package installed with correct registry entries and everything.

Here's the console output with debug logging enabled:
Code: [Select]
(foo_game DBGMSG) Checking for existence of Sc68 install.
(foo_game DBGMSG) A required DLL was not found. The file will not be parsed.
(foo_game DBGMSG) Sc68 not found!
(foo_game DBGMSG) free(0)


Do I need anything more than sc68 and what's included with foo_game?

Edit: Come to think of it, the plugin is supposed to work with the official sc68 package isn't it? I'm asking because the error message tells me to get the package from your site... and I can't find one there.

Game Audio Decoder 1.07 released.

Reply #8
Due to an oversight in foo_game, sc68 support refuses to work in most machines. This bug will be addressed in the next version of foo_game. Starting with 1.03, most of the sc68 code is now packaged within sc68.dll itself, to the point where foo_game can play back sc68 independent of the official package.

In the meantime, I have updated the product page with a new sc68 dll (with source code) which should work in most cases.

Game Audio Decoder 1.07 released.

Reply #9
Thanks, that worked nicely.

Game Audio Decoder 1.07 released.

Reply #10
1.06 is mostly a quick fix release (fixing the sc68 DLL bug). However, it does add support for the IDX/DAT format used by Rome Total War.

Game Audio Decoder 1.07 released.

Reply #11
Any plans to add support for SNDH files? I think the sc68 libraries are supposed to play those as of version 2.1.0.

Game Audio Decoder 1.07 released.

Reply #12
Doesn't Rome Total War use MP3's in a container file(s) though?  I remember extracting MP3's by using Nova Extractor's scan function...

Game Audio Decoder 1.07 released.

Reply #13
Game audio decoder 1.05 and 1.06 have a serious bug which could crash Foobar2000 if you add a corrupted track to the playlist. If you downloaded these versions, please, download the updated 1.07.

Doesn't Rome Total War use MP3's in a container file(s) though?  I remember extracting MP3's by using Nova Extractor's scan function...


foo_game allows you to play those game formats in Foobar2000 without having to perform an extraction (or conversion) step.

Any plans to add support for SNDH files? I think the sc68 libraries are supposed to play those as of version 2.1.0.


Do you have any sample SNDH files so I can see what they look like?

Game Audio Decoder 1.07 released.

Reply #14
http://sndh.atari.org
That place has tons of SNDH files as well as fileformat specs.


Game Audio Decoder 1.07 released.

Reply #16
Heh, that's funny. It works even without changing extension.
Must have been something you did quite recently as I'm pretty sure I already tried that not too long ago.

Thanks, and sorry for wasting your time...

Game Audio Decoder 1.07 released.

Reply #17
Heh, that's funny. It works even without changing extension.
Must have been something you did quite recently as I'm pretty sure I already tried that not too long ago.

Thanks, and sorry for wasting your time...


Could be this (from the 1.07 changelogs):

-The patched SC68 from XSC has been merged into the foo_game source tree.

You'll see some extra debug messages, like "Checking for alternate ICE! header", which weren't there before. If you get this message, it's a strong indication that it was the patched SC68 lib that did it.

Game Audio Decoder 1.07 released.

Reply #18
Yup, I do indeed get that message.

Game Audio Decoder 1.07 released.

Reply #19
oshah, would you be interested in implementing into your plugin a support for playing (Octa)MED modules? They were used in quite a lot of Amiga games, I'd say that it's a 2nd popular amiga-tracker format after ProTracker's MODs. I was begging other devs to write a plugin for it, but no interest. There's SDK available, so no need for any reverse-engineering.

Game Audio Decoder 1.07 released.

Reply #20
Since I can't find a game with OctaMED files, and due to possible licencing issues, I doubt I will add support into Game audio decoder.

However, I will look into creating a completely new input plugin, dedicated for this purpose. That is, if no one else is doing the same thing.

Game Audio Decoder 1.07 released.

Reply #21
The ones that come to my mind at the moment, are Amiga versions of Hired Guns, and Lemmings 2 Tribes, let me know if you need more examples and I'll find them. I have a bunch of OctaMED files, so if you need some just let me know. I'm quite sure that no one else is developing plugin for it. I would really appreciate it!

Game Audio Decoder 1.07 released.

Reply #22
There are no notable changes for foo_game 1.08. The new functionality planned for 1.08 split off from foo_game to become its own new plugin, foo_m1.

Game Audio Decoder 1.07 released.

Reply #23
oshah, so do you have any plans regarding OctaMED support?

Game Audio Decoder 1.07 released.

Reply #24
oshah, so do you have any plans regarding OctaMED support?


Rutra80, I forgot to tell you, I gave up on this plugin a couple of weeks ago. Sorry, but it doesn't look like I'm qualified to take this on. 
The first shot I had at creating an octamed plugin led to a plugin that couldn't even start. It looks like loads of work is needed to make OctaMED work in a foobar2000/VC++2005 environment.
The Octamed SDK is completely useless--it uses its own playback engine to playback MED files (how awfully nice of them </sarcasm>), which is great for programmers that don't know the difference between a WAV and PCM, but absolutely useless for Foobar2000, which needs to access the output audio.
If anyone wants to pick up where I left off, I will be more than glad to send my present sources to them.