Weird... maybe there are too many extensions... I'll see if I can reproduce it at home.
Also, I'm planning to rewrite in_cube in object oriented C++, since it lends itself to that and I'll be able to clean up the code a lot (right now it's just horrible). I'll try to use the cstdio input functions, so at least the core will be easy to port (I intend to port it over to XMMS at some point). I may get started on that tonight.
Thanks for the updates, HCS. The looped ADXs are working perfectly in in_cube, now. I'll try and get the SEGA GT 2002 music on the tracker sometime this week. Until then, I've updated the entry in the DB.
Two things: 1) I had messed up in the file extension string, it wasn't terminated, this may have been what was causing the crashes with MP3s. 2) I'm now looking at another location in the AST header for the loop flag, with the three MK:DD ASTs (two looped, one not) I have this seems to work consistently.
Hey, HCS. Not to be a nag, but have you been able to find anything about that VAS file I sent you a while back?
Excellent. by SquareTex at 7:59 PM EST on January 25, 2006
No problem with MP3s, and the Mario Kart clip sounds fine to me.
Thanks!
DDR Mario Mix by PokeParadox at 2:35 AM EST on January 26, 2006
http://www.zophar.net/utilities/download/ReVOLUX.zip <-- I rediscovered this util. It was released originally to extract music from the PSX DDR games. I tried running the mario mix music file through it, and as I was expecting, it didn't really work, although it did seem to detect a likely number of files within the file.
I know it's a longshot, but maybe the format is some sort of VAG/DSP hybrid?
Umm... I would say, it is more likely that the DDR games all use a similar filesystem. If Konami used a similar naming method for all he games, that tool might have found the files, but was unable to extract them, because the actual file signature didn't match.
You're are thinking along similar lines. My hunch was that it was similar to the PSX games. When I tried this, it did extract something, but it was more or less just the headers for the files and not the file content. I.E. about 2-6kB of data. I will investigate into this myself at some point, but I thought it might be a good idea to let others into my hunch.
Yo. I did some work with AFC last night (having finished up "C++ for C Programmers" to refamiliarize myself with OOP). It seems to be a 4-bit ADPCM with 9 byte frames, the frame for the right channel immediately following the frame for the left channel. I have implemented VERY BROKEN support for it in 0.18 beta 4, including looping. Tested with the streams from Wind Waker. Note again that the support is VERY BROKEN, it sounds like listening through a very poorly tuned radio, which is also broken. I'm putting this up, along with the source, in the hope that someone with more ADPCM experience than me (which would be pretty much anyone with any experience at all...) can get it into working shape. Here's a sample stream from WW.
Also, I noticed that ADP/DTK/TRK is essentially XA when I was looking through kode's ADPCM player.
Great progress, hcs! :) Can't believe that Nintendo used such low quality samples to record the Wind Waker tracks. I always thought they were sequenced...
Just noticed that all of the environment tracks are sequenced (for example "Winfall Island" or "Forsaken Fortress"). Cutscene music seems to be streamed, though - maybe to provide low CPU usage to process the graphics?
It is also the music used in autodemoA.thp, the movie that plays if don't press any buttons at the start screen for a while. Just without sound effects and a short intro.
yeap even though the formats are related to game cube they share the adx encoded types from sega which made me discover your guys insane great and hard work on this dll so far, I just wanted to let you guys know that youre in_cube.dll works great on the xbox thanks for the great job you guys have done :) have an awesome day! do you guys ever come in contact with EA's BIG file formats? or basically gamecube games stick with the dsp mainly besides like adx etc.. which I might add plays xbox adx acceptionally well also. tested on the xbox ADX ADP AST DSP DSPSTM HPS YMF AFC, well thats all the samples i could find so far mainly from the torrents and the rapidsharelinks :) got some strange stop&start ever 2 seconds from HPS but it plays fine in winamp so probably our falt and the AST's are starting to get there i see just with some strange reverb like that Zelda Wind Waker sample but basically its 1:1 compaired from winamp:xbox which is great just have to work on seeking during playback and streaming the files over the network works well after incressing the buffer chunks.
Glad to hear it mostly works on xbox, I don't have so much as an unmodded xbox so I've never tried it out. The ADX support is no surprise, it's been a pretty standard format for a while, though there are two variants which in_cube supports fine, and a third which is yet a mystery. If you notice anything in HPS that seems to be something I'm doing wrong let me know. AST should be fine, if it plays at all, I think you meant AFC has the issues.
I have an unpacker for the BIG and FAT files in Prince of Persia: The Two Thrones, bigfat, would that help?
I'm looking at a game called Charinko Hero, it uses files that are DSP encoded called .ITL. The odd thing is that they are clearly interleaved by 0x23c0, but the two channels don't match up (one seems to be played at twice the tempo as the other). That and the looping doesn't match up. It looks like it'll take a bit of fiddling to figure out just what it's trying to do.
Doh, I figured it out... The files are named: i000_0.itl i000_1.itl i001_0.itl i001_1.itl etc.
i000_0.itl and i000_1.itl are seperate files, each stereo in its own right. in_cube was trying to open them both as dual-file stereo. There will have to be some renaming or an exception in the dual-file stereo checker. Looping still isn't right, though.
yes sorry AFC not AST as you said :) we fix the problem it was indeed our implimentation not your code with HPS any modifications we do to it can be found @ CVS Tree or direct download: Download which is not much cause we normally really just port stuff over creation of codecs is not our strong point :( but if there is any thing we notice I will surely tell you no problem, theres a small hicup now with ADX which again is more then likely us cuz the codec is pretty solid :) and thanks for the note on bigfat ill try that out! PS: sorry for the email name typo :P
Hey, did you know that if you rename the rsfs from Metroid Prime to AFC, that they play.... erm... well something which almost sounds like music. :)
Decoding AFC peoperly... hmmm don't think I can be much use there yet...
EDIT: Btw... I know tags were discussed before, and the answer was basically: "No because it would change the format of the files forcing tags onto them." Well I have an idea... keep the tag in an external txt file(ot files). What do you think?
The external tags wouldn't be a bad idea. I am still trying to figure out what I am listening to when I play the Star Fox Assault DSPs. :) Tags are a very important part of any music format, so I think that we should in some way try to support them.
[10:22:47] <spiff> u can tell him that his demuxer's are crazy on the latency requirement :) [10:23:08] <spiff> and that he can easily retain the current line of thought but still read in bigger chunks
I'm considering a caching mechanism for the next version, when I'll completely rewrite it in clean, object oriented C++. It's much easier to only deal with a single sample or frame at a time, and right now just about the whole thing is only in an experimental state to get it working.
I recently downloaded Phantasy Star Online 4 (PC and online only, so I won't be keeping it around, since I don't have an account to play it on), and went looking for the music files. They're OGGs! Of course, seeing that made me wonder where, or how, they store the loop data for looping files. Not having much knowledge in that area, I didn't really go looking for the loop data because I had no idea where to start... But, while listening to the OGGs, I pushed ALT+3 in Winamp (I opened the file info box), and lo and behold! There was the loop data, stored in the "comments" field of the OGG tags! So, now all we need is an OGG player that reads the metadata tags, and uses the loop data to loop the file properly. Because you're considering rewriting in_cube anyway, perhaps you could add OGG (looping) support into it? Just rename the OGGs to something like OGGL (loop). That would be nice...
Or, give it a complete makeover, and add tag data to the files (using external tags, as has been mentioned before).
marioman and PokeParadox both said, basically: Add tags via external files
Actually that idea has been discussed somewhat in the IRC chat a few months ago. It would work similar to the way MINIxSF and xSFLIB pairs/sets work. One file contains the metadata (tags), and creates a call to the other file (the streamed one) which acts as the LIB file. The really AWESOME thing about this idea is that it would work for ANY streamed format in existence (so long as support for that format were added to the player) because the original files don't need to be altered in any way, whatsoever. You wouldn't even have to rename the files because the files would be called by filename from the MINIxSF files.
For those who are members of the PSF_Rippers Yahoo group, HCS proposed an idea there some month(s) ago. Due to a misunderstanding on my part, I proposed the xSFLIB idea to HCS (thinking that's what he had proposed). So far, eveyone that has commented on the idea thinks it's a great idea. However, due to time constraints (among other things) no one has implemented such an idea (that I'm aware of, anyway).
HCS has been asked to add other formats (PSX XA audio, for ex.) into in_cube, but he hasn't done so because in_cube is generally a GC audio player. Also he has said that XA support might be added, if the STreamed PSF idea was to be implemented (since files w/o tags leave a little to be desired by some people).
Basically, I just wanted to point out that the idea has been tossed around some, but no one (that I know of) can get the idea off the ground, at this time. If anyone here can get it going, please feel free to hlep where possible (I know that I'd be happy to time/tag sets if possible. One major problem though is finding loop points in streaming files. They're usually quite hard to locate. About the only idea that I have is to basically record the audio data into WAV, and then have a program that does comparison on the file itself, and when it finds a spot that's the same as something earlier, it desginates that as a possible loop point. Hopefully that made sense).
Anyway, sorry for the long post. Basically, I just wanted to know the feasabilty of adding OGG looping support for a future version of the player (since I now have OGGs that contain looping data). Thanks in advance for your time. Mouser X over and out.
Mouser X, I hope you do realized that in PSOBB/4 those stage/field music has muti-streams or cues. There's the "normal" and "battle" music but in between there's muti "built up" music from normal to battle and muti "built down" music from battle to normal. I think those would be difficult to make the song loop properly unless a user has control on which streams/cues to play.
Can anyone else confirm this? I'm attempting to play the Ecco (DC ADX) set using Winamp 5.13, and in_cube 0.18 beta 3. However, almost all of the files say they have a play time of like, 181 minutes, and 24 seconds. When I attempt to play them, all I get is silence. Some of the files are correctly playable, but most of them aren't.
Anyway, I'd just like to know if this is me, or if it's in_cube. I certainly found it to be odd that it would do that... Mouser X over and out.
I didn't think to look at that. It sees them as DSPs... "type: standard or unrecongnized" I can see how that would cause a problem. Any ideas why it would do that?
Started working on the plans for the OO version (most likely to be C++, though light enough on the OO to be C, I think).
foobar2000 v0.9 by PokeParadox at 4:28 PM EDT on April 16, 2006
Well Looks like I may as well scrap the idea of porting in_cube to foobar... it seems (since I'm listening to some ADX files right now and was listening to ADPs and DSPs earlier) that someone has already either ported it or written a very funky ADPCM decoder component for foobar...
I know this is terribly premature, but I must ask anyway...
SSBB (SSB: Brawl) is going to be using streaming music (based on some things I've read. I've have to look them up again to verify). While I know this game won't be out for some time (2007 :( ), I was wondering if you would consider looking into the audio format for Wii games, when/if the opportunity arises. I wouldn't expect those formats to be integrated into in_cube, since it's going through a rewrite, but perhaps a later version (or, after a rename)? Since the Wii is based on GC technology, I figured that the audio formats would possibly be simliar as well. I know I VERY HIGHLY look forward to this game. I fully expect the music to be awesome for it as well.
For those who haven't heard, Nobuo Uematsu is composing the theme song for SSBB (perhaps others, I don't know). Also, SSBB is going to have a 3rd party character in it (I won't say who, since I figure it will incite people to find out. Also, there's a huge chance that most people here already know who it is). Check out the official SSBB site for the demo trailer, and the MP3 of the opening theme. Also, the "How this came to be" thing is a really good read (at least, I thought so).
Oh, and uh, sorry to hi-jack the thread with SSBB stuff. Really, I'm just curious to know your opinion on Wii audio format(s) inclusion into in_cube (or future versions/names/ect.). Thanks in advance. Chances are that I'll have to wait another year (or more :( ) for Wii audio to be a reality though... For one thing, they have to first figure out how to rip the games from Wii disc to PC harddrive, and then figure out how to read the data stored on the result. Chances are that's not going to happen for at least a month or 2 after the console is released. Of course, since the console is 4th quarter 2006 (no release date yet), I'm going to be waiting a long while for this to work out... Like a said, this is a little premature... Oh well. Mouser X over and out.
Recall that is was a loooooong time before Gamecube disks were rippable. That said, as soon as I can get my hands on some Wii streams I'll be very happy to take a look at them. Who knows, maybe they'll go ADX.
Hey, I've waited about 16 months (since I pre-ordered it) for Zelda12:TP, and I'll be waiting longer still. I can wait for Wii games to get ripped, and the format figured out. Heck, if we're lucky, they do decide to go with ADX, and adXtract will work on the ripped images. Then, you won't have to figure out the format of the image, since you can pull out the files directly. As I recall, X360 discs were ripped within a few months of the console's release. Sure, no one knew how to use that data, but the fact that they had ripped the discs was a pretty good start, I think. Of course, I realize the Wii is not made by Microsoft, and therefore will most likely not have gaping security flaws... Nonetheless, I look forward to the day when this becomes feasable... Mouser X out.
Mouser X blabbed: Of course, I realize the Wii is not made by Microsoft, and therefore will most likely not have gaping security flaws...
Yes, and the Wii will not be made by a company that brutally rapes people's trust with software which is intentionally full of security holes.
NBA Street V3 and SSX On Tour (GC Music Request) by cloakedguy at 3:32 PM EST on November 27, 2010
Does anyone have the audio files for either SSX On Tour or NBA Street V3 for the GameCube? It seems like there were once up on the tracker... years ago.