sonicheroes.utils.toner 1.2.2

Heroes Essentials: TONERR



The One Expandonger Reloaded Reloaded

What else did you think TONERR stood for?

Id: sonicheroes.utils.toner

About This Project

The following project is a Reloaded II Mod Loader mod that allows you to load arbitrarily large files from inside ONE archives. (up to ~2GB)

How to Use

A. Install Reloaded mods as usual. (Extract to mod directory)
B. Enable mod and run the game.

If your mod needs TONERR, consider setting it as a dependency.

The Problem Under the Hood

When Sonic Heroes extracts files from ONE Archives, it allocates a fixed amount of memory to which the individual files are to be decompressed to.

Normally this is a non-issue, however once mods and custom files are involved, larger than the originals, the preallocated buffers may become too small for the custom files causing reads in unallocated memory.

TONERR solves by hooking every single function used to read a file from a ONE archive used by the game. Using my own fast PRS Compression/Decompression library, it calculates the size of the file without decompressing it and provides a new buffer of sufficient size to decompress the file to.

To avoid unnecessary heap allocations, one buffer is reused for all files. This buffer is resized every time a file larger than it shows up.

Original TONER

The original TONER used a slightly different approach, you can read a more in-depth explanation about the problem and how the original TONER tackled it here: https://github.com/Sewer56/TONER

In comparison to the original, this is a more "dumb TONER", it sacrifices RAM Usage for CPU, with less heap allocations in particular.

Acknowledgements

big by JunGSa from Noun Project

No packages depend on sonicheroes.utils.toner.

# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.2.2](https://github.com/Sewer56/TONERR.ReloadedII/compare/1.2.1...1.2.2) - 2022-10-10 ### Commits - Updated: Slightly Modernised Mod [`bf0cc0c`](https://github.com/Sewer56/TONERR.ReloadedII/commit/bf0cc0cbd9ad2e90d0c7ce70b28514a6688cee11)

Version Downloads Last updated
1.2.2 5,684,106 10/10/2022
1.2.0 118,033 1/2/2021
1.1.2 1,565 1/1/2020
1.1.1 43 1/1/2020
1.1.0 55 12/23/2019
1.0.3 120 9/19/2019
1.0.2 71 8/17/2019
1.0.1 39 8/14/2019
1.0.0 34 8/14/2019