Skip to content

[Feature] Import locally saved media in bulk #4257

Description

@PodunkPedant

Is your feature request related to a problem? Please describe.
Currently the only way to add locally saved media (artwork, videos, manuals, etc.) in bulk is by using either the ES-DE or Launchbox import tools. But both of those methods require you to follow the specific schema and limitations of those separate applications, which can make the whole process very finicky.

Personally, I've been using the ES-DE importer to load higher quality 2D boxes, 3D boxes, and physical media I've curated from various download packs from EmuMovies. But because that tool expects you to import everything from an existing ES-DE installation, I've run into multiple roadblocks along the way, some of which have no workaround. Most of the details are off-topic though so I'll leave the longer explanation for the "additional context" section at the bottom.

Describe the solution you'd like
RomM should provide a method to scan and import organized folders or archives of downloaded media. Building on top of the existing scan / scrape / refresh functions would also allow users to automatically pull assets from their curated folders every time they scan or refresh their ROMs.

Sources like EmuMovies already provide downloadable zip archives separated by both platform and category (2d box, 3d box, videos, manuals, etc.) using No-Intro filenames for each item, so you probably wouldn't need to change much to create a more flexible version of the ES-DE importer. Each category folders should mirror the same names used by RomM though (box2d, box2d_side, cover, etc.) instead of duplicating and expanding on ES-DE's list of folder names. It would also be nice if it supported fuzzy matches between the media's filename and the ROM's folder / filename, but requiring exact filename matches would still be close enough for me.

The various media folders wouldn't need to be saved inside the ROMs folder anymore though, so it might make more sense to move them to a separate directory instead (i.e., library/assets/gba/3dboxes). That way you wouldn't have to worry about excluding folder names when scanning for ROMs, it would be easier to use Docker volumes to mount folders saved in different locations or drives. and it would also just look cleaner overall.

Describe alternatives you've considered
I found a few related issues that would help users curate their media more effectively, but none of them address the ability to import local files in bulk.

For example, #3117 and #4133 both ask for ways to manually upload media assets through the UI, but only for individual ROMs one at a time. Similarly, #4178 asks for a way to scan and recognize artwork saved inside a ROM's sub-folder, but again that doesn't provide a convenient way to add these downloaded assets in bulk.

Personally, adding EmuMovies as a media provider (#1233) would get me most of the way to my desired result. I could re-scrape all of those files through RomM instead of downloading, organizing, and importing them myself. But I've also been doing quite a bit of curating between multiple packs and sources as well, so I would still need one of the methods in the last paragraph to easily replace those scraped assets as needed.

Additional context
With my hacky workaround using the ES-DE importer, I've run into several limitations with no workaround or reasonable solution.

For example, I'm forced to define each image path in the gamelist.xml because my folder structure breaks the non-gamelist import method described in the docs. All of my ROMs are in separate folders because I have a lot of pre-patched hacks and translations stored in the appropriate sub-folders. But since ES-DE expects all ROMs to be loose in a single folder instead, I'm pretty sure that file structure is preventing RomM from finding matching images in the appropriate folders (covers, 3dboxes, physicalmedia, etc.) based on filenames alone. I decided not to log that as a separate issue because it's not really the ES-DE importer's fault that my ROM library follows one of RomM's recommended folder structures instead of ES-DE's.

It's also worth noting that even using the gamelist.xml still has its limitations. First I have to use RomM to export the gamelist and assets, then manually edit the XML and assets folder to make any changes. Very inconvenient and time consuming. Plus, I'm still limited to the categories defined by ES-DE. I can download packs of clear logos and box spines from EmuMovies as well, but there's no folder name or gamelist property for those categories (at least according to the RomM docs) so there's no way to import them.

I also can't get the back covers to import correctly (even after #4156 was merged). Weirdly it's able to find the right image and save it in the ROM's resources folder, but it still doesn't appear in the UI under the artwork tab. I could submit a separate bug report for it if you'd like, but I haven't investigated any further than that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions