From 4e82fd86bf87a5aa4deaf97bf0454f23d9cdbd97 Mon Sep 17 00:00:00 2001 From: Michael Fabian 'Xaymar' Dirks Date: Thu, 29 Feb 2024 13:44:17 +0100 Subject: [PATCH] Fix misunderstood value in .wwise_stream/.wwise_bank header The value is not actually an offset to a footer, but the length of the actual data. This fixes corrupted .wem/.bnk file exports --- extra/vgmstream/decode.bat | 3 ++- source/hd2_wwise_bank.cpp | 3 +-- source/hd2_wwise_stream.cpp | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/extra/vgmstream/decode.bat b/extra/vgmstream/decode.bat index 9759476..6a60670 100644 --- a/extra/vgmstream/decode.bat +++ b/extra/vgmstream/decode.bat @@ -8,6 +8,7 @@ SET "SCRIPTROOT=%~dp0" CALL :INDEX "%~1" SHIFT /1 IF "%~n1" == "" ( + PAUSE GOTO :EOF ) GOTO :FILELOOP @@ -49,7 +50,7 @@ EXIT /B 0 :TRANSCODE ECHO %~dpn1 - "%~dp0\vgmstream-cli.exe" -o "%~dpn1.wav" "%~1" + "%~dp0\vgmstream-cli.exe" -o "%SCRIPTROOT%\%~n1.wav" "%~1" if ERRORLEVEL 1 ( PAUSE ) diff --git a/source/hd2_wwise_bank.cpp b/source/hd2_wwise_bank.cpp index 9832cd4..bd2458e 100644 --- a/source/hd2_wwise_bank.cpp +++ b/source/hd2_wwise_bank.cpp @@ -15,9 +15,8 @@ helldivers2::wwise_bank::~wwise_bank() {} helldivers2::wwise_bank::wwise_bank(helldivers2::data::meta_t meta) : _meta(meta) { _header = reinterpret_cast(_meta.main); - _footer = reinterpret_cast(reinterpret_cast(_meta.main) + _header->offset); _data = reinterpret_cast(_meta.main) + sizeof(header_t); - _data_sz = _meta.main_size - sizeof(header_t) - sizeof(footer_t); + _data_sz = _header->size; } size_t helldivers2::wwise_bank::size() diff --git a/source/hd2_wwise_stream.cpp b/source/hd2_wwise_stream.cpp index 276201b..bf361c2 100644 --- a/source/hd2_wwise_stream.cpp +++ b/source/hd2_wwise_stream.cpp @@ -16,8 +16,7 @@ helldivers2::wwise_stream::wwise_stream(helldivers2::data::meta_t meta) : _meta( { _header = reinterpret_cast(_meta.main); _data = reinterpret_cast(_meta.stream ? _meta.stream : _meta.gpu); - _footer = reinterpret_cast(reinterpret_cast(_data) + _header->offset - _meta.main_size); - _data_sz = (_meta.stream_size ? _meta.stream_size : _meta.gpu_size) - sizeof(footer_t); + _data_sz = _header->size; } size_t helldivers2::wwise_stream::size()