Skip to content

Releases: unexpectedpanda/retool

v2.00.0 Beta 8

07 Apr 02:10

Choose a tag to compare

  • You can now drag and drop DAT files into the file list.

  • Retool now understands preproduction compilations when comparing against individual titles.

  • When considering compilations, individual titles are now preferred over compilations except in the following scenarios:

    • The compilation has a higher priority primary region than the individual title (during compilation comparisons, the World and USA regions are considered equivalent).
    • The compilation has a higher priority primary language than the individual title.
    • The individual title is set as lower priority than the compilation in the related clone list.

    Compilations are otherwise only included if they feature unique titles. This increases duplicates in the output DAT, but is much better for patches, retro achievements, and actually knowing which individual titles you have.

  • Compilation selection has been dramatically sped up.

  • If you overrode global settings for system languages but didn't specify any languages, Retool used to fall back to the global language order and disable the system languages override. This isn't what the label says: "an empty filter list includes all languages".

    This behavior has been changed to match the label — when you override system languages and leave an empty filter list, it first uses the implied language order from the system regions, and if they're not available, the implied language order from the global regions. In both cases, this is makes sure all languages are included.

  • The Python version check is now done earlier, and explains to the user the minimum version required.

  • The CLI progress bar no longer shows if multiprocessing is disabled, to make debugging with print and input statements easier.

  • Fixed a bug where compilations specified in a clone list broke user filter includes.

  • Fixed a bug where clone list priorities could be misassigned.

  • Fixed a bug where user-supplied regexes weren't validated for some patterns.

  • Fixed a bug where regex escapes for a title trace that were set in the GUI weren't interpreted properly.

  • Polished up some rough areas of code, made some minor GUI tweaks.

v2.00.0 Beta 7

20 Mar 20:59

Choose a tag to compare

System languages are now filtering correctly again.

v2.00.0 Beta 6

18 Mar 00:31

Choose a tag to compare

  • Fixed a compilation bug introduced with the last version that added extra titles to the output DAT.
  • Another fix for the parent/clone warning message.

v2.00.0 Beta 5

17 Mar 03:01

Choose a tag to compare

  • The GUI is now resizable.
  • GUI optimizations have been made. It's unlikely you'll notice a difference using it, but it's easier to maintain now.
  • Europe has been moved further up the default English region order, as Retool's new language prioritization bypasses any particular issues there.
  • Added an extra filter stage for compilations, checking for which title has more of the user's languages.
  • Fixed titles with multiple regions not being categorized into the correct primary region. For example, (Europe, Australia) titles were being filtered into the Australia region instead of Europe, which caused some duplicates to sneak through to the final output DAT.
  • The Export region for Redump titles is now treated as equivalent to World.
  • Fixed a problem where a new system config would populate selected languages from the global config.
  • Fixed the log not outputting in the correct folder when a system output was selected.
  • Fixed the parent/clone clash warning message so it displayed the correct clone title.

v2.00.0 Beta 4

11 Mar 22:31

Choose a tag to compare

  • Pirate and unlicensed exclusions work again. Pirate titles have been added to the unlicensed exclude option.
  • The GUI documentation link now goes to the right place.

v2.00.0 Beta 3

11 Mar 04:48

Choose a tag to compare

  • Fixed user filter excludes not removing some excludes.
  • Fixed system name formatting in the GUI, so the right system settings file is referenced.
  • Unified CLI and GUI versions, as splitting them was no longer useful.

v2.00.0 Beta 2

09 Mar 21:44

Choose a tag to compare

A minor update to fix system user filters for No-Intro's Redump Custom DATs.

v2.00.0 Beta 1

05 Mar 06:54

Choose a tag to compare

Download Retool 2.00.0 Beta 1

Retool 2.0 is here in beta form. Ten months in the making, it'll be in beta for a few more months to get feedback and fix bugs found by users. Retool 1.x will still be available during this time, although it won't receive clone list updates from this point.

Retool 2.0 is a hefty rewrite with a focus on static typing, better code practices, maintainability, and making things go faster.

Check out how much things have improved over time, despite a huge increase in Retool's capability (measurements taken on a Core i7-8700K, Python 3.10):

Redump: Sony PlayStation (10628) (2021-12-29 02-47-27)

Retool version DAT process time Speed vs previous
0.53 3m, 44s N/A
0.62 28.23s 7.93x
1.17 27.15s 1.04x
2.00.0 7.76s 3.50x

Improvement 0.53 > 2.00.0: 29x speed increase

Redump: IBM - PC Compatible (28316) (2021-07-23 22-27-03)

Retool version DAT process time Speed vs previous
0.53 20m, 56s N/A
0.62 2m, 4s 10.13x
1.17 1m, 27s 1.43x
2.00.0 14.88s 5.85x

Improvement 0.53 > 2.00.0: 84x speed increase

No-Intro: Sony - PlayStation 3 (PSN) (Updates) (20211224-182932)

Retool version DAT process time Speed vs previous
0.53 (Unsupported) N/A
0.62 (Unsupported) N/A
1.17 5m, 45s N/A
2.00.0 21.72s 15.88x

Additionally, large and complex DATs like Nintendo 3DS (Digital) (CDN) now actually finish processing in a reasonable time. A Retool user timed that DAT to take 72,776 seconds on an Intel Core i7 8700K, which equates to 20 hours, 13 minutes. Retool v2 finishes it on the same processor in 245 seconds, which is 297x faster.

There's no doubt code in there that would still make more experienced developers shudder, but it's nice to see things get better 😁

It's not all benefits though — Retool's increase in complexity means that some DATs that were previously ultra-fast in v1 are slower to complete in v2:

No-Intro: Atari - Lynx - (20220513-205052)

Retool version DAT process time Speed vs previous
0.53 (Unsupported) N/A
0.62 (Unsupported) N/A
1.17 0.39s N/A
2.00.0 1.83s 0.21x

The total time spent is still quite brief, and is worth the price of admission for the very slow DATs to be faster and the increase in accuracy.

Check out the following list for other changes that have come in v2.

Accuracy

  • Language order is now taken into account. If you don't filter by languages, the language order will be inferred from your region order. This mostly impacts European titles, where compared to previous versions of Retool another title might be selected to better reflect your language choices. For example, take these titles in Redump's PlayStation DAT:

    • Hugo (Europe)
    • Hugo (Europe) (Nl,Pt) (Rev 1)
    • Hugo (Europe) (Nl,Pt)
    • Hugo (France)
    • Hugo (Germany)
    • Hugo (Italy)
    • Hugo (Scandinavia) (Da,Fi)
    • Hugo (Scandinavia) (Sv,No)
    • Hugo (Spain)

    If you have USA as your top region, followed by Europe, Retool 1.x selects Hugo (Europe) (Nl,Pt) (Rev 1) as the 1G1R title, because it's the highest revision in Europe. Retool 2.0 realizes that because USA is your highest region, that it's looking for English titles as a priority, and selects Hugo (Europe) instead.

    This also applies to say, Japanese titles that are only in English, and a special edition is available in English in another region. For example, take these titles, again in Redump's PlayStation DAT:

    • Car and Driver Presents - Grand Tour Racing '98 (USA)
    • Gekisou!! Grand Racing - Total Drivin' (Japan)
    • M6 Turbo Racing (France)
    • Total Drivin (Europe) (En,Fr,De,Es,It,Pt)

    If you have Japan as your top region, Retool 1.x selects Gekisou!! Grand Racing - Total Drivin' (Japan) as the top title. Retool 2.0 recognizes that the Japanese title is only in English, sees that the USA title is a special edition, and selects Car and Driver Presents - Grand Tour Racing '98 (USA) instead. You may as well get more content if the title's going to be in the same language anyway.

    If you don't like this style of selection, you can turn on strict region filtering with -r.

  • Compilations are now automatically handled by adding them to a system's clone list with the correct syntax. Retool figures out the most optimal combination of titles, taking your language and region preferences into account. Sometimes it might look like Retool hasn't chosen the optimal combination, but this is usually due to user region preferences and titles being available in both the Europe region and specific European countries.
    For example, take the following titles, and assume Italy is higher than Europe in the user's region order:

    • 2 Games in 1 - Disney Principesse + Il Re Leone (Italy) (It+En,Fr,De,Es,It,Nl,Sv,Da)
    • 2 Games in 1 - Disney Principesse + Koda, Fratello Orso (Italy) (It+En,Fr,De,Es,It,Nl,Sv,Da)
    • Brother Bear (Europe) (Fr,De,Es,It,Nl,Sv,Da)

    For those who don't speak Italian, Fratello Orso is the Italian version of Brother Bear. Therefore, the most optimal solution for disk space and minimal redundancy is:

    • 2 Games in 1 - Disney Principesse + Il Re Leone (Italy) (It+En,Fr,De,Es,It,Nl,Sv,Da)
    • Brother Bear (Europe) (Fr,De,Es,It,Nl,Sv,Da)

    This works, as both titles support Italian. However, because Italy is prioritized as a region, Retool selects the Italian release of Brother Bear instead, meaning you end up with:

    • 2 Games in 1 - Disney Principesse + Il Re Leone (Italy) (It+En,Fr,De,Es,It,Nl,Sv,Da)
    • 2 Games in 1 - Disney Principesse + Koda, Fratello Orso (Italy) (It+En,Fr,De,Es,It,Nl,Sv,Da)

    Although you get two versions of Disney Princess, this choice is by design. The assumption is that the region-specific version of the game should enable that region's language by default, instead of requiring a language switch after boot up.

  • Priority level 0 is now gone, replaced by a supersets array. It functions in almost the same way, preferring language over region, except that order in the clone lists doesn't determine superset priority any more. For example, here's how things used to look for Persona 3 in Redump's PlayStation 2 DAT:

    "Shin Megami Tensei - Persona 3": [
      ["Shin Megami Tensei - Persona 3 FES", 0],
      ["Persona 3 FES", 0],
      ["Yeosin Jeonsaeng Persona 3 FES", 0],
      ["P3 - Persona 3", 1],
      ["Persona 3", 1]
    ]

    Retool used to assume the top 0 priority title had higher priority than the 0 priority title after it, and so on. Unfortunately in this scenario, we have two titles that should be the same rank: Shin Megami Tensei - Persona 3 FES, the USA version, and Persona 3 FES, the European version. In Retool v1, if someone put Europe above USA in their region order and specified English as their highest language, they would get the USA title instead of the European title that they wanted, as internally the first 0 priority title was ranked above the second.

    With the introduction of the supersets array, things change a little:

    {
      "group": "Shin Megami Tensei - Persona 3",
      "titles": [
        {"searchTerm": "P3 - Persona 3"},
        {"searchTerm": "Persona 3"},
        {"searchTerm": "Shin Megami Tensei - Persona 3"}
      ],
      "supersets": [
        {"searchTerm": "Shin Megami Tensei - Persona 3 FES"},
        {"searchTerm": "Persona 3 FES"}
      ]
    }

    Retool v2 now chooses the correct superset for the selected region, You can still specify a priority on supersets, just in case there are multiple supersets of varying amounts of content. That priority is only respected between supersets, and isn't related to the priority set on a title.

  • You can now use regex in the categories, overrides and variants objects in clone lists. Just set the nameType value to regex. The removes object does not support regex.

  • Overrides now support a priority key within a regionOrder condition. This means a title's clone list priority can be set from within a condition if that condition is true, not just its group and short name.

  • You can now define clones in the variants object not just by short name, but full name, region-free name, tag-free name, or regex on the full name. While mostly you should stick to short names, this extra flexibilty can solve some complex problems. For example Silent Hill 2 (USA) (En,Ja,Fr,De,Es,It) (v2.01) is the USA version of Silent Hill 2 - Director's Cut. Unfortunately, due to its title the short name for Silent Hill 2 (USA) (En,Ja,Fr,De,Es,It) (v2.01) is just Silent Hill 2 — exactly the same as the standard version of the game. Historically with Retool this would mean we couldn't set unique priorities for both titles, and would have to figure out an esoteric workaround. Now, however, there's another way:

    {
      "group": "Silent Hill 2",
      "titles": [
        {"searchTerm": "Silent Hill 2 (?:(...
Read more

v1.18

27 Aug 00:59

Choose a tag to compare

A small change to handle a new versioning system in No-Intro.

v1.17

05 Aug 12:45

Choose a tag to compare

Retool can now handle No-Intro DATs that reference an XSD file.