Skip to content

Releases: r-ex/RePak

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