ADX

ADX is a sound format used in Persona 3, Persona 4 and Persona 5. It was developed by CRI Middleware and first used in 1996 for Sega Saturn titles. ADX can be found in CVM, ACX, and AFS archives. It is succeeded by HCA. Usage ranges from non-looping sound effects and voices to looping background music. For proper conversion and playback in-game, you may exceed the sample rate for a higher sound quality of the original files for your game (At least for P3/4), but here is the average ones: 24000 Hz on PS2, 22050 Hz on PSP, or 44100 Hz in either version of P5.

AtomENCD
AtomENCD is a GUI interface for adxencd by DuIslingr that provides all the same features, but with a user friendly appearance. You can download it from here. Note that you must include adxencd.exe to use this program. :)

adxencd.exe
Commandline tool ADX Audio Decompression Tool v4.61 can be used to encode or decode ADX files. Using samples, you can even set loop points for a BGM track. Download adxencd.exe here.

PES Sound File Converter
PES v1.8 can also batch convert WAV files to non-looping ADX and back. You can download PES here.

XMPlay
XMPlay is a third party music player with a simple UI which allows high quality .ADX playback and encoding. You are able to encode .ADX files into FLAC, MP3, OGG, and more. However, converting to .ADX is not possible using XMPlay. Download vanilla (No plugins) XMPlay here, or download the all-in one folder (Contains plugins which allow .ADX playback and encoding) here.

VLC Media Player
VLC media player can play ADX files.

VGMGUI
VGMGUI is a graphic interface of VGMStream which already has loads of plug ins (foobar2000, Winamp, etc) but VGMGUI is made especially for VGMStream. This program allows you to get metadata from files, specifiy loop count, fade time, fade delay, play files, mange list of files, search files, and convert files to wav. The fourm post is here with a download

Persona 5 Royal
All ADX files found in Persona 5 Royal are encrypted with a special key. To decrypt them you can use the following Powershell script (paired with vgaudiocli): cmd /c "for %f in (*.adx) do vgaudiocli.exe %~nf.adx %~nf_dec.adx --keycode [decryption key (Dec.)]" $dec_adxs = Get-ChildItem .\*dec.adx* -recurse foreach ($dec_adx in $dec_adxs){ $stream = [System.IO.File]::ReadAllBytes($dec_adx) $stream[19] = 0x00 [System.IO.File]::WriteAllBytes($dec_adx, $stream) }

The decryption keys are region-specific:

Practical Example
I will be using the EFIGS region (EU/US) Dec. during this example.


 * 1) First, before anything we need .adx files. If you are extracting audio from .awb/.abc files, we need to convert them to .adx.
 * 2) We can use SonicAudioTools for that. Copy the .awb/.abc files to the SonicAudioTools folder and drag each .abc file into AcbEditor.exe.
 * 3) This will make a new folder for each .awb file. Copy all the new .adx files and paste them in the folder where VGAudioCli.exe is located.

Now, Open PowerShell. We need to set the folder the VGAudioCli.exe is in. We do that by typing the following: Press enter. Now we can start copying and pasting line by line.


 * Make sure the .adx files are in the same folder as the VGAudioCli.exe

Now copy and paste the following line:


 * Again I am using the EFIGS key in this example. If you own the JP or CN region of the game use those Dec. keys. Not the Hex.

Press enter. You will notice new _dec files in the folder. Don't open them we are not done.

Next  highlight  and  copy everything  in this box: $dec_adxs = Get-ChildItem .\*dec.adx* -recurse foreach ($dec_adx in $dec_adxs){ $stream = [System.IO.File]::ReadAllBytes($dec_adx) $stream[19] = 0x00 [System.IO.File]::WriteAllBytes($dec_adx, $stream) } Paste it and click enter. It will execute all at once without manually copying line by line.

Congratulations! There are now multiple _dec files. These are the decrypted ADX files.

Now all you need to do is either convert the new _dec files in ffmpeg or using Winamp [Tutorial] to convert them to .wav