Ramblings

ULTRACOMFY's personal homepage.

User Tools

Site Tools


extraction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
extraction [2026/02/20 12:45] ultracomfyextraction [2026/02/23 09:50] (current) ultracomfy
Line 1: Line 1:
-{{page>Templates:Page Incomplete}} 
- 
 ~~NOTOC~~ ~~NOTOC~~
 <WRAP column 18% right> <WRAP column 18% right>
Line 11: Line 9:
 Video game file extraction is the process of ripping assets from a video game's game files. In 2026, video game assets are still stored on the local machine and streamed from the disk. This makes all game assets accessible from the local machines, allowing talented individuals to extract them into their individual parts. Video game file extraction is the process of ripping assets from a video game's game files. In 2026, video game assets are still stored on the local machine and streamed from the disk. This makes all game assets accessible from the local machines, allowing talented individuals to extract them into their individual parts.
  
-====== Process ====== +//This page is a documentation on extraction-related concepts and not a tutorial on how to extract assets from video games. For thatsee [[Extraction Tutorial]].//
-Some games store their assets plainly, ietheir texturessounds and many other things are just literal picture and sound files. In this case, "extraction" is as simple as copying the folder's contents elsewhere. [[DEFCON (Game)]] is one such case.+
  
-===== Container Files ===== +====== Video Game Files ====== 
-However, other games, especially ones that were made using one of the popular [[video game engine]]s like [[Unity]] or - shudders - [[Unreal]] don't make it quite as easyWhen baking, these games pack all the assets into engine-specific [[container file]]s. For Unitythese are typically found in the game's "Data" folder with .resource endings. Unreal games come with .pak files in the "Shipping" folder.+Video games store their assets in bits and bytes on a computer's hard drive. If you hear a sound or see a particular image inside a video gameit is almost certain that this is stored as a file somewhere on your computer((I say that because there can be some internet streaming which can bypass the hard drive entirely))The task of a user wishing to extract these assets is to know where to look and to understand some fundamental video game conceptsespecially in regards to file and file formats.
  
-These files are a lot like .rar and .zip files. You cannot open them directlybut they can be extracted with tools. For .rar/.zip you would use one of the many tools like WinRAR, 7Zip or such, whereas with Unity'files you will need [[AssetStudio]]. Like WinRAR lets you load .zip filesAssetStudio lets you load the .resource files, view their contents and extract assets.+===== Plain Files ===== 
 +Some games store their assets plainly, ietheir textures, sounds and many other things are just literal picture and sound files. In this case"extraction" is as simple as copying the folder'contents elsewhere. [[DEFCON (Game)]] is one such caseAs a "dataminer"it's useful to know what is a plain file and what isn'tMore on that in a bit.
  
-Unreal is a lot more proprietary, so it is a lot harder to crack. Unreal is constantly changed and updated so that tool creators have to constantly keep up with Unreal's changes on a shorter timeframe. This leads to tools quickly becoming outdated, which itself leads to many different tools in different stages of production that are compatible with different versions of Unreal to varying degrees. SeriouslyI have like four different tools for Unreal games because of that. The standard method is command line tool called "QuickBMS". On its own QuickBMS is basically just a "launcher" for all kinds of extraction scriptsa list of which can be found [[https://aluigi.altervista.org/quickbms.htm|here]]. When QuickBMS is run, it will ask for a script to run. In our case we would use the Unreal Tournament 4 script. It will then ask for the input files and for an output locationIn many cases, games are AES encrypted - an encryption layer on top of the packing method that Unreal already employs - if it asks for an AES Key, that has to be supplied as well. These are game-specific, not computer-specific, so there are resources online with comprehensive lists for a lot of Unity games with keys that work on all machines.+===== Video Game Engines ===== 
 +While it is possible to build games from text file - and is in fact how the earliest video games were made - that method is an incredibly tedious and painful endeavor. This is particularly notable when you consider that much of the legwork in video game development is similar to each otherand building completely new systems for //2D or 3D renderer, physics engine, audio engine, scripting, animation, artificial intelligencenetworking, streaming, memory management, threads, localization support, scene graph, and cinematics//((Copied directly from Wikipedia)) every time you make a game is expensive and wastefulgame engine provides basic structures for all of these which lets developers focus more on actually making the game.
  
-Once setQuickBMS with the script will get to work and extract.+===== Engine and Middleware Files ===== 
 +Video game engines and plugins tend to use their owncustom file formats for things. For example, a very popular middleware audio plugin called [[WWise]] uses the file format WEM (amongst others), in place of things like MP3 or WAV, for audio. The technical reason for this is that creating your own audio format gives you full control over the features it should have. Your own audio format can be programmed to support audio layering within a single file, to contain data about the context in which it is played, to contain data about the programming [keyword 'Event Data'], other instructions to the audio or the game engine and all kinds of other information and interfaces to the audio that aren't present in more standardized formats like MP3.
  
-===== Middleware Files ===== +The same applies to the game engine's files. They contain all kinds of information for the renderer, the physics engine, the audio engine, scripting, animation, AI, networking and so on and so forth. It'stored directly within the file. All of this is cool for developer, but it means that your audio player won't be able to decode these files anymoreIt will encounter data in the file it doesn't know what to do with. This will typically require //conversion//.
-Especially when it comes to stuff like game audio (which is what I am mostly interested in)games like to use third party software to help them with the development of the game'audio implementation. It's a bit like a video game engine but for audio, and it's on top of the video gameSo when you run these games, you will often also be running a WWise session that tells the game what to do with its audioSoftware like WWise have their own specialized formats which, in some cases, are also their own type of container files. Classic examples here are .wem and .bank files. Wem is an audio format, while .bank is a "soundbank", ie. a file containing multiple, individual audio files.+
  
-If you are new to this, you are probably looking for a .wav or .mp3 fileswhich you consider proper audio files (not at least because most audio players only understand these and similar file formats). In this casefiles like .wem need to still be converted, and .bank files need to be extractedThe exact approach here differs based on the exact type of file you're looking at.+This is why it's useful to know what is a plain file and what isn't. Understanding the type of file you're looking at helps you determine the correct next stepThe OGG formatas you will find it in [[Minecraft]]'s assets for example, is not a proprietary format that requires hours of googling to find the right tool to extract from it. It is a standardized audio format that ~~many~~ a considerable share of audio players already support by default orif not, can be converted easilyIt is common inside of video games due to its file size to audio quality ratio but not often seen in the wild.
  
-For examplethere are tools out there that are specially designed to convert .wem files. They come with an input and output folder and basically all you do is running batch file to convert wem files you pasted into the input folder. +===== Container Files ===== 
- +When nearing completiongames made in game engines need to be "baked" or "cooked"That means compiling the game so that it no longer is a project file in a developer's game engine but rather a finished product that can be played by players. During that process, many game engines take all the game assets, index them and store them in [[Container File|Container Files]] from where they will be loaded when the game is played by player. These files are essentially just a bundle of many filescomparable to ZIP or RAR archivesLike ZIP or RAR archives, they cannot be loaded directly and require specialized software to read.
-A more comprehensive solution would be to use [[vgmstream]], which comes with direct decoding capability for vast array of video game sound formats, including most middleware and proprietary sound formats for platforms like Playstation or Nintendo consolesbut vastly exceeding just this. With vgmstream you can listen to .wem or .bank files directly without even needing to convert. But obviously it still has full conversion capability and lets you convert sounds from its home format to any other format vgmstream supports, including .wav and .mp3.+
  
-vgmstream is technically a command line tool, but also comes as a plugin for [[foobar2000]] and another audio program I don't know the name of off the top of my headFoobar2000 already provides an immensely useful graphical interface for managing audio in all kinds of way, including playback, conversion, batch renaming, tagging, playlisting and so so much moreThe vgmstream plugin for foobar extends it by adding decoding capabilities for a sea of video game audio  types which also means that it can easily convert between all of them (or just listen to them if you want). I've been surprised multiple times in the past that I was able to extract some weird, proprietary audio format from some game I liked, chucked it into foobar and it literally just played the file as if that was completely normal. Hell, you can even drop in .zip or .rar files, and if those archives contain readable audio then foobar //will// play it, no prompting for extraction. At this point it's genuinely more difficult to find a piece of audio that it //cannot// read, decode, playback and convert.+Middleware does this as well. BANK files are container files generated by [[FMOD]] that contain multiple audio files (typically)Opening them requires knowledge about how those files are structuredTo see all of this in action, you should read [[Extraction Tutorial]].
extraction.1771591526.txt.gz · Last modified: by ultracomfy

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki