Skip to content

Commit 2c03930

Browse files
v2.03.0
1 parent 30d547c commit 2c03930

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+9277
-5658
lines changed

changelog.md

Lines changed: 141 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,161 @@
11
# Retool changelog
22

33

4+
## 2.03.0 (2024-04-06)
5+
6+
- **_Feature_**: Some changes aimed at ROMVault and DATVault users:
7+
8+
- You can now choose not to add MIA attributes to titles and ROMs from clone lists.
9+
This is mainly useful if you're a DATVault subscriber.
10+
11+
- You can now add a quick import folder through **File > Settings**. When you click
12+
the **Add DAT files recursively from your quick import folder** button, all DAT
13+
files in that folder and its subfolders are loaded into Retool.
14+
15+
- You can now replace your input DAT files with the Retool version instead of creating
16+
new files. Make sure you've backed up your original DAT files first.
17+
18+
- By default, Retool no longer processes files it has already processed. You can
19+
bypass this by going to the **Options** tab and enabling
20+
**Allow processing of already processed files**.
21+
22+
- **_Feature_**: Thanks to a rewrite of the compilations code and Retool's new testing
23+
framework, you can now choose how to handle compilations. There are four modes:
24+
25+
- **Default**: Chooses individual titles most of the time. Only chooses compilations
26+
when they have a higher region, language, or clone list priority, or contain
27+
unique titles. When choosing a compilation for unique titles, if other titles in
28+
the compilation have individual equivalents, the individual titles are also
29+
included, leading to some title duplication.
30+
31+
- **Prefer individual titles**: Chooses individual titles regardless of region,
32+
language, and clone list priorities, and discards compilations unless they contain
33+
unique games. You're likely to prefer this mode if you use ROM hacks or Retro
34+
Achievements. When choosing a compilation for unique titles, if other titles in
35+
the compilation have individual equivalents, the individual titles are also
36+
included, leading to some title duplication.
37+
38+
- **Keep individul titles and compilations**: Ignores the relationship between
39+
individual titles and compilations, meaning individual titles are only compared
40+
against other individual titles, and compilations against other compilations. This
41+
option has the most title duplication.
42+
43+
- **Optimize for least possible title duplication**: Beta, not recommended. Prefers
44+
compilations to minimize file count. While this mode can save disk space, it can
45+
be hard to tell what compilations contain based on their filename. This mode might
46+
not choose the most optimal solution when supersets or clone list priorities are
47+
involved.
48+
49+
- **_Change_**: In Retool GUI you now set the global output path in the **Paths** tab.
50+
51+
- **_Change_**: The **Unlicensed** exclude settings are now more intuitively laid out in
52+
Retool GUI, which allows for more granular choices.
53+
54+
- **_Change_**: The `u` exclude option in Retool CLI no longer includes aftermarket and
55+
pirate titles. Instead, set the flags separately for each unlicensed title type: `u`
56+
for `(unl)`, `f` for `(Aftermarket)`, `p` for `(Pirate)`.
57+
58+
- **_Change_**: A separator has been placed between the add and remove buttons in
59+
RetoolGUI, to reduce accidental clicks and to more cleanly separate functions.
60+
61+
- **_Change_**: A majority of the Retool GUI interface is now disabled during processing
62+
to prevent settings changes while the program is working.
63+
64+
- **_Change_**: The open file dialog box now opens at the currently set folder for the
65+
specific Retool option you're changing. This reduces needless navigation.
66+
67+
- **_Change_**: Output DAT file headers have been tweaked a little to make replacing and
68+
splitting DAT files easier.
69+
70+
- **_Change_**: Thanks to [@thiagokokada](https://github.com/thiagokokada), entry points
71+
have been set up properly for Retool. Additionally, Retool now treats the folder where
72+
it lives as the root folder for its relative paths, no matter the current working
73+
directory.
74+
75+
This isn't consequential for Windows users running the EXE file, but to those running
76+
the Python scripts directly and launching from the command line, it means instead of
77+
navigating to the Retool folder and running `python retool.py` or
78+
`python retoolgui.py`, if you have your environment set up correctly you can just run
79+
`retool` or `retoolgui` from anywhere.
80+
81+
Want to try it out? [Clone Retool from the GitHub repo](https://unexpectedpanda.github.io/retool/download/#git-and-python-gui-and-cli),
82+
navigate to the folder it was cloned to, then install it as a package with
83+
`pip install .`. Retool is then installed to your Python scripts folder, and your
84+
config files, clone lists, and metadata files are also kept there. Providing that
85+
folder is added to your system path, you can now run `retool` or `retoolgui` from any
86+
folder on the command line.
87+
88+
There's a caveat: if you do things this way, every time you update Retool you need to
89+
run `pip install --upgrade .` to update the package version too, or you'll see the old
90+
version of Retool when you run `retool` or `retoolgui`.
91+
92+
- **_Change_**: `config/systems/template.yaml` is no longer needed, as Retool now
93+
generates system config files from scratch.
94+
95+
- **_Fix_**: Compensated for yet another of No-Intro's inconsistent date formats, this
96+
time in the (~YYYY-XX-XX) format.
97+
98+
- **_Fix_**: Retool used to try to make another decision if it ultimately chose a bad
99+
dump, a preproduction title, or a pirate title. If the user didn't prefer modern
100+
titles or preferred licensed titles over unlicensed, it would also try again if it
101+
selected a title the user didn't want. This was causing selection errors, particularly
102+
when it came to preferring regions over languages. This is now treated as a filter
103+
instead of a recovery process and happens earlier, resulting in better title
104+
selection.
105+
106+
- **_Fix_**: Fixed the incorrect default region order for system configs, which placed
107+
Europe lower than the global default region order.
108+
109+
- **_Fix_**: Fixed user override titles not being excluded from the output DAT file when
110+
they had already been reassigned groups by a clone list.
111+
112+
- **_Fix_**: Fixed the **Process DAT files** button not enabling if you clicked a button
113+
to add DAT files, cancelled, then actually add DAT files.
114+
115+
- **_Fix_**: Retool now works on Windows Server 2019+.
116+
117+
- **_Chore_**: Removed the `(Homebrew)` tag from Retool's processing, as No-Intro doesn't
118+
use it anymore.
119+
120+
4121
## 2.02.2 (2024-03-08)
5122

6-
- **_Fix_**: Ensured MAME Redump DAT files have unique config settings, but
7-
load Redump clone lists and metadata.
123+
- **_Fix_**: Ensured MAME Redump DAT files have unique config settings, but
124+
load Redump clone lists and metadata.
8125

9-
- **_Fix_**: Fixed titles without regions being assigned a blank set of regions
10-
instead of being set to `(Unknown)`. This was most obvious when converting
11-
Redump BIOS DAT files.
126+
- **_Fix_**: Fixed titles without regions being assigned a blank set of regions
127+
instead of being set to `(Unknown)`. This was most obvious when converting
128+
Redump BIOS DAT files.
12129

13-
- **_Fix_**: When outputting a DAT file of removed titles while using legacy parent/clone
14-
format, the removes DAT file no longer contains clones found in the legacy parent/clone
15-
DAT file.
130+
- **_Fix_**: When outputting a DAT file of removed titles while using legacy parent/clone
131+
format, the removes DAT file no longer contains clones found in the legacy parent/clone
132+
DAT file.
16133

17-
- **_Fix_**: More reliable sorting of exclusions and user option tags in
18-
filenames and descriptions.
134+
- **_Fix_**: More reliable sorting of exclusions and user option tags in
135+
filenames and descriptions.
19136

20-
- **_Fix_**: If a title is in a `<game>` or `<machine>` node, that node is used in the
21-
output DAT file.
137+
- **_Fix_**: If a title is in a `<game>` or `<machine>` node, that node is used in the
138+
output DAT file.
22139

23-
- **_Chore_**: Style fixes and reduction of unnecessary work across the code
24-
base in preparation for building out more comprehensive tests.
140+
- **_Chore_**: Style fixes and reduction of unnecessary work across the code
141+
base in preparation for building out more comprehensive tests.
25142

26143

27144
## 2.02.1 (2024-02-18)
28145

29-
- **_Feature_**: Retool now supports [MAME Redump](https://github.com/MetalSlug/MAMERedump/tree/main)
30-
sets. These DATs match against Redump clone lists.
146+
- **_Feature_**: Retool now supports [MAME Redump](https://github.com/MetalSlug/MAMERedump/tree/main)
147+
sets. These DATs match against Redump clone lists.
31148

32-
- **_Feature_**: You can now choose to use `<machine>` for your title nodes in
33-
the output DAT file instead of `<game>`.
149+
- **_Feature_**: You can now choose to use `<machine>` for your title nodes in
150+
the output DAT file instead of `<game>`.
34151

35-
- **_Change_**: `<rom>` and `<disk>` nodes in an input DAT file no longer need
36-
a size assigned for Retool to process them. This is because CHDs are often
37-
defined with only a hash.
152+
- **_Change_**: `<rom>` and `<disk>` nodes in an input DAT file no longer need
153+
a size assigned for Retool to process them. This is because CHDs are often
154+
defined with only a hash.
38155

39-
- **_Fix_**: If you run Retool CLI on a folder with only one DAT file, and no
40-
titles are in that DAT file that match your preferences, Retool no longer
41-
ends the task with a crash.
156+
- **_Fix_**: If you run Retool CLI on a folder with only one DAT file, and no
157+
titles are in that DAT file that match your preferences, Retool no longer
158+
ends the task with a crash.
42159

43160

44161
## 2.02.0 (2024-02-08)

docs/changelog.md

Lines changed: 141 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,161 @@ hide:
66
# Changelog
77

88

9+
## 2.03.0 (2024-04-06)
10+
11+
- **_Feature_**: Some changes aimed at ROMVault and DATVault users:
12+
13+
- You can now choose not to add MIA attributes to titles and ROMs from clone lists.
14+
This is mainly useful if you're a DATVault subscriber.
15+
16+
- You can now add a quick import folder through **File > Settings**. When you click
17+
the **Add DAT files recursively from your quick import folder** button, all DAT
18+
files in that folder and its subfolders are loaded into Retool.
19+
20+
- You can now replace your input DAT files with the Retool version instead of creating
21+
new files. Make sure you've backed up your original DAT files first.
22+
23+
- By default, Retool no longer processes files it has already processed. You can
24+
bypass this by going to the **Options** tab and enabling
25+
**Allow processing of already processed files**.
26+
27+
- **_Feature_**: Thanks to a rewrite of the compilations code and Retool's new testing
28+
framework, you can now choose how to handle compilations. There are four modes:
29+
30+
- **Default**: Chooses individual titles most of the time. Only chooses compilations
31+
when they have a higher region, language, or clone list priority, or contain
32+
unique titles. When choosing a compilation for unique titles, if other titles in
33+
the compilation have individual equivalents, the individual titles are also
34+
included, leading to some title duplication.
35+
36+
- **Prefer individual titles**: Chooses individual titles regardless of region,
37+
language, and clone list priorities, and discards compilations unless they contain
38+
unique games. You're likely to prefer this mode if you use ROM hacks or Retro
39+
Achievements. When choosing a compilation for unique titles, if other titles in
40+
the compilation have individual equivalents, the individual titles are also
41+
included, leading to some title duplication.
42+
43+
- **Keep individul titles and compilations**: Ignores the relationship between
44+
individual titles and compilations, meaning individual titles are only compared
45+
against other individual titles, and compilations against other compilations. This
46+
option has the most title duplication.
47+
48+
- **Optimize for least possible title duplication**: Beta, not recommended. Prefers
49+
compilations to minimize file count. While this mode can save disk space, it can
50+
be hard to tell what compilations contain based on their filename. This mode might
51+
not choose the most optimal solution when supersets or clone list priorities are
52+
involved.
53+
54+
- **_Change_**: In Retool GUI you now set the global output path in the **Paths** tab.
55+
56+
- **_Change_**: The **Unlicensed** exclude settings are now more intuitively laid out in
57+
Retool GUI, which allows for more granular choices.
58+
59+
- **_Change_**: The `u` exclude option in Retool CLI no longer includes aftermarket and
60+
pirate titles. Instead, set the flags separately for each unlicensed title type: `u`
61+
for `(unl)`, `f` for `(Aftermarket)`, `p` for `(Pirate)`.
62+
63+
- **_Change_**: A separator has been placed between the add and remove buttons in
64+
RetoolGUI, to reduce accidental clicks and to more cleanly separate functions.
65+
66+
- **_Change_**: A majority of the Retool GUI interface is now disabled during processing
67+
to prevent settings changes while the program is working.
68+
69+
- **_Change_**: The open file dialog box now opens at the currently set folder for the
70+
specific Retool option you're changing. This reduces needless navigation.
71+
72+
- **_Change_**: Output DAT file headers have been tweaked a little to make replacing and
73+
splitting DAT files easier.
74+
75+
- **_Change_**: Thanks to [@thiagokokada](https://github.com/thiagokokada), entry points
76+
have been set up properly for Retool. Additionally, Retool now treats the folder where
77+
it lives as the root folder for its relative paths, no matter the current working
78+
directory.
79+
80+
This isn't consequential for Windows users running the EXE file, but to those running
81+
the Python scripts directly and launching from the command line, it means instead of
82+
navigating to the Retool folder and running `python retool.py` or
83+
`python retoolgui.py`, if you have your environment set up correctly you can just run
84+
`retool` or `retoolgui` from anywhere.
85+
86+
Want to try it out? [Clone Retool from the GitHub repo](https://unexpectedpanda.github.io/retool/download/#git-and-python-gui-and-cli),
87+
navigate to the folder it was cloned to, then install it as a package with
88+
`pip install .`. Retool is then installed to your Python scripts folder, and your
89+
config files, clone lists, and metadata files are also kept there. Providing that
90+
folder is added to your system path, you can now run `retool` or `retoolgui` from any
91+
folder on the command line.
92+
93+
There's a caveat: if you do things this way, every time you update Retool you need to
94+
run `pip install --upgrade .` to update the package version too, or you'll see the old
95+
version of Retool when you run `retool` or `retoolgui`.
96+
97+
- **_Change_**: `config/systems/template.yaml` is no longer needed, as Retool now
98+
generates system config files from scratch.
99+
100+
- **_Fix_**: Compensated for yet another of No-Intro's inconsistent date formats, this
101+
time in the (~YYYY-XX-XX) format.
102+
103+
- **_Fix_**: Retool used to try to make another decision if it ultimately chose a bad
104+
dump, a preproduction title, or a pirate title. If the user didn't prefer modern
105+
titles or preferred licensed titles over unlicensed, it would also try again if it
106+
selected a title the user didn't want. This was causing selection errors, particularly
107+
when it came to preferring regions over languages. This is now treated as a filter
108+
instead of a recovery process and happens earlier, resulting in better title
109+
selection.
110+
111+
- **_Fix_**: Fixed the incorrect default region order for system configs, which placed
112+
Europe lower than the global default region order.
113+
114+
- **_Fix_**: Fixed user override titles not being excluded from the output DAT file when
115+
they had already been reassigned groups by a clone list.
116+
117+
- **_Fix_**: Fixed the **Process DAT files** button not enabling if you clicked a button
118+
to add DAT files, cancelled, then actually add DAT files.
119+
120+
- **_Fix_**: Retool now works on Windows Server 2019+.
121+
122+
- **_Chore_**: Removed the `(Homebrew)` tag from Retool's processing, as No-Intro doesn't
123+
use it anymore.
124+
125+
9126
## 2.02.2 (2024-03-08)
10127

11-
- **_Fix_**: Ensured MAME Redump DAT files have unique config settings, but
12-
load Redump clone lists and metadata.
128+
- **_Fix_**: Ensured MAME Redump DAT files have unique config settings, but
129+
load Redump clone lists and metadata.
13130

14-
- **_Fix_**: Fixed titles without regions being assigned a blank set of regions
15-
instead of being set to `(Unknown)`. This was most obvious when converting
16-
Redump BIOS DAT files.
131+
- **_Fix_**: Fixed titles without regions being assigned a blank set of regions
132+
instead of being set to `(Unknown)`. This was most obvious when converting
133+
Redump BIOS DAT files.
17134

18-
- **_Fix_**: When outputting a DAT file of removed titles while using legacy parent/clone
19-
format, the removes DAT file no longer contains clones found in the legacy parent/clone
20-
DAT file.
135+
- **_Fix_**: When outputting a DAT file of removed titles while using legacy parent/clone
136+
format, the removes DAT file no longer contains clones found in the legacy parent/clone
137+
DAT file.
21138

22-
- **_Fix_**: More reliable sorting of exclusions and user option tags in
23-
filenames and descriptions.
139+
- **_Fix_**: More reliable sorting of exclusions and user option tags in
140+
filenames and descriptions.
24141

25-
- **_Fix_**: If a title is in a `<game>` or `<machine>` node, that node is used in the
26-
output DAT file.
142+
- **_Fix_**: If a title is in a `<game>` or `<machine>` node, that node is used in the
143+
output DAT file.
27144

28-
- **_Chore_**: Style fixes and reduction of unnecessary work across the code
29-
base in preparation for building out more comprehensive tests.
145+
- **_Chore_**: Style fixes and reduction of unnecessary work across the code
146+
base in preparation for building out more comprehensive tests.
30147

31148

32149
## 2.02.1 (2024-02-18)
33150

34-
- **_Feature_**: Retool now supports [MAME Redump](https://github.com/MetalSlug/MAMERedump/tree/main)
35-
sets. These DATs match against Redump clone lists.
151+
- **_Feature_**: Retool now supports [MAME Redump](https://github.com/MetalSlug/MAMERedump/tree/main)
152+
sets. These DATs match against Redump clone lists.
36153

37-
- **_Feature_**: You can now choose to use `<machine>` for your title nodes in
38-
the output DAT file instead of `<game>`.
154+
- **_Feature_**: You can now choose to use `<machine>` for your title nodes in
155+
the output DAT file instead of `<game>`.
39156

40-
- **_Change_**: `<rom>` and `<disk>` nodes in an input DAT file no longer need
41-
a size assigned for Retool to process them. This is because CHDs are often
42-
defined with only a hash.
157+
- **_Change_**: `<rom>` and `<disk>` nodes in an input DAT file no longer need
158+
a size assigned for Retool to process them. This is because CHDs are often
159+
defined with only a hash.
43160

44-
- **_Fix_**: If you run Retool CLI on a folder with only one DAT file, and no
45-
titles are in that DAT file that match your preferences, Retool no longer
46-
ends the task with a crash.
161+
- **_Fix_**: If you run Retool CLI on a folder with only one DAT file, and no
162+
titles are in that DAT file that match your preferences, Retool no longer
163+
ends the task with a crash.
47164

48165

49166
## 2.02.0 (2024-02-08)

0 commit comments

Comments
 (0)