base on A beautiful, powerful, self-hosted rom manager and player. <!-- trunk-ignore-all(markdownlint/MD033) --> <!-- trunk-ignore(markdownlint/MD041) --> <div align="center"> <img src=".github/resources/isotipo.png" height="180px" width="auto" alt="romm logo"> <br /> <img src=".github/resources/logotipo.png" height="45px" width="auto" alt="romm logotype"> <h3 style="font-size: 25px;"> A beautiful, powerful, self-hosted rom manager. </h3> <br/> [![license-badge-img]][license-badge] [![release-badge-img]][release-badge] [![docker-pulls-badge-img]][docker-pulls-badge] [![discord-badge-img]][discord-badge] [![docs-badge-img]][docs] </div> </div> # Table of Contents - [Table of Contents](#table-of-contents) - [Overview](#overview) - [Features](#features) - [Preview](#preview) - [Installation](#installation) - [Contributing](#contributing) - [Community](#community) - [Technical Support](#technical-support) - [Project Support](#project-support) - [Our Friends](#our-friends) # Overview RomM (ROM Manager) allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators. ## Features - Scans and enhance your game library with metadata from [IGDB][igdb-api], [Screenscraper][screenscraper-api] and [MobyGames][mobygames-api] - Fetch custom arwork from [SteamGridDB][steamgriddb-api] - Display your achievements from [Retroachievements][retroachievements-api] - Metadata available for [400+ platforms][docs-supported-platforms] - Play games directly from the browser using [EmulatorJS][docs-emulatorjs] and [RuffleRS][docs-rufflers] - Share your library with friends with limited access and permissions - Official apps for [Playnite][playnite-app] and [muOS][muos-app] - Supports multi-disk games, DLCs, mods, hacks, patches, and manuals - Parse and filter by [tags][docs-tag-support] in filenames - View, upload, update, and delete games from any modern web browser ## Preview | 🖥 Desktop | 📱 Mobile | | :------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------: | | <img src=".github/resources/screenshots/preview-desktop.webp" alt="desktop preview" /> | <img style="width: 325px; aspect-ratio: auto;" src=".github/resources/screenshots/preview-mobile.webp" alt="mobile preview" /> | # Installation To start using RomM, check out the [Quick Start Guide][docs-quick-start-guide] in the docs. If you are having issues with RomM, please review the page for [troubleshooting steps][docs-troubleshooting]. # Contributing To contribute to RomM, please check [Contribution Guide](./CONTRIBUTING.md). # Community Here are a few projects maintained by members of our community. Please note that the RomM team does not regularly review their source code. - [romm-comm][romm-comm-discord-bot]: Discord Bot by @idio-sync - [DeckRommSync][deck-romm-sync]: SteamOS downloader and sync by @PeriBluGaming - CasaOS app via the [BigBear App Store][big-bear-casaos] Join us on Discord, where you can ask questions, submit ideas, get help, showcase your collection, and discuss RomM with other users. [![discord-invite-img]][discord-invite] # Technical Support If you have any issues with RomM, please [open an issue](https://github.com/rommapp/romm/issues/new) in this repository. # Project Support Consider supporting the development of this project on Open Collective. [![oc-donate-img]][oc-donate] # Our Friends Here are a few projects that we think you might like: - [EmulatorJS](https://emulatorjs.org/): An embeddable, browser-based emulator - [RetroDECK](https://retrodeck.net/): Retro gaming on SteamOS and Linux - [ES-DE Frontend](https://es-de.org/): Emulator frontend for Linux, macOS and Windows - [Gaseous](https://github.com/gaseous-project/gaseous-server): Another ROM manager with web-based emulator - [Retrom](https://github.com/JMBeresford/retrom): A centralized game library/collection management service - [Steam ROM Manager](https://steamgriddb.github.io/steam-rom-manager/): An app for managing ROMs in Steam <!-- docs links --> [docs]: https://docs.romm.app/latest/ [docs-quick-start-guide]: https://docs.romm.app/latest/Getting-Started/Quick-Start-Guide/ [docs-supported-platforms]: https://docs.romm.app/latest/Platforms-and-Players/Supported-Platforms/ [docs-emulatorjs]: https://docs.romm.app/latest/Platforms-and-Players/EmulatorJS-Player/ [docs-rufflers]: https://docs.romm.app/latest/Platforms-and-Players/RuffleRS-Player/ [docs-troubleshooting]: https://docs.romm.app/latest/Troubleshooting/Scanning-Issues/ [docs-tag-support]: https://docs.romm.app/latest/Getting-Started/Folder-Structure/#tag-support <!-- Badges --> [license-badge-img]: https://img.shields.io/github/license/rommapp/romm?style=for-the-badge&color=a32d2a [license-badge]: LICENSE [release-badge-img]: https://img.shields.io/github/v/release/rommapp/romm?style=for-the-badge [release-badge]: https://github.com/rommapp/romm/releases [discord-badge-img]: https://img.shields.io/badge/discord-7289da?style=for-the-badge [discord-badge]: https://discord.gg/P5HtHnhUDH [docs-badge-img]: https://img.shields.io/badge/docs-736e9b?style=for-the-badge [docker-pulls-badge-img]: https://img.shields.io/docker/pulls/rommapp/romm?style=for-the-badge&label=pulls [docker-pulls-badge]: https://hub.docker.com/r/rommapp/romm <!-- Links --> [discord-invite-img]: https://invidget.switchblade.xyz/P5HtHnhUDH [discord-invite]: https://discord.gg/P5HtHnhUDH [oc-donate-img]: https://opencollective.com/romm/donate/button.png?color=blue [oc-donate]: https://opencollective.com/romm <!-- External links --> [igdb-api]: https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#igdb [screenscraper-api]: https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#screenscraper [mobygames-api]: https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#mobygames [steamgriddb-api]: https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#steamgriddb [retroachievements-api]: https://docs.romm.app/latest/Getting-Started/Generate-API-Keys/#retroachievements [big-bear-casaos]: https://github.com/bigbeartechworld/big-bear-casaos [romm-comm-discord-bot]: https://github.com/idio-sync/romm-comm [deck-romm-sync]: https://github.com/PeriBluGaming/DeckRommSync-Standalone [playnite-app]: https://github.com/rommapp/playnite-plugin [muos-app]: https://github.com/rommapp/muos-app ", Assign "at most 3 tags" to the expected json: {"id":"8582","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"