- by AnonRunzes at 7:17 PM EST on March 5, 2017
- Here`s a new plugin coming from me:
- by bnnm at 8:06 PM EST on March 10, 2017
- I did some GENH changes; long-winded explanation incoming:
- ATRAC3 (id=18), ATRAC3plus (id=19), XMA1 (id=20), XMA2 (id=21), FFMpeg (id=22), for raw AT3/XMA data and "headered" FFmpeg data.
In AT3, interleave is block_size for *all* channels (like in a AT3 RIFF header) and must be provided. Typical sizes are 0x60*ch, 0x98*ch, 0xc0*ch (ATRAC3); 0xBC*ch/0x174*ch/0x200*ch (ATRAC3plus).
In XMA, interleave is also block_size but defaults to 2048 if not provided (usually ignored by FFmpeg).
- possibly-useful FFmpeg formats: AAC, OGG, MPEG, WMA, AC3. List here.
- FFmpeg doesn't need subtype or anything, it finds out the codec by itself.
- header_skip is where data that FFmpeg can parse (=headered) starts. Meaning, it should point to a (example) AAC header at 0x100, NOT to AAC raw data at 0x150 (FFmpeg needs headers).
- new formats must be enabled/pre-compiled first
- in rare cases some odd codec may not work in vgmstream due to quirks too long to explain
New fields @ offset
- 0x40 (4) = total samples: when loop-end-at-offset is 0 while total-samples-at-offset is not, or you want to disable looping and get song endings. If 0 it'll use loop_end as usual.
I hope you can add an (optional) row in VGMtoolbox to read the total samples similar to the loop ones.
- 0x44 (4) = skip samples: for formats with encoder delay (AT3, XMA, FFmpeg), see below.
- 0x48 (1) = skip samples mode: 0=autodetect, 1=force manual value @ 0x44 (skip samples ignored if this is not set; enable-flag as one may want to set skip to 0)
- 0x49 (1) = ATRAC3 stereo mode: 0=autodetect, 1=force joint stereo, 2=force full stereo. Probably never needed (for now interleave 0x60*ch = joint stereo).
- 0x4a (1) - XMA stream mode: 0=default (ex. 4ch = 2ch + 2ch), 1=single (4ch = 1ch + 1ch + 1ch + 1ch).
XMA data is divided into "streams" of 1 or 2 channels, and this configures the layout. Mode 1 not working yet, actually.
- 0x50 (4) = raw data size: for formats that may have garbage at the end (ex. XMA RIFF), otherwise filesize-header start.
Skip samples (gapless playback / start padding)
- MPEG/MDCT-based encoders (MP3, AT3, XMA, AAC...) add some garbage samples at the beginning, usually silent but not always.
- When decoding you need to skip them to get the original sample start.
Ex.: you have a file of 88200 samples, but encoded to AT3 you get 1216 + 88200 samples. So when decoding you must skip the first 1216 samples to get the real start.
You can't just change the header offset to skip them.
* AT3: must be provided (usually 0x400~0x800). In AT3 RIFF headers it's the last value in the "fact" chunk.
* XMA: should be autodetected (usually 576). Disabled for now due to quirks.
* AAC (via FFmpeg): should be autodetected (usually 2112).
* MP3 (via FFmpeg): varies with the encoder, may be autodetected (usually 576 or 1156)
- in GENH when skip samples are provided loop values are "relative".
Example, GENH uses "relative" values: skip samples = 400, loop_start = 0 (so "real" loop start will be 0+400 samples in).
While AT3 RIFF headers use "absolute" values: skip samples = 400, loop_start = 400 (so for GENH you need to manually substract loop_start - skip_samples).
But other AT3 headers do use "relative" loop values instead; experiment (same for any format with skip samples).
Byte to samples
- MPEG: for CBR, (bytes * sample rate * 8) / (bit rate in kb * 1000)
For VBR you can use the "average bit rate" to get approx. samples.
- ATRAC3: (bytes / block_size) * 1024
- ATRAC3plus: (bytes / block_size) * 2048
- XMA: not possible AFAIK (maybe some formula with the average bit rate)
- Others/FFmpeg: ? (try to pre-decode with FFmpeg.exe to get max samples)
- by 47iscool at 9:37 PM EST on March 10, 2017
- Would it be possible to add support for Gran Turismo 4' gt4.vol to the iso/archive opener?
The gt3.vol tool does not extract files properly from gt4.
- by snakemeat at 10:05 AM EST on March 11, 2017
- Very cool about the GENH stuff. It'll take some time, so I'll let you know if I have any questions.
I will take a look at the psfp stuff after I finish the GENH stuff. But if no generic driver exists, there may not be very much I can do.
Regarding the GT4 archive, I typically trying build only for generic or system-wide formats, rather than game specific formats. But I can take a look to see if one of the other tools might be able to help, for example thr virtual file system extractor. Can you upload a sample?
- by AnonRunzes at 4:56 PM EDT on March 16, 2017
- So, does this one support (decrypted) NDS images or do I have to use another tool if I want to explore these NDS images?
EDIT: I got one sample from me though...
This .rar file includes samples obtained from all three console versions(PS2, GC, XBOX) of Tiger Woods PGA Tour 2003.
edited 11:01 PM EDT March 16, 2017
- by 47iscool at 9:36 PM EDT on March 16, 2017
- Sorry cant do snakemeat. I only have internet on my droid and not enough storage space on the sd.
- by bnnm at 7:59 PM EDT on March 17, 2017
- @snakemeat - if you have some time I hope you can take a look at this ACB+AWB from Ukiyo no Shishi (PS3).
Some names are not matched, even though they are in the .ACB (I suspect a couple of names are mismatched too).
Also, some .HCA are extracted multiple times (since there are more cues than HCAs I guess).
I think an option to extract HCAs only once would be useful as it was kind of surprising; in this case you have tracks like BGM_17 and BGM_17_18 which are the same.
Incidentally the Vita version outputs a few "x.EncodeType-10.bin", those are .vag
- by NLOG at 8:45 AM EDT on March 21, 2017
- Some .mca files from Monster Hunter 3U (3DS) happened noisy crack.
An older version, this problem is not happened.
It seems any regression.
- by AnonRunzes at 1:20 PM EDT on March 21, 2017
- @NLOG - "vgmtoolbox" is not responsible with your error.
HCS Forum Index
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Search this thread
Show all threads
Reply to this thread:
Halley's Comet Software
Generated in 0.0085s;