Git Product home page Git Product logo

hellextractor's People

Contributors

cosmicdreamsofcode avatar lat9nq avatar thepotato97 avatar xaymar avatar xypwn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

hellextractor's Issues

Migrate away from Wavefront OBJ to support full mesh information

The current export format, Wavefront OBJ, is extremely limited:

  • Only a single normal layer.
  • Only a single texture coordinate layer.
  • No bones.
  • No weights.
  • No supported for vertex colors.

Ideally we should switch to an easier to work with format. glTF seems to be a reasonable option.

[Feature]: Add converter for .wwise_dep

Describe the Feature

This file appears to only contain c-style null terminated strings.

uint32_t __unk;
struct {
  uint32_t length;
  char text[length];
}; // So far, always only one.

Possibly only used to mark the .wwise_bank as used?

Permutations for '-r,--rename' are in random order

Yeah, see title. unordered_set does not guarantee the order of inserted elements, it just means that it doesn't do the added sorting. So the element order is entirely random, which I guess is faster, but not what we want.

[Feature]: Add converter for .bik files

Describe the Feature

For what it's worth, we've never seen the first 16 bytes change. They probably have no meaning for us at all, so just strip them off.

[Help]: Cannot extract files (and cannot run hellextractor.exe)

Describe the Bug

C:\Users\User 1\Hellextractor>hellextractor.exe
'hellextractor.exe' is not recognized as an internal or external command,
operable program or batch file.

Did all Building steps, but receiving this stuff everytime.

And, because of it:

Executing: extract -o ./output "c:\program files (x86)\steam\steamapps\common\Helldivers 2\data"
Start-Process : This command cannot be run due to the error: The system cannot find the file specified.
At C:\Users\User 1\Hellextractor\hellextractor.ps1:113 char:5

  • Start-Process -FilePath "./hellextractor.exe" -ArgumentList $comm ...
    
  • ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
    • FullyQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand

Last known working version

No response

Reversed exploded package file header

Seems that bitsquid (stingray) partially moved to 64bit offsets and header includes some clues for read buffers
E.g. aligned offsets seems to suggest that during load they allocate full buffer size or smth like that.
Here's file header as I see it:

    struct file_header_t {
        le hash::hash_name name;
        le hash::file_type type;
        
        // aligned to alignment
        le u64 offset;
        // unaligned raw aux buffer
        le u64 stream_offset;
        // aligned to gpu_alignment
        le u64 gpu_offset;
        
        // aligned to 0x200
        // seems to be an offset of read buffer that have size of 0x200 per element
        le u64 buffer_offset;
        // aligned to 0x600
        // seems to be an offset of read buffer that have size of 0x600 per element
        le u64 gpu_buffer_offset;
        
        le u32 size;
        le u32 stream_size;
        le u32 gpu_stream_size;
        
        le u32 alignment;
        le u32 gpu_alignment;
        le u32 index;
        
        file_t<size> inline_file @ offset;
    };

[Feature]: Add converter for .wwise_bank

Describe the Feature

Common structure so far

uint32_t __unk;
uint32_t offset;
uint64_t dep_name_hash;
... actual data ...
... seek(offset) ...
uint32_t __unk;
uint32_t __unk;
uint32_t __unk;
uint32_t __unk;

Add converter for .texture files

With 2023178 most of the format of the .texture files was figured out. We know how to read the file and even what it does, and should be able to export it completely without errors.

The header (0xC0 bytes) simply tells us how we could stream mip levels in the texture file, so that we use less memory overall. This is why the header for the texture itself is in the main file, but the data is in the stream file. As for the data in the gpu_resources file, that is simply an exact clone of the data in stream, usually starting at mip level 2 (1/4th resolution).

As far as it seems, all textures are .DDS files. There are references to .TGA files, however I have yet to find an actual tga file. Might be useful to inspect the first 4 bytes and decide based on that.

[Feature]: Add converter for .wwise_stream

Describe the Feature

As far as files go, it appears as if these files have a mostly common 12 byte header.

uint32_t __unk;
uint32_t __unk;
uint32_t offset;
... seek(offset) ...
uint32_t __unk;
uint32_t __unk;
uint32_t __unk;

[Feature]: Bik video to mp4 convertion using ffmpeg

Describe the Feature

If this is out of scope for the Hellextractor, please remove this request.

I did a very simple test with a bik file (b2b8b34553f957cb.bik) from the extraction using a very basic ffmpeg command line command using ffmpeg essentials build and command ".\ffmpeg.exe -i b2b8b34553f957cb.bik b2b8b34553f957cb.mp4", which resulted in an encoded mp4 with the video and sound from the bik file.

If it is of interest to make the exports from Hellextractor as user friendly as possible it could be interesting to implement ffmpeg into the tool, possibly with a video file format flag (mp4, mkv etc).

Some bik video files are without sound, so not sure if those have sound separated out due to them being played back separately in engine.

[Feature]: Auto decrypt wwise_bank headers

Describe the Feature

Removes the need for people to manually enter a xorpad.bin for tools like wwiser. Bank headers (BKHD chunks) are "encrypted" from 0x8-0x10 with this key: ACBC1192387010A3 that is xor'd with the data in the bank to get the proper info for tools to work on them.
Example: Init.bnk (9ba626afa44a3aa3: content/audio/Init.bnk) Before: 20BC11921B4AD6F3 After: 8C000000233AC650

[Help]: Windows Defender identifies hellextractor as virus

Windows Defender identifies hellextractor.exe as Trojan:Win32/Wacatac.B!ml
File: hellextractor.zip->Hellextractor.exe

It would be good to prevent using files or conversions that makes this error happen, as it doesn't make the file seem trustworthy.

[Feature]: Automated builds for Linux targets

Describe the Feature

With the recent few commits, Hellextractor now works on Linux with seemingly no issues. Might be useful to have a linux binary as well now. Flatpak seems to be a decent option here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.