USM Video

From XentaxWiki
Revision as of 21:36, 2 May 2022 by Ikskoks (talk | contribs) (USM Keys)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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

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