I had an idea once but not the time nor motivation to build it: a database of game design with links to gameplay snippets.
So for example an article on "2D platforming" that discusses the implementation in Super Mario, and includes a "demo" button which launches a web emulator with a save state that demonstrates a specific jumping section of the game.
Legally perilous maybe, although my non-lawyer brain sees that as fair use, especially if the emulator doesn't let you play the full game. Idk, but it'd be a unique thing on the internet.
Edit: this is awesome btw, im definitely setting up a personal instance soon
show comments
bane
RomM is a great project! I've so excited to see the integrations coming along.
As somebody who's setup a lot of little retroboxes, the idea of doing it once and having my collection served off of my homelab to all my other devices is incredibly appealing. Web-based emulation has come a very long way. Still I prefer to play off of my individual devices many of which don't have good browser support.
Setting those systems up can take hours each, but being able to point something like a Batocera instance or an ES-DE setup at a server and have it self populate with roms, bios files, screenshots, etc, would be a dream. It sounds like this might be the future of the emulation ecosystem and it sounds amazing!
show comments
M95D
Fetching anything from the internet means some cloud knows what games I'm playing. It's a privacy risk. Games played are very revealing to personality type, and probably lots of other individual info, and that means the temptation to gather this data and sell it to advertisers is very high.
show comments
oersted
Side note: for those with large PC game libraries, Playnite is a godsend!
It has a similar UX as RomM, in fact it seems to be inspired by Playnite and has a plugin for it. It also uses most of the same metadata sources.
Playnite is quite mature and powerful now, with a rich ecosystem of extensions, data sources and themes. And even though I am not much of an emulator user, it was easy to hook up to any emulator and local ROM, like Breath of the Wild with Cemu or Pokemon Emerald on VBA.
Not to in any way suggest that you should use Playnite instead of RomM, it looks like a great app, just thought it would be relevant to mention.
show comments
indigodaddy
Tried the first NES game off the demo. Surprisingly playable/enjoyable on mobile (Android chrome)! I feel like even a few years ago that the experience in mobile browser on some random retro game site was not even close to this good? Is emulatorJS pretty new or does this project just have all the pieces working perfectly?
show comments
dawnerd
I'm using it mostly as a way to keep my copies of GOG games organized. I could use GOG's app, but the point of having fully offline copies is to not have them under the control of the people you bought them from.
Romm works really great for this too.
atrus
Thank you for being AGPLv3, and an extra big thank you for clearly laying out the needed directory structure. Sometimes it's not always clear. The docs in general are great!
show comments
roger_
Been tracking this for a while and it really needs support for renaming and validating ROMs (e.g. with .dat files) to be called a “ROM manager”.
show comments
garrettjoecox
Could you explain the benefits of using this over retroarch, lakka.tv, emulator station, EmuDeck (steam deck wrapper around some of these), etc.
Playing through a browser seems like a downside for me personally
show comments
VonGuard
Been using this for a while. It's evolving rapidly and the team behind it is very responsive and passionate. Very excited to see this evolve over time! The only thing that it really needs going forward is more Retroarch cores ported to JavaScript, but that's an upstream problem.
show comments
zunk
This might be a stupid question. But can you have a general import folder were you just dump a rom and the app IDs it and moves it to the correct system folder?
I have this installed on my unRAID instance and haven't yet figured this out..
show comments
zahlman
My first thought was, what does it mean for a program like this to be "hosted" in the first place?
My second thought was, for people who play a lot of ROMs, they're either doing it because they know more about those games than typical online metadata sources do; and/or a big chunk of them are modded or even completely homebrew.
show comments
jfinnery
Any way to run the Docker version without the external DB requirement? I have a bunch of things running on my home server and so far every one is a single image with no external requirements, which is very nice. Everything that needs a DB just uses sqlite, makes it operationally very simple, and nothing I do even comes within the same universe as the kind of usage that'd cause sqlite to become a bottleneck (and this doesn't look like it would, either).
show comments
shitloadofbooks
I made my own really mediocre version of this 2 years ago just for PS4 and Switch ROMS, also using IGDB etc. Glad to see something so polished and professional looking.
For the maintainers, does this pull the metadata (e.g Title ID or PKG ID) from the (supported) ROM files directly, or only from the filename? I skimmed the README and Docs and couldn't find a clear answer.
show comments
haolez
This would be super cool if it becomes a smart TV app. Couldn't be too far off, right?
show comments
pipes
Looks lovely. Thanks for creating this.
If you have time:
Does it (or can it) run emulators natively? I'm trying to get my head around js emulator, how is that libretro? Is libretro compiled to wasm?
Is it running retro arch underneath or have you managed to implement the libretro API?
I love and hate retroarch. Its menus are ridiculous but it's still easier than managing multiple emulators.
show comments
Gamemaster1379
I get the impression the authors are monitoring the thread. I'm not home to check this out but I like the idea. A few questions.
1. Does the web interface allow you to download your ROMs in a similar fashion to Plex letting you download your files? I could see myself using this to fetch from my libraries and would like a nice GUI box art interface to grab a game I'm looking for.
2. How does this work with ROM hacks? How is the metadata pulled? Filename? Header? How could I set custom metadata where it doesn't match.
3. Does this have an accessible and documented API if I want to build extensions to it (or am I forced to use the interface?)
show comments
mingw__
Seeing the integration with RetroAchievements is especially appreciated!
UI_at_80x24
I'm not really understanding the usecase here.
Is it MAME but for playing in a browser?
show comments
reactordev
Reminds me of a “steam” inspired version of hyperspin. Cool! Great work. Still looking for a good hyperspin replacement that runs on Linux that I can use for my machines.
show comments
typh00n
killer feature for me at least would be to be able to net-play co-op games via emulatorjs in the browser. :)
johanyc
This is so cool and you can play it directly on the browser
show comments
pdntspa
Can we collectively stop using the word "beautiful" for app descriptions. It is so overused and now effectively meaningless. Besides, beauty is supposed to be in the eye of the beholder, not the creator trying to put words in other peoples' mouths.
If you are aiming for 'beauty' (whatever that actually means), then build it to a high standard and let other people find the words on their own accord.
I had an idea once but not the time nor motivation to build it: a database of game design with links to gameplay snippets.
So for example an article on "2D platforming" that discusses the implementation in Super Mario, and includes a "demo" button which launches a web emulator with a save state that demonstrates a specific jumping section of the game.
Legally perilous maybe, although my non-lawyer brain sees that as fair use, especially if the emulator doesn't let you play the full game. Idk, but it'd be a unique thing on the internet.
Edit: this is awesome btw, im definitely setting up a personal instance soon
RomM is a great project! I've so excited to see the integrations coming along.
As somebody who's setup a lot of little retroboxes, the idea of doing it once and having my collection served off of my homelab to all my other devices is incredibly appealing. Web-based emulation has come a very long way. Still I prefer to play off of my individual devices many of which don't have good browser support.
Setting those systems up can take hours each, but being able to point something like a Batocera instance or an ES-DE setup at a server and have it self populate with roms, bios files, screenshots, etc, would be a dream. It sounds like this might be the future of the emulation ecosystem and it sounds amazing!
Fetching anything from the internet means some cloud knows what games I'm playing. It's a privacy risk. Games played are very revealing to personality type, and probably lots of other individual info, and that means the temptation to gather this data and sell it to advertisers is very high.
Side note: for those with large PC game libraries, Playnite is a godsend!
It has a similar UX as RomM, in fact it seems to be inspired by Playnite and has a plugin for it. It also uses most of the same metadata sources.
Playnite is quite mature and powerful now, with a rich ecosystem of extensions, data sources and themes. And even though I am not much of an emulator user, it was easy to hook up to any emulator and local ROM, like Breath of the Wild with Cemu or Pokemon Emerald on VBA.
Not to in any way suggest that you should use Playnite instead of RomM, it looks like a great app, just thought it would be relevant to mention.
Tried the first NES game off the demo. Surprisingly playable/enjoyable on mobile (Android chrome)! I feel like even a few years ago that the experience in mobile browser on some random retro game site was not even close to this good? Is emulatorJS pretty new or does this project just have all the pieces working perfectly?
I'm using it mostly as a way to keep my copies of GOG games organized. I could use GOG's app, but the point of having fully offline copies is to not have them under the control of the people you bought them from.
Romm works really great for this too.
Thank you for being AGPLv3, and an extra big thank you for clearly laying out the needed directory structure. Sometimes it's not always clear. The docs in general are great!
Been tracking this for a while and it really needs support for renaming and validating ROMs (e.g. with .dat files) to be called a “ROM manager”.
Could you explain the benefits of using this over retroarch, lakka.tv, emulator station, EmuDeck (steam deck wrapper around some of these), etc.
Playing through a browser seems like a downside for me personally
Been using this for a while. It's evolving rapidly and the team behind it is very responsive and passionate. Very excited to see this evolve over time! The only thing that it really needs going forward is more Retroarch cores ported to JavaScript, but that's an upstream problem.
This might be a stupid question. But can you have a general import folder were you just dump a rom and the app IDs it and moves it to the correct system folder?
I have this installed on my unRAID instance and haven't yet figured this out..
My first thought was, what does it mean for a program like this to be "hosted" in the first place?
My second thought was, for people who play a lot of ROMs, they're either doing it because they know more about those games than typical online metadata sources do; and/or a big chunk of them are modded or even completely homebrew.
Any way to run the Docker version without the external DB requirement? I have a bunch of things running on my home server and so far every one is a single image with no external requirements, which is very nice. Everything that needs a DB just uses sqlite, makes it operationally very simple, and nothing I do even comes within the same universe as the kind of usage that'd cause sqlite to become a bottleneck (and this doesn't look like it would, either).
I made my own really mediocre version of this 2 years ago just for PS4 and Switch ROMS, also using IGDB etc. Glad to see something so polished and professional looking.
For the maintainers, does this pull the metadata (e.g Title ID or PKG ID) from the (supported) ROM files directly, or only from the filename? I skimmed the README and Docs and couldn't find a clear answer.
This would be super cool if it becomes a smart TV app. Couldn't be too far off, right?
Looks lovely. Thanks for creating this.
If you have time:
Does it (or can it) run emulators natively? I'm trying to get my head around js emulator, how is that libretro? Is libretro compiled to wasm?
Is it running retro arch underneath or have you managed to implement the libretro API?
I love and hate retroarch. Its menus are ridiculous but it's still easier than managing multiple emulators.
I get the impression the authors are monitoring the thread. I'm not home to check this out but I like the idea. A few questions.
1. Does the web interface allow you to download your ROMs in a similar fashion to Plex letting you download your files? I could see myself using this to fetch from my libraries and would like a nice GUI box art interface to grab a game I'm looking for. 2. How does this work with ROM hacks? How is the metadata pulled? Filename? Header? How could I set custom metadata where it doesn't match. 3. Does this have an accessible and documented API if I want to build extensions to it (or am I forced to use the interface?)
Seeing the integration with RetroAchievements is especially appreciated!
I'm not really understanding the usecase here.
Is it MAME but for playing in a browser?
Reminds me of a “steam” inspired version of hyperspin. Cool! Great work. Still looking for a good hyperspin replacement that runs on Linux that I can use for my machines.
killer feature for me at least would be to be able to net-play co-op games via emulatorjs in the browser. :)
This is so cool and you can play it directly on the browser
Can we collectively stop using the word "beautiful" for app descriptions. It is so overused and now effectively meaningless. Besides, beauty is supposed to be in the eye of the beholder, not the creator trying to put words in other peoples' mouths.
If you are aiming for 'beauty' (whatever that actually means), then build it to a high standard and let other people find the words on their own accord.