Is your
gamelist.xmlreally synchronized with the ROMs on your drive?
RetroBat GameList Comparator is a free, open-source Windows utility
specialized in comparing and validating RetroBat gamelist.xml files
against the ROMs actually stored on disk.
Detect missing ROMs, obsolete XML entries, and inconsistencies while correctly handling RetroBat-specific cases such as Hidden, MultiDisk and ZZZ(NotGame) entries.
Latest Release: v2.2.0 ๐
RetroBat GameList Comparator focuses on one specific task:
Compare what is actually on your disk with what your
gamelist.xmlsays should be there.
The application compares a RetroBat ROM folder with its corresponding
gamelist.xml and identifies inconsistencies between the files stored on
disk and the entries recorded in the GameList.
It can detect:
- ROMs present on disk but missing from the GameList
- GameList entries whose ROM files are no longer present
- Path inconsistencies
- Entries that should not be counted as independent games
- RetroBat-specific cases that can otherwise create false positives
Unlike a generic file comparison tool, the comparison engine understands how RetroBat and EmulationStation organize ROM collections.
The goal is to provide a clear, reliable and specialized GameList validation tool for RetroBat users.
RetroBat GameList Comparator is not intended to replace general-purpose collection management tools. Its purpose is to provide a precise view of the relationship between your ROM files and your
gamelist.xml.
- โ Specialized ROM โ GameList comparison
- โ Accurate comparison engine
- โ RetroBat / EmulationStation aware
- โ Hidden & MultiDisk aware
- โ RetroBat special folder support
- โ ScreenScraper
ZZZ(NotGame)detection - โ One-click
ZZZ(NotGame)repair - โ Automatic GameList backup
- โ Platform statistics
- โ TXT / CSV / Diagnostic reports
- โ Platform-aware ROM extension detection
- โ Automatic
es_systems_*.cfgdetection - โ Automatic fallback to
es_systems.cfg - โ Drag & Drop support
- โ English / French / Spanish
- โ Runtime language switching
- โ Automatic language persistence
- โ Automatic update checker
Version 2.2.0 introduces intelligent platform-aware ROM extension detection and significant improvements to the Extension Selector.
The Extension Selector can now automatically detect the ROM extensions configured for the selected RetroBat platform.
The application can use platform-specific configuration files:
es_systems_<platform>.cfg
For example:
es_systems_aquarius.cfg
es_systems_atarist.cfg
es_systems_saturn.cfg
When a platform-specific configuration is not available, the application automatically falls back to:
es_systems.cfg
This allows the Extension Selector to use the extensions actually configured for the selected RetroBat platform.
- โ Automatic detection of platform default extensions
- โ Automatic selection of detected default extensions
- โ
Support for custom
es_systems_*.cfgfiles - โ
Automatic fallback to
es_systems.cfg - โ Visual indication of platform default extensions
- โ Extension source information
- โ Improved behavior when no platform is selected
The Extension Selector has been redesigned and improved to make extension selection easier and more transparent.
- โ Improved column layout
- โ Improved column resizing
- โ Automatic platform extension selection
- โ Clear visual distinction between default and additional extensions
- โ Extension source information
- โ Extension search
- โ Select All
- โ Clear All
- โ Extension counter
- โ Improved multilingual support
The new Extension Selector features are available in:
- ๐ฌ๐ง English
- ๐ซ๐ท Franรงais
- ๐ช๐ธ Espaรฑol
See the CHANGELOG for the complete version history.
- โ
Compare ROM folders with
gamelist.xml - โ Detect ROMs missing from the XML
- โ Detect XML entries missing from disk
- โ Accurate platform game statistics
- โ Recursive folder scanning
- โ Relative path comparison
- โ Path normalization
- โ Progress feedback
- โ Sortable results
The comparison engine has been specifically designed around the way RetroBat and EmulationStation organize GameLists.
Hidden Games
Entries containing:
<hidden>true</hidden>are automatically ignored by the comparison engine.
This prevents hidden entries from being incorrectly reported as missing games.
MultiDisk child files are automatically ignored when appropriate.
This prevents individual disc files from generating false positives and ensures that statistics better match the games actually displayed by RetroBat.
The comparison engine also takes RetroBat special folders into account when determining which entries should be included in the comparison.
The Extension Selector allows you to control which ROM extensions are included in the comparison.
Starting with v2.2.0, the application can automatically detect the extensions configured for the selected RetroBat platform.
It searches for:
es_systems_<platform>.cfg
and automatically falls back to:
es_systems.cfg
when a platform-specific configuration is not available.
Features include:
- โ Automatic platform extension detection
- โ Automatic selection of default extensions
- โ Manual extension selection
- โ Extension search
- โ Select All
- โ Clear All
- โ Extension counter
- โ Visual indication of platform defaults
- โ Extension source information
This allows the comparison to focus on the file types actually relevant to the selected RetroBat platform.
RetroBat GameList Comparator includes dedicated support for ScreenScraper
ZZZ(NotGame) entries.
The application can:
- โ
Detect
ZZZ(NotGame)entries - โ Display a dedicated counter
- โ Display localized information
- โ Generate a dedicated report
- โ Repair entries automatically
The repair process:
- Removes the
ZZZ(NotGame):prefix - Restores:
<hidden>false</hidden>- Creates an automatic GameList backup
- Refreshes the comparison automatically
The automatic backup provides an additional safety layer before modifying the GameList.
The application provides detailed statistics about the comparison.
Statistics include:
- โญ Platform Games
- ROMs Compared
- XML Entries
- Missing from XML
- Missing from Disk
- MultiDisk Ignored
- Hidden Games
ZZZ(NotGame)entries
The objective is to provide statistics that closely match the games actually displayed by RetroBat.
RetroBat GameList Comparator can generate several report types.
Generate a readable text report containing the comparison results.
Export comparison results for further analysis in spreadsheet software.
Generate a diagnostic report containing information useful for analyzing GameList inconsistencies.
A dedicated report is available for ScreenScraper ZZZ(NotGame) entries.
It can include:
- Detected entries
- ROM filename
- Relative path
- Platform statistics
- Generation date
The application is designed to remain simple while providing detailed information when needed.
Available features include:
- โ Drag & Drop
- โ
Automatic
gamelist.xmldetection - โ Smart Compare button
- โ Progress bar
- โ Sortable result lists
- โ Double-click to open a ROM folder
- โ Runtime language switching
- โ Automatic language persistence
You can simply drag files or folders onto the application.
Drag a ROM folder onto the application.
The application automatically:
- Detects the ROM folder
- Fills the ROM folder field
- Searches for the corresponding
gamelist.xml
Drag a gamelist.xml file onto the application.
The application automatically fills the required GameList information.
This makes it possible to start a comparison in only a few seconds.
RetroBat GameList Comparator includes a multilingual system with runtime language switching.
Currently supported languages:
- ๐ฌ๐ง English
- ๐ซ๐ท Franรงais
- ๐ช๐ธ Espaรฑol
- Runtime language switching
- No restart required
- Automatic language persistence
- Automatic refresh of opened windows
- Localized Extension Selector
- Localized ZZZ(NotGame) information
The localization architecture is designed to support additional languages in future releases.
Download the latest Self-contained x64 release.
The self-contained version requires:
- โ No installation
- โ No separate .NET Runtime
Simply extract the ZIP archive and launch:
RetroBatGameListComparator.exe
A smaller portable package is also available.
The portable version requires:
.NET 8 Desktop Runtime
Select the RetroBat ROM folder you want to analyze.
Select the corresponding:
gamelist.xml
You can also use Drag & Drop.
Choose the corresponding RetroBat platform when applicable.
Starting with v2.2.0, the application can automatically detect the platform's configured ROM extensions.
Review the detected extensions and adjust them if necessary.
Platform default extensions are automatically selected when detected.
The application scans the ROM folder and compares the results with the GameList.
The results identify:
- ROMs missing from XML
- XML entries missing from disk
- Hidden games
- MultiDisk entries
ZZZ(NotGame)entries- Platform statistics
ROM Folder
โ
โผ
Select Platform
โ
โผ
Detect RetroBat configuration
โ
โโโ es_systems_<platform>.cfg
โ
โโโ fallback โ es_systems.cfg
โ
โผ
Detect platform extensions
โ
โผ
Select / adjust extensions
โ
โผ
Compare ROM folder
โ
โผ
Compare gamelist.xml
โ
โผ
Display results
โ
โโโ Missing from XML
โโโ Missing from Disk
โโโ Hidden
โโโ MultiDisk
โโโ ZZZ(NotGame)
โ
โผ
Generate reports
The comparison engine is one of the core components of RetroBat GameList Comparator.
It is designed specifically to understand RetroBat GameLists rather than performing a simple filename-to-filename comparison.
The engine automatically handles cases such as:
- Hidden games
- MultiDisk child files
- RetroBat special folders
- Relative paths
- Platform-specific ROM extensions
- ScreenScraper
ZZZ(NotGame)entries
This reduces false positives and provides more meaningful comparison results.
The application is designed to remain lightweight and responsive while working with large RetroBat collections.
The project focuses on:
- Efficient XML loading
- Optimized comparison
- Recursive scanning
- Responsive progress reporting
- Maintainable architecture
Performance and reliability are prioritized over unnecessary complexity.
- C#
- .NET 8
- Windows Forms
- XML
- GitHub REST API
The roadmap focuses on improving GameList validation, diagnostics and maintenance while keeping the comparison engine at the center of the application.
Current priorities include:
- Documentation quality
- Release validation
- Stability
- Performance
- Localization
- User experience
- Advanced GameList diagnostics
- Duplicate detection
- XML consistency validation
- Collection health reports
- Repair suggestions
Quality and reliability always take priority over adding new features.
For more information, see the dedicated ROADMAP.
The following features are ideas for future development and are not currently available unless explicitly listed in the Features section.
Possible future features:
- Duplicate detection
- XML consistency validation
- Collection health reports
- Advanced diagnostics
- Repair suggestions
Possible future features:
- XML cleanup
- Duplicate removal
- Automatic backups
- Metadata consistency checking
- Artwork verification
Possible future features:
- Batch rename
- Batch metadata update
- Batch artwork verification
- Extension conversion support
Possible future formats:
- HTML
- JSON
Possible future improvements:
- Multi-threaded scanning
- Faster XML loading
- Improved comparison engine
- Better memory usage
Possible future translations:
- German
- Italian
- Portuguese
- Community translations
Feature requests, bug reports and pull requests are always welcome.
If you have an idea that could improve the project, please open an Issue on GitHub.
Community feedback plays an important role in shaping the future of RetroBat GameList Comparator.
The current objective is to make RetroBat GameList Comparator a reliable and specialized reference tool for validating RetroBat GameLists.
Current priorities are:
- Reliability
- Performance
- Ease of use
- Accurate comparison
- Clear reporting
- Maintainable architecture
- Localization
- User experience
Quality and stability always have priority over adding new features.
- Automatic detection of platform-specific extension configurations
- Support for custom
es_systems_*.cfg - Fallback to
es_systems.cfg - Automatic platform default extension detection
- Automatic selection of default extensions
- Visual indication of default platform extensions
- Extension source information
- Improved Extension Selector layout
- Improved column layout and resizing
- Improved extension selection behavior
- Improved behavior when no platform is selected
- Improved multilingual support
- Localized platform extension information
- Localized default extension indicators
Introduced the first complete workflow for managing ScreenScraper
ZZZ(NotGame) entries.
ZZZ(NotGame)detection- Dedicated counter
- Localized tooltip
- Dedicated TXT report
- One-click automatic repair
- Automatic GameList backup
- Automatic comparison refresh
- Improved comparison accuracy
- Better handling of RetroBat special folders
This project is licensed under the MIT License.
See the LICENSE file for details.
Created and maintained by theJim
GitHub:
Project:
https://github.com/theJim69/RetroBatGameListComparator
- RetroBat Team
- RetroBat Community
- EmulationStation
- ScreenScraper
- All users who report bugs
- All users who suggest improvements
- Everyone contributing to the RetroBat ecosystem


