Releases: r-ex/RePak
Releases · r-ex/RePak
1.3.2
- [NEW] full support for
txls(Texture List) assets, which is used for camo textures on skins. - [NEW] added support for streaming file filtration on stream caches, allowing user to selectively choose which streaming file to use for data deduplication.
- [NEW] implemented various command line tools (run
repakwithout any arguments to get a detailed explanation for usage:-pakguidfor quickly calculating a ready-to-use Pak Asset guid for the provided string.-uimghashfor quickly calculating a UI Asset hash for the provided string.-compressfor compressing RPak files using ZStandard (optional argumuments:<compressLevel><workerCount>).-decompressfor decompressing RPak files using ZStandard (RTech and Oodle support is planned!).
- [NEW] added support for console color logging to improve logging readability.
- [BREAKING CHANGE] paks now use the 16th bit in the pak header to indicate that the pak has been encoded with ZStandard, Oodle was using the 10th bit causing a conflict with custom and retail paks.
- Improved overal logging of the application to make small mistakes or issues more clear to the user.
- Improved overal performance of the application by disabling unnecessary security checks (this program never connects to the internet).
- Fixed an issue where V7 paks would be held to the same limit as V8 paks regarding streaming handle files per pak, which is 4 for V8 but 13 for V7.
- Fixed insonsistent slash directions in streaming file paths stored inside the RPak file.
- [MAJOR BUGFIX] fixed stream cache file truncation during patching, rendering the patch starmap file unusable.
- Fixed incorrect error print on stream cache header magic mismatch.
- Fixed a regression where slashes weren't appended to the end of the user input/output paths if there was none.
- Fixed an issue where
g_currentAssetwould still retain the name of the asset after the asset was successfully added due to a missed code path to clear it.
1.3.1 [OLD]
- [MAJOR BUGFIX] Fixed an issue where Material V12 blend state input would be overwritten by legacy code within RePak.
- [MAJOR BUGFIX] Fixed an issue where colpass materials weren't set properly for Material V12 assets.
- Fixed an issue where the data size threshold for non-permanent textures was 16KiB instead of the indended 64KiB size.
- [BREAKING CHANGE] Settings Asset mods type
int_plusandfloat_plushave been renamed toint_addandfloat_addfor consistency reasons. - A small optimization on the internal string formatter to reduce the number of buffer copies.
1.3.0 [OLD]
New
- Added support for packaging
anir(animation recording) assets. - Added support for packaging
shdr(shader) assets. - Added support for packaging
shds(shader set) assets. - Added support for packaging
stlt(settings layout) assets. - Added support for packaging
stgs(settings) assets (this also includes mods). - Added support for packaging
mt4a(material for aspect) assets. - Added support for packaging
txan(texture animation) assets. - Added support for fast RPak compression using ZStandard (requires engine-side work).
- Added support for GUID overrides per asset.
- Added support for material blend states and const buffer flags (materials can now also be 1:1 replicated using RePak).
- Added support for building streaming map files (a cache allowing for starpak data lookup and data deduplication).
- Added support for building paks using a streaming map file, allowing for existing starpak data to be deduplicated.
- Added support for building paks from a dedicated list, allowing each pak to deduplicate data from the shared starpak file.
- Added support for dependencies on animation sequences (required for correct runtime precaching of assets).
- Added support for filtering out server or client only assets using the new
keepServerOnlyandkeepClientOnlybuild options.
Improvements
- Datatable assets will now compute and register guids for any "precached asset" cell, allowing the runtime to actually precache them.
- Assets with streaming data are now directly written off to the stream file stream instead of being kept in memory for as long as the RPak is building.
- JSON field names are now only looked up once using a new JSON system, significantly improving parsing performance.
- Significantly improved error handling and the overal UX of the program (all failures will now report an error message for the currently live asset).
- Most verbose logs are now moved under Debug, and can now be enabled using the
showDebugInfooption. - GUID fields from JSON input will now always be parsed from a numeric value, or a string value. Previously this was inconsistent as each asset type had its own way of parsing it.
- Material assets (
matl) will now error when the uber data is missing instead of creating a default one (the default one always ended up looking wrong in the runtime and caused confusion due to lack of error and feedback). - Material assets (
matl) are now separated from the main JSON file, they are now discrete files like all other asset types, with the uber data next to it. - Implemented a robust IO stream class that allows for read and write operations simultaneously while also always keeping track of the file size without utilizing dedicated IO API's.
- All optional JSON fields are now prefixed with
$, i.e.$materialOverrides. Any field that isn't prefixed with$is considered a mandatory field. If its absent, RePak will return an error. - Enabled SSE2 for RapidJSON to improve map parsing performance.
Bugs
- [MAJOR BUGFIX] Fixed an issue where slabs wouldn't take the padding required for page alignment into account, causing memory corruption in the runtime (total size of all pages belonging to a slab buffer is larger than the slab buffer itself causing overflow).
- [MAJOR BUGFIX] Fixed an issue where pages didn't always get padded out correctly for alignment.
- [MAJOR BUGFIX] Fixed numerous issues with the data layout and alignment thereof for certain asset types causing misalignment in the runtime, despite its page being aligned correctly.
- Fixed numerous crash cases that would occur on invalid user input, such as an incorrect value in a JSON.
- Fixed an issue where an RMDL asset could be packaged with a mismatching physics file size.
1.2.0 [OLD]
- Fixes uses and relations
- Adds ASEQ support
- Adds model material overrides
- Adds global flags for debug textures and starpak path
- Set material types on Apex materials
Full Changelog: 1.1.0...1.2.0
1.1.0 [OLD]
Making a new release that has the json parse error stuff in it
1.0.0 [OLD]
first binary release. it probably works