Skip to content

Latest commit

ย 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ RetroBat GameList Comparator

Is your gamelist.xml really 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 ๐Ÿš€

Version GitHub Downloads License .NET Windows


๐ŸŽฏ What is RetroBat GameList Comparator?

RetroBat GameList Comparator focuses on one specific task:

Compare what is actually on your disk with what your gamelist.xml says 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.


โญ Highlights

  • โœ” 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_*.cfg detection
  • โœ” Automatic fallback to es_systems.cfg
  • โœ” Drag & Drop support
  • โœ” English / French / Spanish
  • โœ” Runtime language switching
  • โœ” Automatic language persistence
  • โœ” Automatic update checker

๐Ÿ†• What's New in v2.2.0

Version 2.2.0 introduces intelligent platform-aware ROM extension detection and significant improvements to the Extension Selector.

๐ŸŽฎ Automatic Platform Extension Detection

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.

New behavior

  • โœ… Automatic detection of platform default extensions
  • โœ… Automatic selection of detected default extensions
  • โœ… Support for custom es_systems_*.cfg files
  • โœ… Automatic fallback to es_systems.cfg
  • โœ… Visual indication of platform default extensions
  • โœ… Extension source information
  • โœ… Improved behavior when no platform is selected

๐Ÿงฉ Extension Selector Improvements

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

๐ŸŒ v2.2.0 Localization

The new Extension Selector features are available in:

  • ๐Ÿ‡ฌ๐Ÿ‡ง English
  • ๐Ÿ‡ซ๐Ÿ‡ท Franรงais
  • ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol

See the CHANGELOG for the complete version history.


โœจ Features

๐Ÿ” Comparison

  • โœ… 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

๐ŸŽฎ RetroBat / EmulationStation Support

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 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.

RetroBat Special Folders

The comparison engine also takes RetroBat special folders into account when determining which entries should be included in the comparison.


๐Ÿ“ ROM Extensions

The Extension Selector allows you to control which ROM extensions are included in the comparison.

Automatic Detection

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.

Extension Selector

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.


๐Ÿ†• ScreenScraper ZZZ(NotGame)

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

Automatic Repair

The repair process:

  1. Removes the ZZZ(NotGame): prefix
  2. Restores:
<hidden>false</hidden>
  1. Creates an automatic GameList backup
  2. Refreshes the comparison automatically

The automatic backup provides an additional safety layer before modifying the GameList.


๐Ÿ“Š Statistics

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.


๐Ÿ“„ Reports

RetroBat GameList Comparator can generate several report types.

TXT

Generate a readable text report containing the comparison results.

CSV

Export comparison results for further analysis in spreadsheet software.

GameList Diagnostic Report

Generate a diagnostic report containing information useful for analyzing GameList inconsistencies.

ZZZ(NotGame) Report

A dedicated report is available for ScreenScraper ZZZ(NotGame) entries.

It can include:

  • Detected entries
  • ROM filename
  • Relative path
  • Platform statistics
  • Generation date

๐Ÿ–ฑ๏ธ User Interface

The application is designed to remain simple while providing detailed information when needed.

Available features include:

  • โœ… Drag & Drop
  • โœ… Automatic gamelist.xml detection
  • โœ… Smart Compare button
  • โœ… Progress bar
  • โœ… Sortable result lists
  • โœ… Double-click to open a ROM folder
  • โœ… Runtime language switching
  • โœ… Automatic language persistence

๐ŸŽฏ Drag & Drop

You can simply drag files or folders onto the application.

๐Ÿ“ ROM Folder

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

๐Ÿ“„ GameList

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.


๐ŸŒ Localization

RetroBat GameList Comparator includes a multilingual system with runtime language switching.

Currently supported languages:

  • ๐Ÿ‡ฌ๐Ÿ‡ง English
  • ๐Ÿ‡ซ๐Ÿ‡ท Franรงais
  • ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol

Localization Features

  • 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.


๐Ÿ“ธ Screenshots

Main Window


About


Extension Selector


๐Ÿš€ Installation

Recommended โ€” Self-contained x64

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

Latest Release

Download the latest release


Portable Version

A smaller portable package is also available.

The portable version requires:

.NET 8 Desktop Runtime

๐Ÿ–ฑ๏ธ Usage

1. Select your ROM folder

Select the RetroBat ROM folder you want to analyze.

2. Select the GameList

Select the corresponding:

gamelist.xml

You can also use Drag & Drop.

3. Select the platform

Choose the corresponding RetroBat platform when applicable.

Starting with v2.2.0, the application can automatically detect the platform's configured ROM extensions.

4. Select the extensions

Review the detected extensions and adjust them if necessary.

Platform default extensions are automatically selected when detected.

5. Click Compare

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

๐Ÿ“‹ Example Workflow

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

๐Ÿง  Comparison Engine

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.


โšก Performance

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.


๐Ÿ›  Built With

  • C#
  • .NET 8
  • Windows Forms
  • XML
  • GitHub REST API

๐Ÿ“‹ Roadmap

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.


๐Ÿ’ก Future Ideas

The following features are ideas for future development and are not currently available unless explicitly listed in the Features section.

๐Ÿ” Advanced Analysis

Possible future features:

  • Duplicate detection
  • XML consistency validation
  • Collection health reports
  • Advanced diagnostics
  • Repair suggestions

๐Ÿ›  GameList Maintenance

Possible future features:

  • XML cleanup
  • Duplicate removal
  • Automatic backups
  • Metadata consistency checking
  • Artwork verification

โš™๏ธ Batch Operations

Possible future features:

  • Batch rename
  • Batch metadata update
  • Batch artwork verification
  • Extension conversion support

๐Ÿ“Š Additional Reports

Possible future formats:

  • HTML
  • PDF
  • JSON

๐Ÿš€ Performance

Possible future improvements:

  • Multi-threaded scanning
  • Faster XML loading
  • Improved comparison engine
  • Better memory usage

๐ŸŒ Additional Languages

Possible future translations:

  • German
  • Italian
  • Portuguese
  • Community translations

๐Ÿค Community

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.


๐ŸŽฏ Current Focus

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.


๐Ÿ“œ Version History

v2.2.0 โ€” August 13, 2026

๐ŸŽฎ Platform Extension Detection

  • 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

๐Ÿงฉ Extension Selector Improvements

  • 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

v2.1.0

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

๐Ÿ“„ License

This project is licensed under the MIT License.

See the LICENSE file for details.


๐Ÿ‘ค Author

Created and maintained by theJim

GitHub:

https://github.com/theJim69

Project:

https://github.com/theJim69/RetroBatGameListComparator


โค๏ธ Special Thanks

  • RetroBat Team
  • RetroBat Community
  • EmulationStation
  • ScreenScraper
  • All users who report bugs
  • All users who suggest improvements
  • Everyone contributing to the RetroBat ecosystem

โญ If you like this project, consider giving it a star on GitHub!

It helps the project gain visibility and motivates future development.

Thank you for your support! โค๏ธ

About

Professional tool for comparing, validating and maintaining RetroBat GameList.xml files.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages