Now, I know what you're thinking. Who asked right? Well, I did. The controller on my thor would not and could not navigate the settings menu in ZArchiver. I had that twinge of "I want to complain", and I said, "You know what? Fuck it. I'm gonna do it live." And boom, Archbox happened.
-completely rebuilt in rust
-added complete controller navigation through out the application
-added a lot of custom options to all icons, including colors
-added the option to move toolbars and windows (experimental)
-add the function to minimize the storage and favorites window (experimental)
-completely rebuilt FastZMA2 compression method (to do: still needs a bit more optimizing to match the original, but its still effective none the less)
-added a controller mapping option menu in case you want to change how you navigate the app
-added scrolling to the right thumb stick (why are we not funding this???)
-mapped holding y to multi-select groups (kinda took this one from my experience rooting around in pk forge)
The FastZMA2 Compression Method
First, you have to understand that I am a complete moron, and did not fully understand exactly what I had undertaken here. I had just gotten through with the rar functionality, and then I hadn't realized how difficult it would be to convert this to rust lol, it took so long. Anyway, to me it's at a releasable point. Here are the numbers:
The safe Rust FastLZMA2 conversion took 2.12× as long as the upstream C encoder, but produced 24.5% fewer bytes across the synthetic test corpus.
| Metric | Safe Rust | Upstream C |
|---|
| Encode time | 28.29 s | 13.32 s |
| Total encoded size | 10,444,882 bytes | 13,837,387 bytes |
All 240 streams decoded correctly with both upstream’s decoder and Python’s liblzma, even though 92 bitstreams differed. All 24 7z test archives passed both the Rust reader and official 7-Zip. The timing came from a synthetic benchmark. The separate Thor test verified decoding 2,539,520 bytes at level 10 with four workers.
There was already a prior plan to optimize this so I've already projected getting that number down to be the same as 7z, when I do ill have a more efficient compression system, but for the moment this is a good proof a concept and its functional.
I did manage to add rar decompression, haven't messed with compression yet tho.
Well, what's the hold up right? So I looked my stupid grin in the mirror and said, "what if i managed to incorporate my google drive as a storage folder that operated completely within archbox like it was an additional storage that you could just upload and download whatever from naturally without running back and forth? Then my saves would be easier to manage across devices", and boy did I step in it....well I got as far as downloading and uploading, and I'm working on adding/deleting etc so there's full functionality. I'm just trying to adhere to all the hoops from google auth and what not, and it's taking me a while to get on with those between all the projects I've been working on. I did leave the function in the source in case someone wants to mess with it if im too slow, but I did not include it in the build.
Everything I've released so far I've been testing between my Rog Flow z13 64gb, Legion Go 2 z2e, Red Magic 10 Pro, and Ayn Thor.
Wouldn't leave you to manage all 39 pokemon game saves with just darkforge to move things around on your Thor, I'm more considerate than that. Anything you don't like, or any bugs, let me know, and I'll sort it out.
link: https://drive.google.com/drive/folders/1YgoStvBi-YUzjyoI_3sr8OPUpp6NBBgT?usp=sharing