fraganator / archive-cache-manager

A LaunchBox plugin which extracts and caches large ROM archives, letting you play games faster.
GNU Lesser General Public License v2.1
11 stars 5 forks source link

Replace FilelistBox with something better ? #21

Open nixxou opened 2 years ago

nixxou commented 2 years ago

I was wondering if you could change the FileListBox on the plugin window with something better. For example objectlistview ? http://objectlistview.sourceforge.net/cs/index.html

I don't know how to code in C# so my code is probably messy and weird, but that's just a quick POC, but if you can take a look to evaluate if that's a feature that can be interesting.

Yellow star is for the file who get selected by the priority list, blue star is the last played. image ArchiveCacheManager.zip https://github.com/nixxou/archive-cache-manager/tree/Objectlistview

Edit : The tag is not used right now, i intend to make extra columns (not show by default) each one with a tag like tag1 = [USA], tag2 = [GRH-Megapack] ... So i can sort by tags. (I just dumped the whole https://romhacking.com/hacks site and each rom have a tag with the rating and difficulty, so i would like to be able to sort rom by rating)

nixxou commented 2 years ago

Here, an other version with FastObjectListView and some context menu to filter. ArchiveCacheManager_Objlistview.zip

fraganator commented 2 years ago

Thanks for the suggestion and code examples. I'm working through the general UI and config updates in #20, so will look at updating the ListView with something more flexible when I get to that screen.

nixxou commented 2 years ago

It's a proof of concept, my code is ugly as f and it mostly revolve around niche feature that i have personal use, but that's probably worth a look : https://youtu.be/KZr36zorwO8 https://github.com/nixxou/archive-cache-manager/tree/Objectlistview

I want to add others features, but i don't know if i have the skill to make them and i wonder if that's useful enough to get an individual feature request post into issue. Feel free to cherry pick if you think something is interesting.

nixxou commented 2 years ago

I was not able to implement the "impersonate launch" that i talked above, so i did something else to get around, adding a feature to copy / paste savestate. It only works with retroarch thought. https://www.youtube.com/watch?v=8eKN_25BN18

fraganator commented 2 years ago

Lots of interesting ideas, @nixxou. I'll have to pick through this thread in detail once I get the config UI changes completed and released.

nixxou commented 2 years ago

Another idea while i'm at it, would be the management of texture pack within the Manager. I don't know how that works with other platforms, i'm currently working on my N64 set. I know that stuff exist for Gamecube at least, but i didn't take a look about how that works -solo file with a specific extension ? Or bunch of individual texture files-

So, i have a bunch of files i converted to .htc format I renamed them like that, for example for Zelda OOT : [Incomplete-OOT-Community_Edition] THE LEGEND OF ZELDA_HIRESTEXTURES.htc [Complete-Djipi_Zelda_Cellshade_2016_GlideN64] THE LEGEND OF ZELDA_HIRESTEXTURES.htc To make them work, i have to copy them to LaunchBox\Emulators\RetroArch\system\Mupen64plus\cache (No idea with other emulators) and name them as THE LEGEND OF ZELDA_HIRESTEXTURES.htc.

What i'm thinking too is bundle those them within the 7z file with my Zelda roms, ignore them on the file listing, but instead show a combo box or a right click menu to enable a texture pack that will allow me to choose one of the HTC file, copy them into the texturecache dir and rename them (remove the part within []). The menu should be also able to determine if one of those texture pack is already here (just using the exact filesize should be enough, full sha/md5 hash will take too much time, maybe if that could be done on the first MB of data) and allow to remove it.

To give a practical example, take a look at this texture pack : https://evilgames.eu/texture-packs/oot-reloaded.htm There is 3 format, one of them is : "uHTS 2160p: Uncompressed HTS file for less stuttering at the cost of a much higher file size (~21 GB unpacked). This version holds the highest quality of textures." Once 7zipped, it only take less than 3GB instead of those 21GB, so it could be interesting too keep them within the archive 7z file.