in_cube 0.24 released by hcs at 9:50 AM EST on January 18, 2008
From the extensive hist.txt: - fixed NPSF loop points & samples calculation - AST codec detection added (no need to rename TP .ast file to .afc anymore) - Mono HPSs (Killer7 FBITape*) now handled properly - encrypted ADXs now no longer attempt to play as DSPs - fixed HPS loop timing (would play too long) - fixed overflow issues with huge ADXs - minor adjustment to ADX decoder
- incorporates a huge amount of new format support by fastelbja :
A total of 29 new formats supported : - Add other PS2 ADPCM variants support (CCC, FSB, FAG, MIB, MUSC, PSH, RWS, RXWS, SVAG, VPK, VS, VAG with Dual Channels,I80,INT,RSTM,ASS,KECS,PSW,RSD6,RKV) - Add PSX CD-XA support (no direct CD support, the file must be copied to hdd, and have the RIFF & CDXA header informations). Actually, only the first channel found in the file is played, and the length calc could be wrong. - Add XBOX ADPCM (WAV support - Must be renamed to xwav) + others variants (WAVM, which is headerless, XMU, FSB & XMS) - Add EA/XA support (Electronic Arts Sound Format). - Add RAW ADPCM (RAW (headerless) & RAWX (with header)).
I tried downloading msvcr80.dll from here, but it still doesn't work. A post on the site said that it was a beta version of the file, can you upload the file you have?
in_cube 0.25 by hcs at 2:51 AM EST on January 19, 2008
in_cube 0.25 is now up!
I have heard these reports of old formats not working, could you please be a bit more detailed about this (what version they last worked in, if the new formats work in 0.25, what exactly is meant by "not working") when reporting any problems in 0.25?
MIBs don't play now, crash the player completely here (using XMPlay and MIBs from either Mercury Meltdown Remix (2006)(Ignition)[PS2] or Wizardry - Tale of the Forsaken Land (2001)(Atlus)[PS2]).
You come home after a long day's work and check your mail. Among the advertising circulars and bills there is a small envelope, hand-addressed to you. The return address says only "HCS", but surely it couldn't be a dispatch from that land of short release cycles and bug fixes. You shuffle inside, take off your heavy coat, and sit down at your kitchen table to see what this odd, unexpected message could be. Though small, the envelope is made of a heavy stock, and it eventually takes a pair of scissors to open it. Inside there is a handwritten card, marked in large block letters:
in_cube 0.27 Released. MIB works again.
(not quite a woot-level inspiration, but it can't be said that I didn't try)
A minor bug I've found, both in Winamp 5.51 and 5.52: When any option is changed in the in_cube config dialog while an ADX file is playing (I haven't tried under other conditions), the ADX playback volume gets much quieter and stays that way until Winamp is restarted. Just FYI.
So, now that the C++ 2005 Distributable is needed for playback, i'm hoping it's safe to assume that in_cube will finally compile correctly in MSV C++ 2005?
Nensondubois, did you consider looking on the in_cube webpage? I certainly wouldn't have thought it was that hard to find. It's certainly right where I expected to see it.
As for Ace Combat 4, do they have a file extension? Is there a readme or info file? I don't have those myself, so I can't say for certain how to get them to play. I would have figured that they'd just work. Sorry I can't help more. Mouser X over and out.
They're in /bonus, under PS2ADPCM. The file extension is .PS2 but all the filenames contain "VAGBGM", so I figured they were "VAG (with dual channels)" as stated in the hist.txt file. Am I missing something? Are they some weird alternate format, encrypted, or something like that?
They are interleaved files, and as such, have varying increments depending upon the game. You'll need to use FastElbJa's ADPCM Player to hear them. Grab it here. It requires .net 2.0. Load the files, and enter the interleave in the bottom right corner (you can type it in, you don't have to use the arrows). The Ace Combat 4 set needs a value of 800, as the folder name indicates.
JILost, you are quite right about the ADX volume bug, I'll see what's up there. Ah, I had increased the volume on ADXs a while back to 0x4000 but I didn't update the configuration routine (it was still at 0x2000). I'll have a new version up (with some other fixes) in an hour or so.
edited 6:48 AM EST January 20, 2008
in_cube 0.28 by hcs at 7:04 AM EST on January 20, 2008
I found a bug on in_cube 0.28: I tested this version with the Super Paper Mario streams. At the point where the loop ends the music sounds defectively, but only on that point! For example: evt_star1_44k_lp.brstm at 0:27, or evt_zigen_appear1_44k_lp.brstm at 1:11.
Good catch. This is because of a phenomenon I call "short chunk". Streamed audio lesson: brstm (and indeed a lot of streamed formats) are "interleaved". This means that, in the file, first we have a little chunk of data for the left channel, then a little chunk of data for the right channel, then a second chunk data for the left channel, and so on, alternating chunks between the two channels. This is done so that the file can be read sequentially, which is important on storage media where seeking is costly, such as optical or magnetic disks. The chunks of data are typically all the same size and this size is called the interleave for the file. Largish chunks are used so that the decoder has to only occasionally switch between them (switching wastes time), but the larger they get the more memory is needed to store them. Because of this an equilibrium must be reached, and you get widely varying interleave values depending on what the developers thought was appropriate. One side effect of interleaving is that if the size of your data is not divisible by the interleave you need to waste a bit of space at the end of the file. When the left channel ends you may need to fill in junk (usually silence) to pad out the last chunk to the interleave size so that the right channel can appear at the correct position. Often the interleave is small enough relative to the size of the data involved that no one worries about this. Certain drivers, however, avoid wasting space by making the last chunks in the file smaller. This is the "short chunk" phenomenon. It means that I can't blindly use the same interleave value for the whole file, I have to check if this chunk set is going to go past the end of the file, and if so I need to recalculate the interleave to be half of the remaining file. I don't always do this in in_cube, only for certain types, because some types keep the same interleave but end the file when the right chunk ends, which is a different situation but looks the same. When I added the check for Super Paper Mario filenames that need to be treated specially, I added a new type. I neglected to add that type to the list of types that need short chunk processing.
Tanookirby: were they working right in 0.28? What are the names of the troublesome files? Knurek: If you get me those files I can work on adding support. I only had Wario Master of Disguise to test on.
Here's one file, hopefully this will be enough. I suspect this is due to the fact, that the STRM can have various samplerates (those are 44kHz IIRC) and the Wario ones were 22kHz only.
Sorry, these aren't PCM. And I have no idea how NDS ADPCM works. [edit] With minimal research I turned up that it uses IMA-ADPCM, so it might be supported in an upcoming release. At the moment, though, I'd like to focus on seriously cleaning things up.
There seems to be a bug in the last couple of in_cube releases that makes Winamp crash on startup if the last file you played is one used by in_cube. This has happened if I close Winamp after playing a DSP or an AST, at least. I have to move in_cube out of my plugins folder to be able to start Winamp again. Any thoughts?
I'm sorry to hear it but I can't seem to reproduce it here, and the code is such a mess that it's too hard to look for bugs that I can't see happening. Could you provide some more information? Specifically, try some of the old versions of in_cube, let me know which version was the first the crash occurs in. Also let me know exactly what Winamp version you're using. I'll do what I can from there.
I'm using the latest Winamp, 5.52. After going back through several newer-to-older versions of in_cube, they all seem to do this, so maybe it's something weird with the latest version of Winamp. I guess I'll have to try that next.
Go back to around winamp 5.12. I've got 28 input plugins in 1 install, using the classic skin, and it's very much stable. I keep CaitSith's in_gsf with it's own winamp installation, because that plugin can really screw with a setup. All the plugins I want can be made to work at this point, with the exception of a new build of in_vgm.
nensondubois: Your point? This is a very well known issue, and has been mentioned on the forums, and in #usf many times. Why aren't you using a download manager? Down Them All (a Firefox extension) works good. So does Getright (not free), Free Download Manager (free, obviously), and wget (wget is a command-line download manager. There's a Windows version which works just fine, but since I'm using Linux, I've been using wget. It works great).
Of those, FDM (Free Download Manager), DTA (Down Them All), and wget are recommended, in that order. Stop using Firefox, or IE, or whatever it is you're using, and use something decent instead. Mouser X over and out.
Someone mentioned the PS2 ADPCM player earlier for the Ace Combat 4 stuff. I tried a few files from another game (Zombie Hunters 2) and I cannot figure out the interleave for my life. I uploaded a few files in hopes that someone else might know or be able to guess more easily:
marioman: found the issue, there was something specific that would only affect rstm files before 0.29, but now there's another bug atop it that affects everything that's not thp. Fixed in next release (which should be some time later today).
Thanks! By far, Geometry Wars is the best arcade-style game of the modern era. Sure it's sort of an Asteroids clone, but the gameplay has been changed in such a way that you really don't notice it that much.
edited 12:13 PM EST January 24, 2008
by nensondubois at 6:05 PM EST on January 23, 2008
Oh shit I forgot I had Down them all thanks. I never used it thanks. now I'll download some DSPs and in_cube new version. And now under Down Them All manager at like 15% on melee I get server error and starts over and is annoying.
I use Download Accelerator Plus, which is said to download files 4x faster than usual. Are there any programs that claim to do better?
BTW, I realized that my SPM files will play normally only if I keep the filenames unchanged. If you change them, the playback will go back to a speedy play.
Ugh, don't use Download Accelerator Plus. DownThemAll seems ok, but I didn't really care for it so I use GetRight. You *can* register it, but it's free to use. There are a feature or two you get for registering but it's really more of a 'thank you' to the folks who spend the time developing it.
Well,I tend to avoid IE, even if it's in a presumably better flavor like that one. :P And, you're welcome...must be the torrent worked for you? That game is pretty awesome, I'm glad I have the music from it now...I like how the several of the music tracks are pretty much named for old school arcadey shooters (like Asteroids or Tempest).
@9th Sage: Yep, the torrent miraculously worked for me. Thanks.
As for IE, even if you are not a huge IE fan, the download manager in IE7Pro works good. It is probably worth a download even if it is just for downloading streams.
Beats me. All I do is 1) extract the source 2) open the in_cube.sln file in Visual Studio 2005 3) select the Release configuration 4) build (F7)
Seems to work, lots of warnings but such is life. You might try rebuilding the project (File->New Project From Existing Code, select DLL as the project type).
No. As far as I know, no one knows how it works yet and there are no software decoders. Probably not too different from WMA, but I don't know enough about that to try messing with it. I'd certainly love to support it, Blue Dragon has some really neat tracks, and Lost Odyssey almost certainly uses it as well but I'm not downloading 4 dual-layer DVDs worth of material to find that I can't do anything with it.
How to compile without MFC by MegaByte at 6:37 PM EST on February 1, 2008
Thanks for the tip, MegaByte, but I still cannot compile in_cube. I now get this error:
1>wamain.obj : error LNK2019: unresolved external symbol __imp__IsDlgButtonChecked@8 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__GetDlgItemTextA@16 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__EndDialog@8 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__CheckDlgButton@12 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__SetDlgItemTextA@12 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__SendMessageA@16 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__GetDlgItem@8 referenced in function _configDlgProc@16 1>wamain.obj : error LNK2019: unresolved external symbol __imp__DialogBoxParamA@20 referenced in function _config 1>wamain.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _about 1>wamain.obj : error LNK2019: unresolved external symbol __imp__PostMessageA@16 referenced in function _DecodeThread@4
Then you'll need to add libraries to the Linker configuration. Not sure why they're not already included in your build, but check Google for which lib files contain those symbols and you should be able to complete your build.
I figured out a fix for the WinAMP 5.52 crash. It seems some initialization happens in a different order in this version, and some expected info isn't there when in_cube files are already in the playlist upon launch. The fix is to remove the check for !*filename in getfileinfo in wamain.c. I compiled a fixed copy, which can be found here. Unfortunately, I built with Visual Studio 2008, which requires the installation of this as well.
Yeah. I don't know much about WinAMP plugins, but the crash is only hit when that pointer is NULL, which only seems to happen (in my very brief testing) when in_cube files are already loaded into the playlist before starting WinAMP.
Err right; I misspoke. The problem seems to be that filename does exist, but the cubefile structure is not properly initialized. The crash actually occurs in the getlength function. I believe the sample_rate comes back as zero, resulting in a divide by zero error. Removing the !*filename check simply forces InitCUBEFILE to execute in that particular case, which solves the problem. There's almost certainly a better fix for the crash, but that was the simplest patch code-wise. in_cube 0.35 doesn't crash, so the fix still holds, but I guess it would be instructive to figure out why the cubefile initialization has changed (or maybe there's a race condition somewhere, which would explain different results on different machines?)
Here's an optimized build for those that are interested. It seems to load files faster, but I haven't analyzed playback performance. VC9 runtime required. For reference, I added the following compile options: /Ox /Ob2 /Oi /Ot /Oy /GT /GL /GF
in_cube 0.36 is up now, fixes a bug in VAG decoding. I also made some changes to file info handling that might make sense, please tell me if this behaves poorly on Winamp 5.52.
by strugglepoo at 6:25 PM EST on February 15, 2008
I'm having issues when I install the plug-in. It works fine, but when I go to "Open Files" in Winamp none of the supported file types show in the browser! When I un-install the plug-in, they'll show up again. Any ideas? Currently using v5.35 if that helps.
I generally make playlists of the stuff named !all so that I can still open stuff with winamp. You should note, however, my install is broken to the point that every file is shown, whether it's supported or not.
by strugglepoo at 12:30 AM EST on February 16, 2008
"This is a known issue with winamp. Deal with it." I don't care for your demeanor. Thanks for letting me know it's a known issue, though.
Actually, it's not Winamp's fault, it's Windows. Windows is limited to 256/260 characters (something odd like that). With in_cube installed, the number of allowed characters goes *way* over that limit. Besides, who actually uses the "Open Files" menu anyway? I haven't used it in the last 8 years...
As for demeanor, I think you're reading more into it than is actually there. When reading the dictionary, I really doubt it's cursing at you... Sure, you might read it that way, but it's a book. It has no emotion. While ugetab may be a human (or not, I've never actually met him), I doubt he meant it in a rude or degrading way. Basically, the more positive you think of people, the more positive their responses are to you. Mouser X over and out.
"Actually, it's not Winamp's fault, it's Windows. Windows is limited to 256/260 characters (something odd like that). With in_cube installed, the number of allowed characters goes *way* over that limit." just to clarify this matter, the cut off limit is 260 and is related to the file length limits imposed on Win95 and which has remained since then.
the problem that causes Winamp to effectively show all of the files comes from where the cut off in the file extenstion list occurs - since it's all formatted as Description Null Char Comma seperated extensions. obviously if you know your DOS folder handling, you'll know that . effectively refers to the current directory and since Windows still maintains those features, when the string is cut-off and the last character comes as a . then it'll end up doing a show all action.
in 5.5 when i was working on the winamp core, i did some tweakage to the code which does what it can to prevent the string cutting off on a . and reverting the extension list back to the last full extension which will fit within the 260 char limit.
so as you can see it's not a winamp bug (unless you classify the program allowing input plugins to provide whatever filetype support they want to...) but is a quirky issue related to the Win95/file system limits from those days. now that Winamp is a Win2000 and up only app, there is a way around this (since Win9x support isn't needed) but it's not been tried to my knowledge and isn't something i've got the time to look into on the core myself either. but one day, maybe... heh