-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Note: I know you have some templates and forms pre-prepared for some of the things I've written below, but before I knew it, I'd already written this whole text. I had a lot to say, and a lot of points I wanted to make, which is why I started writing everything in one topic. However, if you want, I can fill in one or other template later if it suits you better, such as the “Console Request”. Just let me know.
First of all, I'd like to congratulate you for this wonderful program. It really is a spectacular tool for organizing ROM libraries, choosing the best versions, avoiding repetition and simplifying/facilitating the manual and tiring process of this kind of thing.
It really saves hours of work and headaches. THANK YOU VERY MUCH
That said, while trying out the application I encountered some difficulties and thought of improvements that could help you improve the program. Below is my feedback, with suggestions and also a few questions. I hope it helps!
1. ❌ Softlocks when something fails
🛑️ Problem
-
The program "softlocks" easily, especially when some module is misconfigured or not active (for example, if ROMMover isn't active, ROMDownloader doesn't work, which I don't think it's supposed to).
-
The program doesn't crash, but it doesn't respond from that point on either.
-
The errors appear only in the console and usually point to several Python files, which doesn't help much for those trying to use the app. I'm sure you already know this, but I wanted to reinforce it and make a suggestion below.
💡 Suggestions
-
Show "error messages" directly to the user in a clear way, saying what failed and where. It could be a popup or a debug/log area in the interface itself;
-
An automatic validator that checks if the modules are configured correctly before running;
-
Ensure that the program doesn't “just stop working”. It's annoying to constantly have to force close the program and restart it when something isn't right. If something goes wrong, cancel the process you were doing and return to the “initial state” by displaying a message or something.
2. ⚙️ ROMDownloader (and rclone) configuration
🛑️ Problem
-
The initial configuration is confusing, especially with rclone.
-
It's not very clear where to put the files, how to configure the remotes, or what to write in the interface. It took me a good 4 hours to figure out how to use the tool/module.
💡 Suggestions
-
Add a simple and direct explanation in the program about where to put the rclone executable (ideally in the same directory as "romsearch.exe"). In my initial attempts, as I didn't know it had to be in the same directory, I put it in a sub-folder (because that's how it was extracted) and didn't understand why it didn't work in the program or what I should do to make it work;
-
Add a “Test connection” or “Detect rclone automatically” button, to check if it's possible to extract content from the remote - something simple like getting a list from the remote;
-
Add a direct link to the rclone download (even if it's already in the documentation - it helps to have everything at hand);
-
Give a practical example of how to configure rclone in ROMDownloader. Note: Give examples without specific sites.
3. 💾 Saving and loading config settings
🛑️ Problem
- The current system for saving/loading configs is prone to errors. Whenever I used the program the first few times, I would forget to save the changes, and then the program would load old configs, especially when it crashed or stop answering.
💡 Suggestion
- Automatically save changes as soon as they are made (or when closing the application) in an ‘active’ file/configuration (for example: “current_config.json”), without having to manually click on the “Save” button. You could also leave the functionality of importing/exporting configurations, but without having to worry about purposely saving every time there are changes.
4. 🌙 Lack of night mode
🛑️ Problem
- The interface is too bright, at least in the windows version. It looks like a “flashbang” every time I open the program 😂
💡 Suggestion
- Add “dark mode”, since you showed in the docs that there is a dark version.
5. 🤔 DATMapper unclear
🛑️ Problem
-
The DATMapper functionality was one of the most confusing modules to deal with.
-
At first, I didn't know that this module was supposed to be used to analyze .dat files that had already been used (something that wasn't quite clear). Then when I realized this, I didn't know that I had to move the files from the “dats” folder to the “mapped_dats” folder manually with the exact names - because if the files didn't have the exact names, the program wouldn't recognize the files. Also, the “dats” folder only accepts files in .zip format, while in the “mapped_dats” folder, the files have to be extracted. It was quite a confusing experience to understand how it worked.
💡 Suggestions
-
Improve the explanation in the program itself (perhaps with a tooltip or a quick help section);
-
Change the name of the module to something more obvious, like "DATAnalyzer" or "DATComparator" or "DATUpdater" or something like that;
-
Rename the default folder to something like “dats_old”, to make its purpose clear.
-
When using a .dat file for the first time, the program could automatically copy that file to the correct folder and rename it to the expected format (for example: “name_known.dat_old” or “name_known_old.dat” or something like that). The goal would be for the user to only have to maintain the main directory with the new .dat files, and the program would automatically create/handle the old DAT files by itself.
6. ❓ Questions - RA hash updates 🏆
👉 How often are the RA hashes updated?
7. ❓ Question - CHDMAN
👉 How is CHDMAN being used for compression?
-
This question isn't about what chdman is, but rather what commands are being used by the program when compressing roms.
-
I ask this because, as the program supports consoles such as the PS1 and PS2, it's important to make sure that chdman is being used in the right way in each case - as there are two different types of compression, and each works better depending on the type of disc. For example:
🎮 PS1 - Roms usually come in .bin/.cue, which are CD's. In these cases, it's best to use the command:
chdman createcd -i "rom.cue" -o "rom.chd"
💿 PS2 - Most roms are on .iso, which are DVDs. Here, the ideal would be to use:
chdman createdvd -i "rom.iso" -o "rom.chd"
📌 So...
-
👉 Does your program automatically distinguish between CD and DVD, adapting the final command according to the type of rom/console?
-
👉 Or does it always use the same type of compression command, regardless of the original file type?
💡 Suggestions:
-
Perhaps it would be useful to add an option in the program for the user to manually choose the type of compression (cd or dvd) - (Just an idea, but it might not be the best solution, I don't know);
-
Showing in the log the command used for each compression could also help with debugging;
-
A short explanation in the documentation about how the program decides the type of compression would also resolve this doubt right from the start.
8. ❓ Question - RAW/ROM's directories and ROMMover
👉 What is the difference between the RAW and ROMS directories?
👉 And... what exactly is the purpose of ROMMover?
-
While testing the program, I noticed that when I activate ROMMover, I have to specify a folder - which seemed to me to be just a way of moving roms from one folder to another. So far, so good.
-
But after continuing to experiment, some doubts and confusions arose.
🔍 Observed behavior
-
If I leave ROMMover disabled, the program can't download the roms - it gives errors on the console;
-
I was hoping that, if I didn't need to move the ROMs to another folder, I could leave ROMMover disabled - but it seems that this also breaks the ROMDownloader module;
-
Since I have to leave this option active, the program forces me to have two copies of the same roms in different folders: one in the “raw” folder and the other in the “roms” folder (or whatever other names I have configured for the directories);
-
When I explored the two directories (“raw” and “roms”), I couldn't find any visible differences between them. They seem to have exactly the same files;
-
This led me to wonder if I'm misunderstanding the purpose of this separation, or if this is a bug.
📌 So...
-
👉 What is the actual function of the RAW directory and the ROMS directory? What is the difference between the two?
-
👉 Is ROMMover really mandatory? Or should it be optional if I want to keep everything in one folder?
-
👉 The fact that the download fails when ROMMover is disabled - is this expected behavior or could it be a bug?
💡 Suggestions
-
If ROMMover is really optional, maybe the program should work without it, just using the RAW directory as the final destination;
-
If there is a technical reason for keeping the two directories separate (e.g. organization, filters, compatibility with other tools), perhaps it would be useful to explain this better in the documentation or show an informative warning/tooltip in the program.
9. 🕹 Suggestion - Options related to roms with RA 🏆
-
The idea of prioritizing roms with RA support is a good one, as it ensures that everything downloaded is compatible with the website (or at least the vast majority). In fact, that's my preference too and I thank you for creating this as it's one of the main reasons I use this program.
-
Here are some suggestions to improve the module:
💡 Suggestions
-
An option to only download roms that have RA support (and ignore those that don't);
-
[Complement to Suggestion 1.]: Export a .txt list with the roms ignored for not having achievements. This way the user knows exactly what has been left out.
-
[Complement to Suggestion 2.]: The program can save this list to check later if the roms on the list have achievements. If there are new roms with achievements on the list, the program will automatically download them and delete the entry from the list, leaving only roms that don't yet have achievements on the list.
-
[Complement to Suggestion 2.]: The program can also save this list and use it to download roms without achievements to a separate directory. In other words, the program would continue to download all the roms (with the best conditions), with the only difference being that all the roms that weren't in RA (or didn't have achievements) would go into a separate folder within the same directory as the respective console.
10. 🕹️ Suggestion - Adding "OPEN" Buttons
- It would only be just a quality of life tweak, but I'm suggesting adding a small "OPEN" button to the left of the "BROWSE" button on the "MAIN" program's home page to directly open the specified folder. It's just a small tweak but I think it would come in handy for navigating directly to some directories.
11. 🕹️ Suggestion - LINUX Support?
- It's probably not in your plans right now and I understand, but I was just wondering if you'd be interested in making a flatpak version for Linux in the future, or if you've even considered it. It would be nice to have both options. Just let me know if you've thought about it.
12. 🕹️ Suggestion - Support for more consoles
- I noticed, from the roadmap in the documentation, that you intend to include support for more consoles in your program in the future, which is great! But I would suggest that you first consider adding all the consoles supported by RA, from all categories. Of course, any console is welcome, even if it's not present in RA, but personally I'd prefer consoles that are supported by RA to be considered first, if possible. Of course, the final decision is yours and you do as you see fit, this is just a small request on my part.
I hope I wasn't mistaken in any way and that I was clear in what I said. I'll edit it later if there's a problem.
Lastly, thank you once again for this program. I hope some of my suggestions can help improve your project. Keep up the good work!