diff --git a/modules/dat/process_dat.py b/modules/dat/process_dat.py
index 7a9099f..bb8650c 100644
--- a/modules/dat/process_dat.py
+++ b/modules/dat/process_dat.py
@@ -395,6 +395,9 @@ def __init__(
else:
self.categories.append(category)
+ self.categories = category_assign(
+ self.full_name, self.categories, (config.regex.addons,), 'Add-Ons'
+ )
self.categories = category_assign(
self.full_name, self.categories, (config.regex.programs,), 'Applications'
)
diff --git a/modules/titletools.py b/modules/titletools.py
index ad084b5..a9db259 100644
--- a/modules/titletools.py
+++ b/modules/titletools.py
@@ -125,6 +125,9 @@ def __init__(self, LANGUAGES: str) -> None:
self.secam_2: Pattern[str] = re.compile('\\[(.*)?SECAM(.*)?\\]')
# Other tags
+ self.addons: Pattern[str] = re.compile(
+ '\\((?:Addon(?: for XBLA)?|DLC)\\)', flags=re.I
+ )
self.aftermarket: Pattern[str] = re.compile('\\(Aftermarket\\)', flags=re.I)
self.alt: Pattern[str] = re.compile('\\(Alt.*?\\)', flags=re.I)
self.bad: Pattern[str] = re.compile('\\[b\\]', flags=re.I)
diff --git a/tests/source/features/Retool - Exclusions.dat b/tests/source/features/Retool - Exclusions.dat
index 9e0f631..054287f 100644
--- a/tests/source/features/Retool - Exclusions.dat
+++ b/tests/source/features/Retool - Exclusions.dat
@@ -14,12 +14,27 @@
-
+
Add-Ons
Test Title 1 (USA)
+
+
+ Test Title 51 (USA) (Addon)
+
+
+
+
+ Test Title 52 (USA) (DLC)
+
+
+
+
+ Test Title 55 (USA) (Addon for XBLA)
+
+