Previous Page | Next Page

by earise at 4:36 AM EDT on September 6, 2017
@datschge Sorry I dont know which one either. I happened to find it on 2ch, he said the key was the same as the key in the game Hortensia Saga which i also found in the same thread
by datschge at 5:10 PM EDT on September 7, 2017
@earise - Thanks, that's good info nonetheless. Hortensia Saga appears to be a hybrid app as well so the key may actually be shared by all those hybrid apps, likely due to using the same framework.
Edit: Actually both are by the same developer, f4samurai.

edited 6:20 PM EDT September 7, 2017
by bnnm at 4:43 AM EDT on September 17, 2017
Heads up, the latest vgmstream autodetects known keys so shouldn't need .hcakey anymore in many cases.
by datschge at 7:47 AM EDT on September 18, 2017
@bnnm - That's great. What is it based on though, do you collect and include the keys right in vgmstream?
Edit: Never mind, just saw you did answer that already in the vgmstream thread.

edited 10:09 AM EDT September 18, 2017
Decrypt by chrrox at 8:59 PM EDT on September 18, 2017
Can anyone decrypt this file if so ill upload the games sound track.!s1ae3f3c0z!.acb!s22c1b0f4z!.awb
by datschge at 6:11 AM EDT on September 19, 2017
@chrrox - What's the game (ideally its android id)? With only the encrypted files nobody has the actual data needed to look for the key.
by chrrox at 5:27 PM EDT on September 19, 2017
@datschge its this game

edited 5:28 PM EDT September 19, 2017
by furrybob at 5:41 PM EDT on September 21, 2017
What's your method for testing each key?

In VGAudio, I unpack a few frames without decoding the entire frame, and if there are an arbitrary number (10 ATM) of frames that unpack successfully, the key's marked as valid.
by bnnm at 6:50 PM EDT on September 21, 2017
@furrybob - vgmstream's HCA decoder will (AFAIK) always decode even with an invalid key, but I observed there would be a bunch of clipped samples (0x8000/0x7FFF).

So for each key I just decode frames (max ~100) until a number of non-blank samples (~10*1024) and see how many clipped. The key with lowest number gets picked.

Not super great but seems fast enough and worked with all my files. Usually the correct key gets 0 clips and gets immediatedly selected. I guess a wrong key could still get 0 clips in the first frames so the values can be adjusted though.

(see here).

I tried to check VGAudio for inspiration but the whole ReadSpectralCoefficients was way beyond me, so I just devised this funny thing.
by kode54 at 7:01 PM EDT on September 21, 2017
Also, it doesn't matter to the decoder if it unpacks successfully or not, since the checksum verification happens before the decryption occurs.
by furrybob at 7:30 PM EDT on September 21, 2017
Yeah, that does seem a little hacky, but hey, it works.

HCA is more complex than most video-game-specific audio codecs. MDCT-based codecs aren't used too often. I can think of ATRAC9 and HCA off the top of my head.

If you had trouble with VGAudio's HCA code, you could always consult the clHCA.c used in vgmstream =P

I've learned a lot from REing ATRAC9, and I plan on revisiting HCA to improve the code and write documentation for the format.

The code in vgmstream isn't just bad, it's wrong in a few places, so it's been on my todo list to port my decoder, but who knows when/if I'll get around to that.

I don't mean decrypting when I say unpack. I mean it in the same way as an MP3 frame would be unpacked.

If you decrypt the frame with an invalid key and then unpack the frame, it usually won't unpack successfully, making it a perfect (almost) test for valid keys.

edited 7:36 PM EDT September 21, 2017
by bnnm at 10:05 AM EDT on September 22, 2017
@furrybob - more/better codecs are always welcome :)
Most codec theory is beyond my skill unfortunately, but I'm all for accuracy.

MDCT I'd say it's quite common with ogg/at3/mp3/xma around though.
One thing I wonder though, as you can find ATRAC3 even in PS2 games, or hardware-decoded, I'm guessing that various implementations sacrify some accuracy for speed? Ex. I believe Wwise used fixed-point Vorbis, that stuff could be documented.

Also vgmstream's clHCA (now found here) doesn't use the latest version, it's possible they fixed stuff.
I know of one example that decodes wrong (very muffled) vs CRI's tools though didn't try the latest.
by furrybob at 10:36 AM EDT on September 22, 2017
Do you happen to have a link to that sample that doesn't decode correctly?

MDCT is quite common, but less so for codecs created specifically for video game audio. XMA must have slipped my mind earlier. I'm surprised nobody's publicly RE'd that codec yet.

by bnnm at 11:23 AM EDT on September 22, 2017
@furrybob - example. It's an HCA inside an AIX though. Now that I think about it maybe I compared vs an earlier HCA decoder instead of CRI tools; sounds strange with clHCA anyway.

I see what you mean now. XMA doesn't even qualify then, since it's just WMA Pro with very minor config.

A note, FFmpeg's WMA Pro/XMA decoding seems very accurate, comparing waveform/samples (maybe they just RE'd xmaencode.exe or xWMAEncode.exe), but gets wrong sample counts (encoder delay, last frame). While FFmpeg's ATRAC3 seemed not very accurate, and ATRAC3plus was ok-ish.
by furrybob at 1:25 PM EDT on September 24, 2017
Oh, I wasn't aware that FFmpeg supported XMA files.

As for that sample, it's using HCA version 1.1. Recent CRI SDKs refuse to decode any HCA files of version 1.1 or below, or of a version above 2.0. Forcing it to decode the file results in audio similar to the audio that VGAudio produces for that file.
Edit: That is, the audio sounds choppy.

I haven't run across any HCA files below version 1.2 before, so I'll have to look into that sometime.

edited 12:37 PM EDT September 25, 2017
by Swiftie24 at 5:12 PM EDT on September 24, 2017
A bit late , but thank you so much @bxaimc

I found a converter. It helped me with a sound replacement in a 3DS game.
by furrybob at 8:26 PM EDT on September 25, 2017
I noticed your comment here.

HCA encryption keys are only 56-bits, hence the 56 in the Cipher Type field of encrypted HCA files' headers. That's why the keys work the same.

edited 8:26 PM EDT September 25, 2017
by bnnm at 4:02 PM EDT on September 26, 2017
Good to know. Since the person posting HCA keys in 2ch (clHCA author, user here ssh too?) gets keys directly from code and have the upper bits, I assume they are part of the key even if unused.
Tokyo Ghoul: Re Invoke .ACB and .HCA sound issue by TheGoldenChild at 7:59 PM EDT on September 26, 2017
Man, how are you all evening finding the codes? I try to go through an .ACB, extract the files convert to .Bin but when its finally converted I get a garbled mess.

The only place that has something sensible is the .ACB file when it comes to the top lines.

Anything out of that when in HxD it looks odd.

by datschge at 8:32 PM EDT on September 26, 2017
@TheGoldenChild - As the games need to know the key to decrypt the audio for playback the key must be stored somewhere, usually close to where the audio code is initialized. That was quite easy to track down in older games, though I admit I haven't had luck with these newer Unity games unfortunately.
by kode54 at 9:35 PM EDT on September 26, 2017
Still waiting for that Atrac9 decoder to appear somewhere. Or is that a big secret?
by furrybob at 11:26 PM EDT on September 26, 2017
I don't know 'bout no ATRAC9 decoder, but that ~2010-era, version 1.1 HCA file that bnnm posted last page plays properly now.
by Mouser X at 12:24 AM EDT on September 27, 2017

ChillyBilly posted a command line AT9 decoder back in September 2016 and a drag n' drop version in August 2017. I've used the drag+drop version on a few AT9 files, and it works fine, except that it doesn't handle spaces very well (it uses the "CURRENT USER"'s temp directory, and since my username on this PC is "Mouser X", it fails to function, due to the space in my username. I had to create/activate the "guest" account on my PC to run the drag+drop tool.... It's a pain). It also doesn't include the loop point in the resulting WAV file, so I had to direct the screen output to a text file, to preserve the loop points. I've successfully created looping ADX files using the drag+drop tool (and of course an ADX encoder). In doing so, I noticed another problem - the resulting WAV files are looped twice (without loop points).

To reiterate - the drag+drop version does the job (so long as there's no spaces in the path to the temp directory), without loop points in the WAV file that "hard loops" twice. To create "proper" looping files, you need to remove the 2nd loop manually (I didn't notice the command-line version before, which does have a parameter for looping once), and add the loop points that the tool outputs to the screen. It's a little work, but certainly doable.

That said, if anyone knows how to use this tool to create some "custom code" (aka, reverse engineer) to decode AT9 files, that'd be great. It'd make a lot of sets playable, and get rid of the problems I have in trying to create my own looping files from the decoded AT9 files.

I linked this, in the assumption that you haven't seen it. If you already have it, hopefully someone else can make good use of knowing it's here.

[EDIT] Upon further reading, it looks like both tools are part of a Sony devkit, so building code from reverse engineering these tools is probably illegal. Dang. Mouser X over and out.

edited 12:58 AM EDT September 27, 2017
by furrybob at 1:12 AM EDT on September 27, 2017
A 31 MB exe file? I don't know whether to be horrified or impressed. I wonder where the code's taken from. I'm on my phone right now so I can't check it out further.

I actually have completely reverse engineered the ATRAC9 format, and have a 100% bit-perfect decoder. Right now I'm writing documentation, and cleaning up/reimplement the code.

It wasn't supposed to be a huge secret. I just decided not to say anything until it was almost ready to release, especially since the timeline on side-projects can be really unpredictable. Besides the temporary code you might write when you're reverse engineering is kinda embarrassing =P

The decoder is written as a module to VGAudio, which means conversion to formats like ADX is be a breeze. The ATRAC9 code and data currently fit in a ~50KB dll. Only slightly smaller than 31MB.
by Mouser X at 1:56 AM EDT on September 27, 2017
The command line decoder is about 73 KB. The drag+drop tool is big because it includes code to trans-code MP3, WAV, FLAC, OGG, YouTube, and a number of other formats into AT9. I haven't used the command line tool myself, yet, so I don't know how usage compares to the drag+drop tool. Hopefully it doesn't use the "CURRENT USER" temp directory (as that causes problems, with a space in my user name, apparently). If not, I can convert AT9 into a looping format (LOGG is preffered, but I don't have a "user friendly" way of playing LOGG files on my tablet. I know there's Droidsound, but the playlist handling, and file adding, on that player are a real pain in the neck. I use Rockbox [which doesn't work past Android 4.0 :( ], which plays ADX files), which would be nice to play on my tablet.

Though, I've been watching DrO's improvements on Winamp. If all goes well there (and my internet become a lot more stable...), I can stream my PC's music to my phone, and play all this great music that way! Though, I have no idea how playlist handling works under those conditions....

Regardless, I hope your AT9 implementation becomes available for VGMstream. That'd make listening to the Hyperdimension Neptunia series a lot easier (it's the first game I downloaded/discovered that uses AT9). Good luck! Mouser X over and out.
by bnnm at 1:03 PM EDT on September 27, 2017
@furrybob - that's great news, good about the HCA too. I hope you can publish an ATRAC9 DLL / C ext API for vgmstream as well, I can do the rest (I don't know much about .NET and would be a pain to learn just to do that).

@Knurek from the past - vgmstream can parse a bunch of headers with AT9 (Wwise, FSB5, Ubi RAKI, EA SCHl (in testing), SXD, XVAG, GTD), just needs the actual decoder :)
(ironically regular .at9 is missing, one more thing for the to-do pile).

edited 1:32 PM EDT September 27, 2017
by Knurek at 1:14 PM EDT on September 27, 2017
Please make AT9 decoding in VGMStream happen. Please. Especially if this amounts to FSB and WWise Vita support.
by marcusss at 2:49 PM EDT on September 27, 2017
Sounds like an awesome achievement !
by furrybob at 8:46 PM EDT on September 27, 2017
I've already put together an open source implementation of Nintendo's DspTool, so I was planning on doing something similar with Sony's libatrac9.

edited 8:46 PM EDT September 27, 2017
by kode54 at 11:25 PM EDT on September 27, 2017
If it must be a DLL, I'd rather port it to native C code first, so it can be portable.

The only reason I even asked about the ATRAC9 decoder was because someone came announcing its completion on IRC about a month ago, and I came to the VGAudio repository to see not a trace or mention of it. Perhaps you should be careful who you share your development news with if you're not ready to go public yet? :P
by furrybob at 8:35 PM EDT on September 29, 2017
That's true, you can't trust everyone. To be fair to him, he was the one who suggested to me that I look at the format, and I never said anything about not telling anybody.

Anyway, Here's a link to the VGAudio UWP app with ATRAC9 support in it. You may or may not need to install the framework dependencies depending on what you've installed from the Microsoft Store, but I included them in the download in case you do.

I'd prefer to have documentation out and a few other things done before I post the source.

I'm no expert in writing documentation, so I wrote a bit of HCA documentation the other day as practice. Are these two documents readable? They're missing a bit of context, but I'm hoping they're somewhat understandable.
by bnnm at 6:44 AM EDT on September 30, 2017
@kode54 - (not related to AT9) for portability, is it better to add new MPEG/Vorbis codecs using mpg123/libvorbis or FFmpeg with custom IO (like Wwise Opus)? Since I can do it either way.

@furrybob - You mean you'll use the same API as libatrac9, right? Works for me.
I can't test your beta as I don't use W10 tho ;)
by kode54 at 4:12 PM EDT on October 2, 2017
@bnnm: Maybe do both if at all possible, preferring FFmpeg if it's enabled? I only say this, because it can handle the formats, but maybe a number of people would prefer not to depend on it for their builds?

Maybe that's not fair. Maybe it should simply be for the mpg123 or libvorbis instead, to save you the effort of having to support both.
by furrybob at 12:38 AM EDT on October 8, 2017
Forget HCA decoding, how about HCA encoding? I've got an initial encoder here that works with VGAudio. Builds can be found on AppVeyor
by durandal at 10:55 AM EDT on October 9, 2017
Will source code of your atrac 9 decoder be open sourced at all?
by furrybob at 1:16 PM EDT on October 9, 2017
Yes. It will be released when I feel it's ready. Probably within the next few weeks.
by Intervencion at 1:58 AM EDT on October 21, 2017
I'm trying to rip the music/sounds from an Android game [One Piece Treasure Cruise] and hca2wav returns the following:

Decoding bgm_51_boss_01.awb.00000.bin ...
Error reading HCA header

Could you help me out?
There are the original file and the bin I got after extracting it using VGMToolbox r1040.

Thanks you!

Edit: Tried with cpk_unpack 0.7 beta 7 and cpk_unpack.c:50:analyze_CPK: CPK signature not found is returned as error.

edited 2:07 AM EDT October 21, 2017

edited 2:53 PM EDT October 21, 2017
by bxaimc at 11:49 AM EDT on October 21, 2017
It's encrypted
by furrybob at 12:39 PM EDT on October 21, 2017
The key is 1224

Edit: The key has been added to VGAudio

edited 1:18 PM EDT October 21, 2017
by ssh at 2:50 PM EDT on October 21, 2017
Decryption key to "歌マクロス スマホDeカルチャー": 0581B68744C5F5F5
For usm files use Cri USM Decrypter from Link.
Drag and drop usm files onto Decryption.bat and enter the same key.

Also key for Tekken 7 (PC) usm files: 00A1CACCC4CF453D

Decryption key to "Tokyo Ghoul: Re Invoke": 00189DFB1024ADE9
by ssh at 3:17 PM EDT on October 21, 2017
If somebody needs ATRAC9 TOOL Version here *****.
by furrybob at 5:03 PM EDT on October 25, 2017
VGAudio's HCA encoder should be feature-complete now, and only needs bug testing at this point. You can check out the PR here.

The latest builds can be found on AppVeyor

edited 5:03 PM EDT October 25, 2017
by AnonRunzes at 6:53 AM EDT on October 26, 2017
It works. As in, the encoded .hca file works just as well with the latest version of vgmstream I have here.

However that`s only on the --hcaquality parameter. The --bitrate parameter doesn`t seem to work with me for some reason. It just throws out an "Bitrate is set too low." exception for whatever reason, even if I set the --bitrate number to 384. As for --limit-bitrate I can't really say for sure. Or maybe that's just me not knowing how to use the tool.

edited 7:01 AM EDT October 26, 2017
by furrybob at 8:37 AM EDT on October 26, 2017
The bitrate parameter uses bits-per-second instead of kbps. I guess I'll change that since I was already thinking about having it use kbps anyway.

--limit-bitrate is there for feature parity with CRI's encoder. It just prevents the bitrate from going below a certain value. It'll kick in sometimes when encoding audio with a low sample rate using the quality presets.
by kode54 at 11:11 PM EDT on October 29, 2017
Verified working perfectly under Mono on macOS. And it does things that CRI's encoder won't do: Encode 96 kHz material without downsampling it. One thing it doesn't do, however, is accept 24 bit integer samples. Maybe it would help some cases to add support for 24 bit integer, possibly even 32 bit integer, and 32 bit 1.0-normalized floating point? And you can also try deriving speaker configurations from WAVEFORMATEXTENSIBLE, if you don't already?
by furrybob at 10:11 PM EDT on October 31, 2017
VGAudio currently doesn't support PCM bit depths above 16-bit. 16-bit PCM is the "middle-format" that all the codecs compress from and decompress to.

Adding higher bit-depths would require some tweaking of the interfaces with the codecs to handle that. I've thought about doing that before, but haven't gotten around to it.

I am curious, though. I haven't exactly tested it at all, but wouldn't most of the increased precision get lost as quantization noise anyway? HCA has a maximum of 15 bits of quantization precision, and 5 bits of scaling precision. Maybe it would improve areas with quieter audio?

The HCA encoder has been merged in to VGAudio. It should be feature-complete, although I just realized I forgot to add encryption to it. (Oops?)

For those who are interested in performance numbers:

Single-threaded, stereo audio encoding on an i7-6700K @ 4.2GHz:
Initial VGAudio HCA encoder: 70x realtime
Current VGAudio HCA encoder: 165x
CRI HCA encoder: 30x
VGAudio ADX encoder: 350x
VGAudio GC-ADPCM encoder: 30x
by kode54 at 11:27 PM EDT on November 1, 2017
In this case, it's only about not having to use two intermediates. But I could have unpacked the FLAC and downsampled to 16 bits in one step with FFmpeg. (The original was distributed by its artist as a giant 96/24 FLAC with two loops, the full length of the song, encoded into it. The best part is that I use my Blue Yeti microphone's DAC for output, which only supports 44.1/16 anyway.)
by TheGoldenChild at 7:46 PM EST on November 5, 2017

Key didn't work for me when I used Hca Decoder 1.16 or any previous versions. The HCA files that I use still have that weird noise error.

These are two files I am trying to decrypt with the code given.

-User Error Disregard my previous statements I used another HCA Decoder and code works without issue.-

edited 8:06 PM EST November 5, 2017

edited 8:07 PM EST November 5, 2017

edited 8:15 PM EST November 5, 2017
by qeg at 3:25 AM EST on November 7, 2017
In my computer I could decrypt without problems.
(used key is 00189DFB1024ADE9)
by TheGoldenChild at 10:15 AM EST on November 7, 2017
@geg yea I used another HCA decoder version it works great now no issues.

@ssh Thank you for your help!
by (!!!!!) at 4:13 PM EST on November 7, 2017
Sonic Forces ACBs/AWBs are encrypted.

by Kurausukun at 1:53 AM EST on November 8, 2017
Pretty sure they're not? I got them out just fine using VGMToolBox's ACB extractor, unless it also decrypted them for me somehow.
by qeg at 5:51 AM EST on November 8, 2017
It seems that PC version data is encrypted by Fuckin Denuvo. :(
As PS4's pkg seems to be ready to be unpacked soon, you should wait for it. :D
by furrybob at 9:28 PM EST on November 13, 2017
New HCA encryption keys:

241352432 - Bad Apple Wars (Vita)
243812156 - Koi to Senkyo to Chocolate Portable (PSP)
2012062010 - Custom Drive (PSP)

I've tried putting together a list of keys here.
by Knurek at 1:01 AM EST on November 14, 2017
@furrybob: Thanks for these, updated the sets on
by ssh at 12:23 PM EST on November 14, 2017
Keys for PSP and PS Vita:

0000000049913556: HatsuKare Renai Debut Sengen! (PSP)
0000000049913556: Koi wa Kousoku ni Shibararenai! (PSP)
0000000049913556: Seitokai no Ichizon Lv. 2 Portable (PSP)
0000000049913556: StormLover 2nd (PSP)
0000000049913556: Prince of Stride (PSVITA)
00057F78B05F9BA3: Root Letter (PSVITA)
by bnnm at 2:11 PM EST on November 14, 2017
@furrybob/ssh - thanks!

@Knurek - I update the autodetected key list here too, if you want to avoid manually adding the hcakeys (not that there is anything wrong with that).

Also for reference keys surface here:
Pro Evolution Soccer 2018 / Winning Eleven 2018 (Android): 0000000000D77A01 (14121473)
Do note not all keys discussed there are HCA.
by furrybob at 2:17 AM EST on November 15, 2017
It seems like most of the keys that come from 2ch are from smartphone games. I think I saw a program a while back that would intercept the CRI SDK calls or something and output the key when the app sets it.

Unfortunately, the PSP and Vita keys aren't quite as easy to get because you tend to need a disassembler for them. I've seen one Vita game (Root Letter) that used Unity and dynamically loaded CRI libraries. I couldn't find any tools to help with stuff like imports, so I skipped over that one. Props to @ssh for getting it.

HCA encryption is pretty weak. One of its main vulnerabilities is a weakness to frequency analysis. Hopefully someone will figure out how to crack it. I've done some work in VGAudioTools on it, but I only got it partially working without brute forcing it, and haven't touched it in while
by chrrox at 7:49 PM EST on December 27, 2017
thanks for the one decryption key for the video files that works great.
is it possible to get the audio decryption keys for the game also?
I tried the key
00057F78B05F9BA3: Root Letter (PSVITA)
for root letter and it only decrypts the first audio file correctly the rest sound like static.
by punk7890-2 at 7:32 AM EST on January 5, 2018
I'm pretty sure I found some HCA files. I am not sure how to get the decryption keys. If anybody could help me out that would be great! They come from a PS3 game named El Shaddai. I've left the original CPK in there as well. I suspect the keys might be in the .csb.

El Shaddai hcas

There is several BGM CPKs in this game so if anyone knows how to grab the keys, that would be great if you let me know of the method.

edited 7:33 AM EST January 5, 2018
by Infernus Animositas at 9:12 AM EST on January 5, 2018
El Shaddai uses an early version of HCA and is also not encrypted with a key.

These .AAX files can be decoded using one of the earlier HCA decoders called HCA2WAV. You'll probably need to strip some extra header data from the .AAX files first though but it would be nice to have the functionality added to vgmstream.
by bnnm at 9:15 AM EST on January 5, 2018
The .AAX concat 2 HCA, this isn't supported in vgmstream yet (I hope to in the future). You can extract those 2 HCA though, the X360 set already does.

Then if you play you'll get muffled audio. That's because it uses an early version of HCA, which vgmstream's HCA decoder can't do either.
You can use VGAudio to properly convert.
(a reason to port to C in the future I guess)
by bxaimc at 10:40 AM EST on January 5, 2018
Aye, Binary Domain uses the same setup. And then you have that complicated mess in Street Fighter x Tekken that uses a individual hca stream per channel.

edited 11:00 AM EST January 5, 2018
by punk7890-2 at 6:44 PM EST on January 5, 2018
Thanks for the help. However I don't understand how to get VGAudio working and it seems like HCA2WAV only converts one file at a time.
by Infernus Animositas at 12:07 PM EST on January 6, 2018
Save the following text in notepad with the file extension ".bat" for multiple conversions with HCA2WAV

for %%i in (*.hca) DO hca2wav.exe "%%i" "%%i".wav

edited 12:07 PM EST January 6, 2018
by furrybob at 1:04 AM EST on January 7, 2018
To use VGAudio to decode an HCA file, do something like this: vgaudiocli.exe in.hca out.wav

For batch conversion: vgaudiocli.exe -b -i <folder with hca files> -o <destination folder> --out-format wav
by punk7890-2 at 7:01 AM EST on January 7, 2018
Thanks for the tips guys. I'll try it out soon.
by bnnm at 1:27 PM EDT on September 8, 2018
Just heads up that HCA/AAX now decode properly in vgmstream, including El Shaddai
by Runy93 at 3:04 PM EDT on October 20, 2018
any one have the latest cri ADX2 ??
by GoofyMaster24 at 10:27 PM EST on November 25, 2018
Does someone know how to get the new HCA decryption keys for Ryu Ga Gotoku Online?
The game was released recently for PC/Android/iOS and it's based on Unity.

HCA files from the game
by token at 11:34 AM EDT on March 27, 2019
if a hca encrypted with a custon key,use vgmstream can decod,does it show that encode is feasible?i want to create new hca contains new songs.
If possible,like VGAudio,what is the convert command ,such as convert aaa.wav to bbb.hca(encrypted with a custon key).
by CyberBotX at 1:06 PM EDT on March 27, 2019
Regarding vgmstream, as was repeatedly told to you in your non-issues on GitHub, vgmstream is a decoder, not an encoder. Thus, unless there is a tool to make HCA files, you cannot make them.
by token at 9:37 PM EDT on March 27, 2019
I know VGAudio can make hca file,but i don't know how to make hca that encrypted with a custon key.
by bxaimc at 12:30 AM EDT on March 28, 2019
I’m curious as to why you want to make an encrypted one.
by token at 1:17 AM EDT on March 28, 2019
because a game(pes 2018 android)only could read encrypted hca.
by Sephirothkefka at 2:54 AM EDT on March 28, 2019
It's impossible to make encrypted HCA's via casual means (VGaudio for instance). Tough shit if you want to make one.
Edit to a post here: Adding to all of our previous statements how do you know they're encrypted? Are you guessing at all? If they are encrypted post proof.

edited 4:21 AM EDT March 28, 2019
by furrybob at 2:34 PM EDT on March 28, 2019
The option was added to VGAudio

edited 2:34 PM EDT March 28, 2019
by token at 3:05 AM EDT on March 30, 2019
if a hca encrypted with a custon key,use vgmstream can decod,does it show that encode is feasible?
I know use hcaenc and hcacc could make that hca, but i don't konw convert command ,
the game is Winning Eleven 2018 (Android) and custom key is 14121473,i use hcaenc make a general hca file,how to convert to encrypted hca with custom key,
hcacc.exe general.hca final.hca -ot 56 -i1 14121473???does it need -im -om options?
please help me!
test data link:
by simonmkwii at 7:38 AM EDT on March 30, 2019
by furrybob at 9:32 PM EDT on April 2, 2019
Use VGAudio. It can encrypt/decrypt existing HCA files or encrypt an HCA file when it's encoded.

Download Link

vgaudiocli decrypted.hca encrypted.hca --keycode 666

vgaudiocli audio.wav encrypted.hca --keycode 666

edited 9:33 PM EDT April 2, 2019
by thewhitewhale at 1:04 PM EDT on April 3, 2019
While we're on the topic, is it expected that an HCA decoded into an WAV and then re-encoded into an HCA using the same key it was decoded with will yield different data? The filesize is the same, but the contents past the header (and even a few bytes of the header itself) are completely different, and replacing the game audio with the re-encrypted file then attempting to play it in-game only results in a high-pitched, garbled mess.

It's worth mentioning that decoding the re-encoded HCA into another WAV will yield a WAV that sounds the exact same as the WAV from the original, but is ever-so-slightly different when observed through a hex editor. Doesn't seem like a big deal since differences are minimal, but beats me why it gets messed up so badly in-game.

edited 1:25 PM EDT April 3, 2019

edited 1:27 PM EDT April 3, 2019
by hcs at 7:12 PM EDT on April 3, 2019
Any encoder is unlikely to produce the same result after round-tripping through a decoder. For one thing it's lossy, so the input isn't the same as what was given to the encoder originally; it may be possible to reproduce the encoded data exactly, from an information theory perspective, but it's unlikely for an encoder to be designed in such a way that it works to exactly reverse the decoder. Also you may not even be using the same encoder, or the same settings.

As for why it doesn't work in-game, this stuff tends to be very specific to a build of the middleware and the various settings used when building the audio. vgmstream and others have a lot of hacks to increase compatibility across variations, but the games themselves usually only work with a single configuration.
by Lakoyo at 12:41 AM EDT on April 10, 2019
Anyone here used this tool? (hcaenc.exe converting wav to hca, hcacc.exe encrypting hca file)

This is the references

The game is PES 2019 (Android): 0000000000D77A01 (14121473)
Sample .hca music file from PES:

How to run command line correctly:
hcacc.exe in.hca out.hca -ot 56 -i1 ?... -i2 ?... -o1 ?... -o2 ?...

Please help me

by Sephirothkefka at 11:42 AM EDT on April 10, 2019
What is it with people and Android versions of PES? Why do they want to change the music of a mediocre game? smh
by thewhitewhale at 1:37 AM EDT on April 14, 2019
For your example it would probably look something like:
hcacc.exe in.hca out.hca -ot 56 -o1 00D77A01 -o2 00000000
by Lakoyo at 8:29 PM EDT on April 14, 2019
Don't I need to fill -i1 ?... -i2 ?...

edited 8:30 PM EDT April 14, 2019
by Lakoyo at 10:47 PM EDT on April 16, 2019
It's not works
Okami HD PC by ponaromixxx at 6:01 AM EDT on April 17, 2019
Help please search key for .adx and for .usm



edited 5:51 AM EDT April 17, 2019
by bnnm at 12:05 PM EDT on July 7, 2019
I updated CRID(.usm)Demux Tool v1.01 a bit.!SRw1ySoY!kV2w2Ax9ual_f-fVNDgpU5NHZjjusmvmmdx2hWKloiE

Main difference is that you can split audio and video separately, and if you don't have the actual key you can pass the 0x20 derived xor to decrypt, which fortunately is very easy to get if audio has some silence (see readme-mod).
Love Live! School Idol Festival ALL STARS by chrrox at 4:39 PM EDT on October 9, 2019
Here is the key for
Love Live! School Idol Festival ALL STARS
ラブライブ!スクールアイドルフェスティバルALL STARS
by sandimy at 7:02 PM EST on November 3, 2019
Can someone help me find the hca key to this game? I tried several methods but failed...

The game's android ID is:
I have uploaded two sample acb files(there're no awb files) and the apk file here.

Thanks in advance.

edited 7:17 PM EST November 3, 2019
by bnnm at 5:22 PM EST on November 6, 2019
Key is 0x0000001C5E0D3154, added to latest vgmstream.
nogifes key by nogi at 3:01 AM EST on November 21, 2019
Hi everyone,
I need some help to find key from this game.
Try a lot but still too hard for me to find key.

The game's android id is "".
Here are .acb(.adx inside) .usme files just extract from the apk.
And a cpk file is game data download from server.!oRoVzIzD!iFmwEphJpVYWyocxB4S0Mw

Any help would be greatly appreciated.
Thank you.

edited 3:18 AM EST November 21, 2019

edited 3:19 AM EST November 21, 2019
0x20 audio decryption by Genoard at 2:20 PM EST on November 26, 2019
Tried to extract audio with CRID(.usm)Demux Tool posted above using 0x20 key method, but inputting in format described in Readme-mod.txt results in "Error: missing options". Tried adding -x to the string but the output still appears encrypted. Am i doing something wrong?
by bnnm at 4:37 PM EST on November 26, 2019
@nogi - I added the ADX/HCA key to the latest vgmstream. Video has no sound tho.

@Genoard - you do need to add -x (I forgot to put in the readme), if output is still bad maybe the key is misaligned? Try posting the video.
by Genoard at 1:05 PM EST on November 27, 2019
@bnnm - here's an archive with video and key.bin i used:
Although i only tried to use this as a test run, i'm actually trying to get audio out of PS4 game's .usm. Don't know if it uses different encryption, but so far none of it's files i've checked contained similar repeating patterns.
by bnnm at 2:24 PM EST on November 27, 2019
@Genoard - the key start is slightly off

should be
7955B752 05559E43 6D554852 79558343
6F550252 37556D43 86552A52 9E557E43

instead of
6F550252 37556D43 86552A52 9E557E43
7955B752 05559E43 6D554852 79558343

While devs scould use one key per file no games have done that so far, should work for all others.
by Genoard at 3:32 PM EST on November 27, 2019
Thank you for correction. Also you probably misunderstood me there. The file i sent is not from the PS4 game in question- i tried to extract it only because i managed to find a 0x20 pattern in this one just to make sure i'm doing the process right. As for the ones i'm interested in- as i mentioned above, did not have any success in finding the key in them. An odd thing i've noticed in a few files- after 0x20 @SFA header the zeroes go for much longer than 0x140 (currently looking at as long as 0x9D0 for example). But, if my understanding is correct, if the audio was encrypted, then after 0x140 the zeroes should have changed to key?

Edit: the file i want to extract audio from:

edited 3:36 PM EST November 27, 2019
by bnnm at 4:35 PM EST on November 27, 2019
Indeed the key is after 0x140. This means, counter-intuitively, the key is just 0x20 0s (it's internally derived to create a final key)

00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000

This kind of .usm is common but can be correctly demuxed using VGMtoolbox's "video demultiplexer" option (, so I didn't think of explaining or simplifying this case.
by nogi at 9:19 PM EST on November 27, 2019
@bnnm Thank you so much!
Success to decode all files.

Previous Page | Next Page
Go to Page 0 1 2 3

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source