ROMDock 2 is my attempt to give a retro game collection one place to live. The library is only part of that: there are also emulator settings, saves, memory cards, artwork, and the record of what I have been playing.
The project is a Python desktop application with a Tkinter interface. Its organizing idea is a portable folder containing the application’s data. Moving the collection should not mean piecing it back together from a collection of unrelated locations.
A library connected to real files
The library scans game folders by system. It can import files, refresh the collection, remove entries for files that have disappeared, and launch a selected game. Artwork is cached locally, and playtime is stored with the profile.
Emulator launching is configured through manifests. That separates the question of which game is selected from the details of how a particular emulator starts. Missing emulator or BIOS requirements can be reported before launching.
Finishing a download is only one step
The download workflow has distinct stages for downloading, extracting, and importing. A finished transfer does not necessarily mean the game is ready in the library. ROMDock keeps that distinction in its status tracking.
That is a small interface detail with a practical consequence: the user needs to know whether there is still work happening after the network transfer stops.
Making the desktop interface comfortable
The interface includes separate areas for the library, downloads, saves, emulators, and settings. Themes and display scaling handle presentation, while controller navigation provides another way to move around the app.
There are also components for RetroAchievements, Discord presence, and Google Drive backup. Those integrations sit around the local library; they are not the definition of the project.
Where this version stands
This is a work in progress. The source includes save and backup workflows, but the project notes still identify restore and conflict handling as unfinished work. I am not presenting the integrations as a fully validated backup product.
The part worth documenting is the coordination: connecting files, launch settings, download states, and saved progress in one interface. A library manager becomes much more useful when those pieces agree about what is ready and what still needs attention.