Skip to content

Releases: r-ex/RePak

1.4.0

17 Apr 18:39
ff644b0

Choose a tag to compare

This update is recommended for all users, as it fixes a substantial bug in the page allocation system that may result in incorrect buffer sizes being allocated by the game.
When this happens, the game may crash when loading or unloading the file.

What's Changed

New Contributors

Full Changelog: 1.3.2...1.4.0

1.3.2

22 May 23:30
6c14619

Choose a tag to compare

  • [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 repak without any arguments to get a detailed explanation for usage:
    • -pakguid for quickly calculating a ready-to-use Pak Asset guid for the provided string.
    • -uimghash for quickly calculating a UI Asset hash for the provided string.
    • -compress for compressing RPak files using ZStandard (optional argumuments: <compressLevel> <workerCount>).
    • -decompress for 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_currentAsset would 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]

05 May 10:06
1c01bb7

Choose a tag to compare

  • [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_plus and float_plus have been renamed to int_add and float_add for consistency reasons.
  • A small optimization on the internal string formatter to reduce the number of buffer copies.

1.3.0 [OLD]

20 Apr 11:31
c8caee2

Choose a tag to compare

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 keepServerOnly and keepClientOnly build 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 showDebugInfo option.
  • 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]

27 Oct 21:33
292c3fc

Choose a tag to compare

  • 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]

16 Sep 18:15
5beb349

Choose a tag to compare

Making a new release that has the json parse error stuff in it

1.0.0 [OLD]

27 Aug 21:58

Choose a tag to compare

first binary release. it probably works