[Support] Eurotimmy - RomM (ROM Manager) by zurdi15


Recommended Posts

This is a support thread for the Unraid CA installation of RomM.

 

A thoroughly documented setup guide kindly written by @Green Dragon is in this post.

Green Dragon is active in both here in the Unraid community and directly with the official Discord support community.


The official support for RomM is very active on Discord... it's got the developer (zurdi15) along with plenty of super smart folks... which include a number of our fellow Unraid users.

 

OFFICIAL SUPPORT
Discord - RomM -support

Edited by Eurotimmy
Green Dragon - setup guide
  • Like 1
Link to comment

This is a great idea and I'm glad to help flesh out the community knowledge on this. I've installed the container using the new unraid template, but I'm having some difficulty in configuration.

The template doesn't have an entry for a config directory, and no config.yml is created under the /mnt/user/appdata/romm/ directory tree.

Modifying config.yml is the way ROMM usually works, for things like mapping custom library paths to supported platforms, however if I execute a shell in the running container (which means looking at the underlying disk from the docker daemon, not the user-modifiable appdata directory), I only see /backend/config/tests/fixtures/config.yml ... which is marked internally as a test/sample file only.

Can someone fill me in on the missing piece here? Is the "test" config.yml actually live, so if I create a manual mount path for /backend/config/tests/fixtures/ in unraid's docker config for romm, it will allow me to create and modify my own config? Should I create a configmap for config.yml to mount at /backend/config/config.yml in the container, which will override any default configuration?

Thanks in advance, I will be glad to help troubleshoot and share anything that can help here.

Edited by iamroot4ever
Link to comment

So...I did two things to get mine working.
1.) change the "Config File" mapping from /romm/config.yml = /some/mnt/path/appdata/romm/config.yml  to /romm = /some/mnt/path/appdata/romm

2.) That initial config generated an empty FOLDER [...]/appdata/romm/config.yml/  -- DELETE THIS FOLDER, and copy the contents from here: https://github.com/zurdi15/romm/blob/release/examples/config.example.yml into a new config.yml FILE

 

That at least started up....now to explore from there!

Link to comment

hi i have this problem and romm dosn´t start

uring handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/backend/watcher.py", line 6, in <module>
    from endpoints.scan import scan_platforms
  File "/backend/endpoints/scan.py", line 5, in <module>
    from utils import fs, fastapi
  File "/backend/utils/fs.py", line 18, in <module>
    from config.config_loader import config
  File "/backend/config/config_loader.py", line 78, in <module>
    config = ConfigLoader().config
  File "/backend/config/config_loader.py", line 30, in __init__
    self._parse_config()
  File "/backend/config/config_loader.py", line 56, in _parse_config
    self.config, "exclude.platforms", []
AttributeError: 'ConfigLoader' object has no attribute 'config'
Traceback (most recent call last):
  File "/backend/config/config_loader.py", line 25, in __init__
    with open(config_path) as config_file:
IsADirectoryError: [Errno 21] Is a directory: '/romm/config.yml'

 

Sorry for my bad english and thanks for help

Link to comment

Thank you @NeoMatrixJR, doing that enabled the container to start. The only other issue I am having is a Twitch related issue that I'm hoping someone here may have experienced and may know a work around. Whereas RomM is relying on Twitch API for it's metadata I am having to create an API. However everytime I attempt to create an API and I click 'Create' nothing happens it just sits there. I have searched Twitch forums and there's no real solution other than login and back out, which I have done several times but still get the same.

 

  • Upvote 1
Link to comment
11 hours ago, NeoMatrixJR said:

So...I did two things to get mine working.
1.) change the "Config File" mapping from /romm/config.yml = /some/mnt/path/appdata/romm/config.yml  to /romm = /some/mnt/path/appdata/romm

2.) That initial config generated an empty FOLDER [...]/appdata/romm/config.yml/  -- DELETE THIS FOLDER, and copy the contents from here: https://github.com/zurdi15/romm/blob/release/examples/config.example.yml into a new config.yml FILE

 

That at least started up....now to explore from there!

This worked for me. That config file needs to be auto generated.

Link to comment

I found that the folder layout is very important.
Your folders must be in this format for it to pick up the games.
library/
├─ roms/
│  ├─ gbc/
│  │  ├─ rom_1.gbc
│  │  ├─ rom_2.gbc
│  │
│  ├─ gba/
│  │  ├─ rom_1.gba
│  │  ├─ rom_2.gba
│  │
│  ├─ ps/
│     ├─ my_multifile_game/
│     │   ├─ my_game_cd1.iso
│     │   ├─ my_game_cd2.iso
│     │
│     ├─ rom_1.iso

Edited by Bfox135
Link to comment
15 hours ago, S3v3nD34dly51ns said:

Thank you @NeoMatrixJR, doing that enabled the container to start. The only other issue I am having is a Twitch related issue that I'm hoping someone here may have experienced and may know a work around. Whereas RomM is relying on Twitch API for it's metadata I am having to create an API. However everytime I attempt to create an API and I click 'Create' nothing happens it just sits there. I have searched Twitch forums and there's no real solution other than login and back out, which I have done several times but still get the same.

 

 

Two things:

 

1) I can't get the container to start. I have changed the "Config File" mapping from /romm/config.yml = /some/mnt/path/appdata/romm/config.yml  to /romm = /some/mnt/path/appdata/romm.  I have also deleted the empty /appdata/romm/config.yml folder.  This is what the log says:

 

Traceback (most recent call last):
  File "/backend/config/config_loader.py", line 25, in __init__
    with open(config_path) as config_file:
IsADirectoryError: [Errno 21] Is a directory: '/romm/config.yml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/backend/watcher.py", line 6, in <module>
    from endpoints.scan import scan_platforms
  File "/backend/endpoints/scan.py", line 5, in <module>
    from utils import fs, fastapi
  File "/backend/utils/fs.py", line 18, in <module>
    from config.config_loader import config
  File "/backend/config/config_loader.py", line 78, in <module>
    config = ConfigLoader().config
  File "/backend/config/config_loader.py", line 30, in __init__
    self._parse_config()
  File "/backend/config/config_loader.py", line 56, in _parse_config
    self.config, "exclude.platforms", []
AttributeError: 'ConfigLoader' object has no attribute 'config'
Traceback (most recent call last):
  File "/backend/config/config_loader.py", line 25, in __init__
    with open(config_path) as config_file:
IsADirectoryError: [Errno 21] Is a directory: '/romm/config.yml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/backend/watcher.py", line 6, in <module>
    from endpoints.scan import scan_platforms
  File "/backend/endpoints/scan.py", line 5, in <module>
    from utils import fs, fastapi
  File "/backend/utils/fs.py", line 18, in <module>
    from config.config_loader import config
  File "/backend/config/config_loader.py", line 78, in <module>
    config = ConfigLoader().config
  File "/backend/config/config_loader.py", line 30, in __init__
    self._parse_config()
  File "/backend/config/config_loader.py", line 56, in _parse_config
    self.config, "exclude.platforms", []
AttributeError: 'ConfigLoader' object has no attribute 'config'

 

 

2) As for the Twitch app creation to get the API, I had the same issue.  If you are like me the problem is that you are naming the Application with one word.  Use two words or more to name your application.  It will create it then.  

Link to comment

Hey all, sorry for my slow timing… typical end-of-year tasks taking precedence. 
 

Thank you to you folks above for sharing solutions. 
 

The RomM template (in Unraid CA) and it’s instructional notes have just been updated, I’ll keep doing so as changes / fixes emerge. 
 

Most people’s RomM install troubles will be the “Config” file part initially… to fix this:

Manually copy the sample.config.yml in the RomM repo to your server, name it as your your …appdata/romm/config.yml file. 
Then delete the empty directory named ‘config.yml’ to clean up, if you have one. 
Cheers to @NeoMatrixJR for contributing this one!

Edited by Eurotimmy
Clarity
Link to comment

Hello everyone, RomM creator here! 

First of all, thank you all for giving RomM an opportunity and showing interest on it!

 

Said that, I am sorry for the current bad support of unraid, I don't have any machine to test it right now so I am blind on this.

 

In any case, I will take note, because I know that the hardest entry point for new users is the twitch api keys and the config.ym file. We have plans to auto-generate this file if the user don't generate it manually at the setup of RomM and in the future that file will be managed in the front aswel to be easier for the users. 

About the URL field when creating the twitch api keys, just put "http://localhost" and it should works. You have a section in the RomM's wiki with some tips and troubeshooting: https://github.com/zurdi15/romm/wiki/Troubleshooting

I will add a customized twitch api key generation guide for new users.

  • Like 1
  • Thanks 2
Link to comment

Hey @HynesJeff, I’m currently getting this too. 
 

I’m finding that each pull of the containers the initial startup runs and I have things working, then on a “Restart” of the container it crashes with the same log entry as yours.
 

Interestingly… if I change the network setting from “Bridge” to a different network name, the container starts correctly again. 
 

Not ideal as a fix or really even a workaround, just saying it’s interesting to note. 
 

Even on that initial run of the container, when it’s working it tells me the Twitch token is invalid and then says that it has fetched a valid token directly after this… perhaps the container always fails the first attempt to use the token and that is why it crashes… assumption being that subsequent attempts would’ve worked and the token would have been validated. 

Link to comment

Do the environment variables work if added to the config.yml?  Or only if in docker template?

If not, would be nice if they did.

 

ENABLE_SCHEDULED_RESCAN: Whether to rescan on a schedule

SCHEDULED_RESCAN_CRON: Cron expression for scheduled rescan

ENABLE_SCHEDULED_UPDATE_SWITCH_TITLEDB: Whether to update the switch title database on a schedule

SCHEDULED_UPDATE_SWITCH_TITLEDB_CRON: Cron expression for scheduled switch title database update

ENABLE_SCHEDULED_UPDATE_MAME_XML: Whether to update the MAME XML on a schedule

SCHEDULED_UPDATE_MAME_XML_CRON: Cron expression for scheduled MAME XML update

Edited by Green Dragon
Link to comment
On 12/22/2023 at 5:46 AM, S3v3nD34dly51ns said:

Thank you @NeoMatrixJR, doing that enabled the container to start. The only other issue I am having is a Twitch related issue that I'm hoping someone here may have experienced and may know a work around. Whereas RomM is relying on Twitch API for it's metadata I am having to create an API. However everytime I attempt to create an API and I click 'Create' nothing happens it just sits there. I have searched Twitch forums and there's no real solution other than login and back out, which I have done several times but still get the same.

 

 

Yeah I had the same issue. It was really annoying. after trying for 15 min I finally googled it. It turns out you have to enter a unique app name in twitch otherwise the captcha just resets. It is really stupid that Twitch does not tell you that

Link to comment

Scan engine opportunities:

 

1) After a period of time the scan engine stops displaying progress (found/not found) in the browser.  Log shows its still running and finding/not finding titles.

2) Before I learned to check the logs (for op 1) I restarted a few scans.  After doing so I found that there were many duplicates.  Devs may want to put some duplicate checking into the scan engine?

Edited by Green Dragon
Link to comment
On 12/23/2023 at 1:20 AM, zurdi15 said:

Hello everyone, RomM creator here! 
[...]

I will add a customized twitch api key generation guide for new users.

 

Hi there,

 

Following the guide:

4. Manage your newly created application

5. Generate a Client Secret by pressing [New Secret]

 

Under the manage application i don't have any "new secret":

image.thumb.png.07dc6fbdd035a9b2a575d20bb1737be6.png

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.