1 (edited by ajshell1 2021-07-05 16:19:04)

Stop me if you've had this problem before: You want to use a rom manager to manage your personal dumps of CDs with CD audio tracks. But alas, those audio tracks also appear on more than one disc, and they get built into incomplete zip files of dumps you don't own and don't care about, cluttering up your rom folder.

The worst example of this is with Dreamcast discs, where my single Japanese dump also happens to contain a file present in over 300 other dumps: http://redump.org/discs/quicksearch/1859ea65/

Or, some of your dumps get renamed, and now your cuefiles are broken. You could just stick the complete cuefile zip into your ToSort folder in RomVault, but then you'll have to get rid of all the zip files that only contain cues.

It's just a mess in every sense.

So I decided to make a tool to fix it. I call it "datslim": https://gist.github.com/ajshell1/a6b390 … 90d8f1e5aa

(this currently only works on Linux. If you think you can get it to work on Windows, go ahead and try)

Here's how to use it:

1. On the Redump home page, click on "User", and then select "My <System you want> discs".

2. Get that list of discs into a file named "have". This is probably easiest by right-clicking on the page and doing "Save as".

3. Download the .dat file for that corresponding system, and place it in the same folder as "have".

4. Run datslim like this:

datslim "name of the datfile.dat"

5. Wait. This might take a while depending on how many dumps you have and how many dumps are in the system.

6. When it is done, you will have a new file named "new_<name of the previous datfile>."

Documentation on how it works is in the file itself.


Known bugs:

1. No warnings or indication of use or misuse.

2. Many things are done rather sloppily. This is just a quick-and-dirty hackjob I came up with late last night. If you have any ideas on how to improve things, let me know.

3: It's slow.  I don't know exactly what big O notation this script is using, but it's not a good one. I'm sure there's a better way to do this, but I thought I'd share it as it currently exists.

4. I'm 100% sure it's going to throw a fit with some a special character at some point. It's not an "if", it's a "when". I just haven't found it yet.

5. No Windows port. I don't use Windows, so someone else is going to have to do it. I'll release this script under whatever license you want if you want to make a Windows version.

Thanks for the detailed guide. I will keep this thread in my bookmarks so as not to lose it.