ADX

From Amicitia Wiki
ADX Format
Purpose Sound File
Games Persona 3
Persona 4
Persona 3 Portable
Persona 5
Developer CRI Middleware

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.

Tools

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

Encryption

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:

Region Dec. HEX
JP 10882899 00000000 00A60F53
CN 29915170 00000000 01C87822
EFIGS 22759300 00000000 015B4784

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:
cd "Location of Folder" Eg. cd "C:\Users\Joker\Downloads\VGAudioCli\net451_standalone"
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.

cmd /c "for %f in (*.adx) do vgaudiocli.exe  %~nf.adx %~nf_dec.adx --keycode 22759300"

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 use Winamp Tutorial to convert them to .wav.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.