DOOM Eternal
0 of 0

File information

Last updated

Original upload

Created by

SamPT and PowerBall253

Uploaded by

xSamPT

Virus scan

Safe to use

Tags for this mod

Documentation

Readme

View as plain text

SAMUEL

File Extraction tool for DOOM Eternal.

Version: 1.0
Release: August 23, 2021
Authors: SamPT and PowerBall253

Source code available at https://github.com/brongo/SAMUEL.

---


# SAMUEL v1.0

SAMUEL is a tool for extracting assets from DOOM Eternal.

It is cross-platform, open-source, and features an easy-to-use graphical interface.

## What this tool is for:

1. Export .decl files.
2. Export full-size images for use in texture modding (in .dds format).
3. **Experimental:** export .lwo and .md6mesh files in their native formats (to allow for eventual reverse-engineering).

Files will be extracted to the "exports" folder, which is in the same location as SAMUEL.exe.

## SAMUEL vs. VEGA

This will obviously get compared to VEGA (the other asset extraction tool), so its probably necessary to explain the differences here:

### Differences from VEGA:

1. SAMUEL is cross-platform and open-source. It works on Windows, Linux, MacOS.
2. Supports extracting of .decl files.
3. Successfully extracts a few types of textures that VEGA doesn't support.
4. Supports extracting non-streamed or modded textures - texture modders can now recover their source images.
5. Has improved search functionality - can search with multiple keywords separated by spaces.
6. Extracts "normals" in RG format (yellow-greenish color) used by DOOM Eternal, which should reduce steps needed to modify them.
7. Image files are exported using their full name with "$" modifiers (important for custom assets).
8. Files are extracted to their full path used in the game (e.g. "gameresources_patch1/art/tile/etc" instead of just "images").

### Limitations:

SAMUEL exports images in .DDS format only.

SAMUEL is not yet capable of exporting models (.lwo/.md6 files) for use in Substance Painter or Blender. However, it is now possible to export these files in their *native* formats for the very first time. This is an important step and it makes it possible for us to start reverse-engineering the format. Once the model format is better understood, we can add export to .obj/.fbx features.

*Texture modders will generally prefer VEGA until we can replicate this feature.*

## Credits:

* SamPT ([@brongo](https://github.com/brongo)) - Primary author/developer of the SAMUEL tool. First person to fully reverse-engineer _and disclose_ the Doom Eternal .streamdb file format, .resources format, image file formats, .lwo/.md6mesh header formats, and discover how to export the files.
* [@Powerball253](https://github.com/PowerBall253) - Many HUGE contributions in the form of code & testing. Responsible for Linux/MacOS compatibility, packageMapSpec parser, and figuring out Qt multithreading. Also assisted with reverse-engineering of Doom Eternal "TGA" (bimage) header formats.
* [DOOM 2016+ Modding Discord](https://discord.gg/ymRvQaU) for support and testing, and encouraging future developments.


## License:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the SAMUEL program. If not, see .


## Building from Source:

There is no need to build/compile this program from source code. Simply download and use the included binaries for Windows or Linux (under "Releases").

If you *want* to build/compile from source, you will need a copy of the [Qt development library](https://www.qt.io/). The SAMUEL program uses Qt for its cross-platform GUI features. Please note that usage of Qt is subject to a separate licensing agreement. SAMUEL uses Qt under the [Qt for Open-Source Development](https://www.qt.io/download-open-source). The Qt source code can be acquired here: https://www.qt.io/offline-installers.

SAMUEL for Windows is tested and compiled using a static build of Qt version 6.1.2.

## Contributing:

Contributions are welcomed. There is lots of room for code cleanup/improvement. All issues and pull requests will be considered. Please note I have limited time, so my response may not be immediate.