USM Video: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| (159 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
=== Format Specifications === | === Format Specifications === | ||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width: | <div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:1000px; overflow:auto;"> | ||
<pre> | <pre> | ||
// USM video file format | // USM video file format | ||
| Line 15: | Line 15: | ||
// big endian | // big endian | ||
num_of_chunks * | |||
{ | |||
4 bytes (char) - chunk signature // "CRID" or "@SFV" or "@SFA" | |||
4 bytes (uint32) - chunk size | |||
chunk_data | |||
{ | |||
1 byte - unknown // always 0? | |||
1 byte (uint8) - payload offset | |||
2 bytes (uint16) - padding size | |||
1 byte (uint8) - channel number | |||
2 bytes - unknown | |||
1 byte (uint8) - payload type // 0 - stream (audio/video binary data) | |||
// 1 - header (media metadata about a video or audio track) | |||
// 2 - section end (info about end of the chunk data) | |||
// 3 - seek (data about the seek positions of a video track) | |||
4 bytes ( | 4 bytes (uint32) - frame time // used for "stream" chunks, 0 for other chunks | ||
4 bytes (uint32) - frame rate // for audio chunk always 2997 | |||
// for stream chunk 100*stream_rate | |||
// for other chunks always 30 | |||
8 bytes - unknown | |||
x bytes - payload // e.g. "@UTF" chunk | |||
x bytes - padding | |||
} | |||
} | |||
} | |||
</pre> | </pre> | ||
</div> | </div> | ||
| Line 47: | Line 51: | ||
=== Notes and Comments === | === Notes and Comments === | ||
* Some *.USM files are encrypted using a | * Some *.USM files are encrypted using a 8-byte '''XOR''' key (like in [[HCA Audio|HCA files]]) | ||
* USM keys are often the same as HCA keys (not always) | |||
* Alternative names for USM files are '''Sofdec2''' or '''CRI Movie 2'''. | |||
* Older version of this format is [[Sofdec Video SFD|SFD Video]]. | |||
=== Games === | === Games === | ||
List of games using this file format: | List of games using this file format: | ||
* Genshin Impact (*.USM) (encrypted | * 22/7 Ongaku no Jikan (Android) (*.USM) (encrypted) | ||
* NEO: The World Ends with You (*.USM) (encrypted?) | * Ares Chronicles (PC) (*.USM) | ||
* Batman: Arkham Knight | |||
* Crysis 2 | |||
* Deus EX Human Revolution | |||
* Digimon Story: Cyber Sleuth (PC) | |||
* Genshin Impact (*.USM) (encrypted) | |||
* Madoka Magica Pachislot (*.USM) | |||
* NEO: The World Ends with You (*.USM) (encrypted, more info [https://forum.xentax.com/viewtopic.php?p=178793#p178793 here]) | |||
* Okami HD (*.USM) (encrypted, more info [https://github.com/bnnm/vgmstream/wiki/usmkey here] and [https://steamcommunity.com/groups/vidsquish/discussions/0/3003299213531273149/ here] and [https://hcs64.com/mboard/forum.php?showthread=22828&showpage=32 here]) | |||
* Orcs must die! | |||
* Persona 5 Royal (*.USM) (encrypted, more info [https://shrinefox.com/forum/viewtopic.php?f=29&t=254 here]) | * Persona 5 Royal (*.USM) (encrypted, more info [https://shrinefox.com/forum/viewtopic.php?f=29&t=254 here]) | ||
* Princess Connect Re:Dive (Android) (*.USM) (no encryption) | |||
* Spider-Man: Shattered Dimensions (Xbox 360) | |||
* Tekken 7 (PC) (*.USM) (encrypted, more info [https://hcs64.com/mboard/forum.php?showthread=22828&showpage=23 here]) | |||
* Touhou Cannonball (*.MV) (encrypted?) | |||
* THE ALCHEMIST CODE (encrypted) | |||
* The Witcher 2 (PC) (*.USM) | * The Witcher 2 (PC) (*.USM) | ||
* The Witcher 3: Wild Hunt (PC) (*.USM) | * The Witcher 3: Wild Hunt (PC) (*.USM) | ||
* Wonder Gravity (Android) | |||
=== Compatible Programs === | === Compatible Programs === | ||
| Line 62: | Line 84: | ||
* VGMToolbox | * VGMToolbox | ||
* FFmpeg | * FFmpeg | ||
* [https://mega.nz/file/TJQniYwL#Dp_D-KvzVlVgTwqzVJc1n3vslBZsHdy8pdDqzhRtsOI CRID Demux Tool (CRID USM extractor)] (+ source code) / [https://cdn.discordapp.com/attachments/448202199852646431/708452992331939880/CRID.usmDemux_Tool_v1.02-mod.7z mirror1] | * [https://mega.nz/file/TJQniYwL#Dp_D-KvzVlVgTwqzVJc1n3vslBZsHdy8pdDqzhRtsOI CRID Demux Tool (CRID USM extractor / crid_mod)] (+ source code) / [https://cdn.discordapp.com/attachments/448202199852646431/708452992331939880/CRID.usmDemux_Tool_v1.02-mod.7z mirror1] / [https://zenhax.com/download/file.php?id=9999 mirror2] | ||
* [https://github.com/Rikux3/UsmToolkit UsmToolkit] | * [https://github.com/Rikux3/UsmToolkit UsmToolkit] | ||
* [https://github.com/esterTion/UsmDemuxer UsmDemuxer] | * [https://github.com/esterTion/UsmDemuxer UsmDemuxer] | ||
* [http://hcs64.com/files/utf_tab07b3.zip utf_tab] ([https://github.com/medievalanubis/laughing-engine + source code]) | * [http://hcs64.com/files/utf_tab07b3.zip utf_tab] ([https://github.com/medievalanubis/laughing-engine + source code]) | ||
* [https://github.com/donmai-me/WannaCRI WannaCRI] (+ source code) | |||
=== USM Keys === | |||
Keys listed below are shared '''for educational purposes only'''.<br> | |||
Please don't use them to steal assets from games. | |||
{| class="wikitable sortable" | |||
|- | |||
! Game Title !! Key (HEX) !! Key (ASCII) | |||
|- | |||
| 22/7 Ongaku no Jikan (Android) || 00000000 013416BA || n/a | |||
|- | |||
| Ares Chronicles (PC) || unknown || unknown | |||
|- | |||
| Digimon Story: Cyber Sleuth (PC) || 283553DC E3FD5FB9 || n/a | |||
|- | |||
| Hortensia Saga (Android) || 00000000 01395C51 || n/a | |||
|- | |||
| NEO: The World Ends With You (PC) || 00BD86C0 EE8C7342 || n/a | |||
|- | |||
| NEO: The World Ends With You v1.01 (PC) || unknown || n/a | |||
|- | |||
| Okami HD (PC) || 006B6172 61616765 || karaage | |||
|- | |||
| Persona 5 Royal (CN) || 00000000 01C87822 || n/a | |||
|- | |||
| Persona 5 Royal (JP) || 00000000 00A67D71 || n/a | |||
|- | |||
| Persona 5 Royal (EFIGS) || 00000000 035B6784 || n/a | |||
|- | |||
| Tekken 7 (PC) || 00A1CACC C4CF453D || n/a | |||
|- | |||
| THE ALCHEMIST CODE (Android) || 00000497 222AAA84 || n/a | |||
|- | |||
| Wonder Gravity (Android) || 006CCC56 9EB1668D || n/a | |||
|- | |||
|} | |||
=== Examples === | |||
* Demuxing USM files from "Okami HD" (PC version) using crid_mod | |||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | |||
<pre> | |||
crid_mod.exe -b 006B6172 -a 61616765 -v -x -i prologue.usm | |||
</pre> | |||
</div> | |||
* Demuxing USM files from "Tekken 7" (PC version) using crid_mod | |||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | |||
<pre> | |||
crid_mod.exe -b 00A1CACC -a C4CF453D -v -x -i MainMenu_loop.usm | |||
</pre> | |||
</div> | |||
* Demuxing USM files from "Persona 5 Royal (EFIGS)" using crid_mod | |||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | |||
<pre> | |||
crid_mod.exe -b 00000000 -a 035B6784 -v -x -i mov000.usm | |||
</pre> | |||
</div> | |||
=== Getting keys from Unity games === | |||
(This method doesn't always work - keep that in mind) <br> | |||
1. Download '''AssetStudio'''. Load whole "_Data" folder in AssetStudio. <br> | |||
2. Find '''CriWareInitializer''' MonoBehaviour on assets list in AssetStudio window. <br> | |||
3. Go to "decrypterConfig" section in the CriWareInitializer asset and look for "key" value there. <br> | |||
=== See Also === | === See Also === | ||
| Line 72: | Line 181: | ||
* [https://amicitia.miraheze.org/wiki/USM USM modding] | * [https://amicitia.miraheze.org/wiki/USM USM modding] | ||
* [https://listed.to/@donmai/24921/criware-s-usm-format-part-1 USM file format] | * [https://listed.to/@donmai/24921/criware-s-usm-format-part-1 USM file format] | ||
* [https://github.com/bnnm/vgmstream/wiki/usmkey Recovering USM keys - Tutorial] | |||
* [https://blog.touuki.com/archives/214 Getting keys from Unity games - part 1 (chineese tutorial)] | |||
* [https://blog.touuki.com/archives/287 Getting keys from Unity games - part 2 (chineese tutorial)] | |||
* [[HCA Audio|HCA Audio file format]] | |||
* [https://github.com/vgmstream/vgmstream/blob/master/src/meta/hca_keys.h hca_keys.h] | |||
* [https://github.com/vgmstream/vgmstream/blob/master/src/meta/adx_keys.h adx_keys.h] | |||
<br/><br> | <br/><br> | ||
[[Category:Complete | [[Category:Complete Almost Done|USM Video]] | ||
[[Category:Platform PC|USM Video]] | [[Category:Platform PC|USM Video]] | ||
[[Category:CE Encrypted|USM Video]] | [[Category:CE Encrypted|USM Video]] | ||
| Line 81: | Line 196: | ||
[[Category:Extension_usm | Extension: usm]] | [[Category:Extension_usm | Extension: usm]] | ||
[[Category:BMS_None | BMS: None]] | [[Category:BMS_None | BMS: None]] | ||
[[Category:XOR encryption]] | |||
[[Category:File Format]] | [[Category:File Format]] | ||
Latest revision as of 19:36, 2 May 2022
Back to index | Edit this page
USM
- Format Type : Video
- Endian Order : Big Endian
- Signature : CRID
Format Specifications
// USM video file format
// big endian
num_of_chunks *
{
4 bytes (char) - chunk signature // "CRID" or "@SFV" or "@SFA"
4 bytes (uint32) - chunk size
chunk_data
{
1 byte - unknown // always 0?
1 byte (uint8) - payload offset
2 bytes (uint16) - padding size
1 byte (uint8) - channel number
2 bytes - unknown
1 byte (uint8) - payload type // 0 - stream (audio/video binary data)
// 1 - header (media metadata about a video or audio track)
// 2 - section end (info about end of the chunk data)
// 3 - seek (data about the seek positions of a video track)
4 bytes (uint32) - frame time // used for "stream" chunks, 0 for other chunks
4 bytes (uint32) - frame rate // for audio chunk always 2997
// for stream chunk 100*stream_rate
// for other chunks always 30
8 bytes - unknown
x bytes - payload // e.g. "@UTF" chunk
x bytes - padding
}
}
MultiEx BMS Script
Not written yet.
Notes and Comments
- Some *.USM files are encrypted using a 8-byte XOR key (like in HCA files)
- USM keys are often the same as HCA keys (not always)
- Alternative names for USM files are Sofdec2 or CRI Movie 2.
- Older version of this format is SFD Video.
Games
List of games using this file format:
- 22/7 Ongaku no Jikan (Android) (*.USM) (encrypted)
- Ares Chronicles (PC) (*.USM)
- Batman: Arkham Knight
- Crysis 2
- Deus EX Human Revolution
- Digimon Story: Cyber Sleuth (PC)
- Genshin Impact (*.USM) (encrypted)
- Madoka Magica Pachislot (*.USM)
- NEO: The World Ends with You (*.USM) (encrypted, more info here)
- Okami HD (*.USM) (encrypted, more info here and here and here)
- Orcs must die!
- Persona 5 Royal (*.USM) (encrypted, more info here)
- Princess Connect Re:Dive (Android) (*.USM) (no encryption)
- Spider-Man: Shattered Dimensions (Xbox 360)
- Tekken 7 (PC) (*.USM) (encrypted, more info here)
- Touhou Cannonball (*.MV) (encrypted?)
- THE ALCHEMIST CODE (encrypted)
- The Witcher 2 (PC) (*.USM)
- The Witcher 3: Wild Hunt (PC) (*.USM)
- Wonder Gravity (Android)
Compatible Programs
- Scaleform_VideoEncoder.zip / mirror1
- VGMToolbox
- FFmpeg
- CRID Demux Tool (CRID USM extractor / crid_mod) (+ source code) / mirror1 / mirror2
- UsmToolkit
- UsmDemuxer
- utf_tab (+ source code)
- WannaCRI (+ source code)
USM Keys
Keys listed below are shared for educational purposes only.
Please don't use them to steal assets from games.
| Game Title | Key (HEX) | Key (ASCII) |
|---|---|---|
| 22/7 Ongaku no Jikan (Android) | 00000000 013416BA | n/a |
| Ares Chronicles (PC) | unknown | unknown |
| Digimon Story: Cyber Sleuth (PC) | 283553DC E3FD5FB9 | n/a |
| Hortensia Saga (Android) | 00000000 01395C51 | n/a |
| NEO: The World Ends With You (PC) | 00BD86C0 EE8C7342 | n/a |
| NEO: The World Ends With You v1.01 (PC) | unknown | n/a |
| Okami HD (PC) | 006B6172 61616765 | karaage |
| Persona 5 Royal (CN) | 00000000 01C87822 | n/a |
| Persona 5 Royal (JP) | 00000000 00A67D71 | n/a |
| Persona 5 Royal (EFIGS) | 00000000 035B6784 | n/a |
| Tekken 7 (PC) | 00A1CACC C4CF453D | n/a |
| THE ALCHEMIST CODE (Android) | 00000497 222AAA84 | n/a |
| Wonder Gravity (Android) | 006CCC56 9EB1668D | n/a |
Examples
- Demuxing USM files from "Okami HD" (PC version) using crid_mod
crid_mod.exe -b 006B6172 -a 61616765 -v -x -i prologue.usm
- Demuxing USM files from "Tekken 7" (PC version) using crid_mod
crid_mod.exe -b 00A1CACC -a C4CF453D -v -x -i MainMenu_loop.usm
- Demuxing USM files from "Persona 5 Royal (EFIGS)" using crid_mod
crid_mod.exe -b 00000000 -a 035B6784 -v -x -i mov000.usm
Getting keys from Unity games
(This method doesn't always work - keep that in mind)
1. Download AssetStudio. Load whole "_Data" folder in AssetStudio.
2. Find CriWareInitializer MonoBehaviour on assets list in AssetStudio window.
3. Go to "decrypterConfig" section in the CriWareInitializer asset and look for "key" value there.
See Also
- USM description
- USM modding
- USM file format
- Recovering USM keys - Tutorial
- Getting keys from Unity games - part 1 (chineese tutorial)
- Getting keys from Unity games - part 2 (chineese tutorial)
- HCA Audio file format
- hca_keys.h
- adx_keys.h