Kodi Community Forum
[RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: Add-on Support (https://forum.kodi.tv/forumdisplay.php?fid=27)
+---- Forum: Game Add-ons (https://forum.kodi.tv/forumdisplay.php?fid=291)
+---- Thread: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs (/showthread.php?tid=70115)



RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Angelscry - 2012-04-26

(2012-04-25, 19:02)Hal_Emmerich Wrote: Hey Malte. I'd like to say first and foremost that I love your plugin. I find it is by far the best rom manager and blows Advanced Launcher out of the water.
Maybe because Advanced Launcher is not really a rom manager but mostly an application launcher. Wink




RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Hal_Emmerich - 2012-04-26

Well, I mean in terms of even in general functionality, not necessarily specific content. Even adding applications does not work as well for me in Advanced Launcher as RomBrowser does.


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - bakito - 2012-04-26

well, i'm a huge user of advanced and find it very well made,anyway I'm going to try rcb...is it possible to launch pcsx2?
is there a wiki to add emulator in rcb ? ( like in advanced launcher )
thanks!
cheers


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - malte - 2012-04-26

@Hal_Emmerich:
Thanks a lot for your detailed input. Highly appreciated! I will come back on this soon, just don't have enough time to answer in detail atm.

xaviorffviii Wrote:Hi I have RCB all setup on my ubuntu 11.10 htpc, however I've noticed that my final fantasy titles are not in order because of the roman numberals ex. IX is showing before VII and VIII. I've already altered the main.xml file to show only the fanart(no description covers etc), so I can alter xmls decently if I have to. I'd really like to change the order of my games even if I have to do it manually, has anyone had any luck with this? I've searched google with no luck trying to find an answer.
Games are sorted by title. Only chance is to change the title of the games from romans to numbers. Only way to do this atm is to edit the nfo file for the game (if created) and reimport this nfo file. If you need more detailed instructions, just let me know and I will try explain how to do it.

(2012-04-26, 13:13)Angelscry Wrote:
(2012-04-25, 19:02)Hal_Emmerich Wrote: Hey Malte. I'd like to say first and foremost that I love your plugin. I find it is by far the best rom manager and blows Advanced Launcher out of the water.
Maybe because Advanced Launcher is not really a rom manager but mostly an application launcher. Wink
Hal_Emmerich Wrote:Well, I mean in terms of even in general functionality, not necessarily specific content. Even adding applications does not work as well for me in Advanced Launcher as RomBrowser does.
I guess most things that I wrote some time ago on this topic are still valid. As a script RCB can add a lot more self layouted dialogs, making it more easy to define a user friendly UI. On the other hand ALA is much better integrated into a lot of skins and has some nice features that RCB still misses. I am happy that we have both options and the variety of users that prefer the one or the other seem to prove this.

bakito Wrote:well, i'm a huge user of advanced and find it very well made,anyway I'm going to try rcb...is it possible to launch pcsx2?
is there a wiki to add emulator in rcb ? ( like in advanced launcher )
You can use 99% of the information in the ALA wiki in RCB, too. In fact this wiki was thought as a shared project of ALA and RCB but unfortunately ended up with Angelscry doing all the work because I had no time to help out Confused.


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - deh2k7 - 2012-04-26

Why don't Malte and Angelscry team up and create a super Advanced Launcher ROM Browser with the best of both worlds? I've used both and find both to be quite excellent. Whichever one I use is mostly dependent on the skin's support.


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Hal_Emmerich - 2012-04-26

I should clarify. I certainly apprecate the work put into ALA, it just never seems to work quite right for me.

I do however have to make a bug report for RCB however, as it seems my Playstation Rom lists are generating errors. Please find a snippet of the log below

Triggering event: Trying to pull up the Playstation Goodsets, a list of several thousand games. Sorting by category seemed to work, but the error occurs on the largest two categories, 'Action' and 'All'

13:34:54 T:2412 ERROR: Exception in thread Thread-14:
Traceback (most recent call last):
File "C:\Program Files\XBMC\system\python\Lib\threading.py", line 532, in __bootstrap_inner
self.run()
File "C:\Program Files\XBMC\system\python\Lib\threading.py", line 484, in run
self.__target(*self.__args, **self.__kwargs)
File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 606, in applyFilters
self.updateControls(False, False, False)
File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 437, in updateControls
self.showPublisher(rcDelete, rDelete)
File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 501, in showPublisher
self.showFilterControl(rows, CONTROL_PUBLISHER, showEntryAllItems, rcDelete, rDelete)
File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 526, in showFilterControl
for row in rows:
TypeError: argument 1 must be unicode or str
13:35:18 T:3840 NOTICE: close Connection
13:35:19 T:3552 ERROR: CLocalizeStrings::ClearBlock: Trying to clear non existent block C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser
13:35:20 T:3040 WARNING: XFILE::CFileFactory::CreateLoader - Unsupported protocol(addons) in addons://more/executable.tbn
13:35:21 T:2872 NOTICE: -->Python Interpreter Initialized<--
13:35:21 T:2872 NOTICE: RCB_INFO: Loading sqlite3 as DB engine
13:35:21 T:2872 NOTICE: RCB: init log level
13:35:21 T:2872 NOTICE: RCB: current log level: 0
13:35:21 T:2872 NOTICE: C:\Documents and Settings\Craig\Application Data\XBMC\userdata\addon_data\script.games.rom.collection.browser\MyGames.db
13:35:22 T:3552 WARNING: Trying to add unsupported control type 1
13:35:22 T:3552 WARNING: Previous line repeats 1 times.
13:35:22 T:3552 ERROR: Control 500 in window 13000 has been asked to focus, but it can't
13:35:22 T:2872 ERROR: Exception in python script callback execution
13:35:22 T:2872 ERROR: Traceback (most recent call last):
13:35:22 T:2872 ERROR: File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 250, in onInit
13:35:22 T:2872 ERROR: self.loadViewState()
13:35:22 T:2872 ERROR: File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 1527, in loadViewState
13:35:22 T:2872 ERROR: self.showPublisher(False, False)
13:35:22 T:2872 ERROR: File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 501, in showPublisher
13:35:22 T:2872 ERROR: self.showFilterControl(rows, CONTROL_PUBLISHER, showEntryAllItems, rcDelete, rDelete)
13:35:22 T:2872 ERROR: File "C:\Documents and Settings\Craig\Application Data\XBMC\addons\script.games.rom.collection.browser\resources\lib\gui.py", line 526, in showFilterControl
13:35:22 T:2872 ERROR: for row in rows:
13:35:22 T:2872 ERROR: TypeError
13:35:22 T:2872 ERROR: :
13:35:22 T:2872 ERROR: argument 1 must be unicode or str

I will gladly provide full log posts or any further information as requested.


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Cjswhufc6 - 2012-04-26

I am running xbmc on a windows 7 pc
I have installed Rom browser collection. I have set it up and have imported my games.
I have both a snes and sega genesis emulator.
When i click to luanch the game in rom browser collection it exits xbmc opens a comand prompt and the emulator however the emualtor does not load the game


So only the emulator opens when I click to launch the game?



RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Hal_Emmerich - 2012-04-26

Hi Cjswhufc6, let me see if I can help you out. First, can I ask you which emulators you are using, and which launch parameters you are using. Basically, if you know anything about DOS or the command prompt:

C:\roms\zsnes.exe would open the emulator
C:\roms\zsnes.exe -launch (some rom path) may launch the emulator and immediately open the game. (This isn't the real one for Zsnes, I'm pretty sure zsnes is happy with just zsnes.exe (rom path), but -launch illustrates my point better)

At first glance, it sounds as though you have the emulator path right, but the launch parameters wrong. MOST (but not all) emulators run fine if you leave the launch parameters as %ROMS%. Some require some extra work to get running, and I'd refer you to the Advanced Launcher wiki for help with specific emulators. Does XBMC remain running in the background?




RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - malte - 2012-04-27

Hal_Emmerich Wrote:A) The 'Could not import 10 items warning':
This will actually continually pop up for every 10 items if you are re-scanning a list of roms already imported. For example, say -someone- had the entire USA playstation rom collection. This is approximately 13,000 files, which breaks down to around 6000 or so actual games with versions of Coolboarders 3 (USA), (USA Track 01), (Greatest Hits) and other variations on the theme. Your script is fantastic at only importing one of these titles per game, but the import takes approximately 20 hours. In theory, I would like to be able to run it for 8 hours, stop, come back another 8 hours later and continue. Doing so forces it to run through the roms it has already come across. When the first 10 items can't be imported, a warning comes up asking if I want to continue. Then the next 10. Then the next 10. This effectively means if the process is interrupted by anything, it becomes -impossible- to rescan a collection of roms without sitting there going 'yes' 'yes' 'yes' 'yes' for 10 hours.

Some possible solutions off the top of my head:
- Don't count the skipping due to the existence of a game as a failure to import
- Include a marker to indicate which file the process was stopped on, and ask on the next import whether you want to resume on that file or not?
You are right, this behaviour is stupid. I will definitely change some things:
- As you suggested existing games should not be counted as "not imported" games in this case
- I guess it should be enough to show this warning one time. There is no need to do it for every ten games again
- It should be configurable if you want to see this message anyway

The next (or the one after thatSmile) release will contain some features that are also helping in this point. There is a new filter that will help you to search for games that are not fully imported into database. There will also be an option only to rescrape all these games with missing infos. I guess this should also help in your situation. Preparation for this feature has been started in release 1.0.2.

Hal_Emmerich Wrote:B) Warnings during Import
If possible, could you try to have importing continue in the background? Returning to the example of the Playstation roms. Lets say someone leaves the import running over night and an error comes up saying 'Unable to import artwork'. From what I have observed, this stops the import until the user states that it is ok to proceed. When you wake up expecting the import to have finished, it is only 13% farther than when you went to sleep.

Some possible suggestions:
- Include a message time out on warnings so that they are automatically dismissed in 20 seconds.
- Have error messages simply come up at the end "Some problems were encountered, check import.log for details"
- Continue the read process behind the message box
The "Unable to import artwork" error message should only come up when there is an error with saving your artwork files (general error, not game specific). E.g. RCB has no access to the folder to store the files. It could happen in previous versions that you waited 20 hours to let RCB scrape everything but in fact it did not import a single game because artwork was missing.

I have to look into this again if there is anything that I can improve.


Sorry, to be continued...


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Cjswhufc6 - 2012-04-27

(2012-04-26, 22:15)Hal_Emmerich Wrote: Hi Cjswhufc6, let me see if I can help you out. First, can I ask you which emulators you are using, and which launch parameters you are using. Basically, if you know anything about DOS or the command prompt:

C:\roms\zsnes.exe would open the emulator
C:\roms\zsnes.exe -launch (some rom path) may launch the emulator and immediately open the game. (This isn't the real one for Zsnes, I'm pretty sure zsnes is happy with just zsnes.exe (rom path), but -launch illustrates my point better)

At first glance, it sounds as though you have the emulator path right, but the launch parameters wrong. MOST (but not all) emulators run fine if you leave the launch parameters as %ROMS%. Some require some extra work to get running, and I'd refer you to the Advanced Launcher wiki for help with specific emulators. Does XBMC remain running in the background?

Thanks for the reply

I am using zsnes and gens.
unfortunelty my dos command knowledge isnt very good
I have tried using -m %roms% and just %roms% as this is what I have found others using
XBMC does run in the background.
I will screenshot my settings if that helps?


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - malte - 2012-04-27

It should be "%ROM%" not %roms%. Make sure you also add the "" as it helps to handle rom pathes with whitespaces.


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Hal_Emmerich - 2012-04-27

Actually I -think- the art thing would be as simple as not waiting for that 'ok' signal from the user to continue reading. Whether that was timing out the message after 10 seconds, or putting it on a separate thread, or just something like:

For Each Valid Extension File in Rom Path
- Find a game
- Import Game Details
- Was there error? Set Error to 1 if so
If Error
- {give error details here}
End if
If Error and 'User hit ok between last loop and now'
- Dismiss Error
End if
End Loop

Although what I would propose to speed up import immediately would be something like:

For Each Valid Extension File in Rom Path
Lookup Rom from Scraper
Record Rom rough name, Scraped=0
Loop
Launch RCB Scrape Service for background import


RCB service then has it cycle through the file, looking for the roms in the list that aren't scraped and processes them in the background. As it runs, it '1s' the Scraped variable in the file. Any file that has already been scraped is skipped unless 'Rescrape all roms' is checked. Getting the next unscraped rom would be as easy as returning the first entry on an SQL search where something like..
SELECT * FROM games.db WHERE {System = Recently Imported System & Scraped = 0}


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - malte - 2012-04-27

Hal_Emmerich Wrote:C) Bug: Interface Lockup when rapidly switching consoles
This is one I've noticed when switching between consoles with large databases quickly. If I flick from my NES to my SNES collection before the NES has finished loading, I -surmise- the SNES encounters a read error since the file is still in use. No log entries occur in the log, but the interface hangs until I restart the computer or sometimes wrestle control back with Control + Alt + Delete.
Never noticed this. But I will test in detail. Maybe my collections just aren't big enough.

Hal_Emmerich Wrote:D) Export/Import entire Database
This stems from the length of time it takes to import a database. I have about 8 rom collections of the magnitude mentioned above, and I -dread- having to reimport them all. It is literally over a hundred hours of importing thus far between NES, SNES, PSX, and the 166GB mame goodsets I still have -yet- to import makes me cringe. Please make some way to back up our files so that, in the event of a crash, we can rebuild our database without having to do all of this again.
There already are several ways to achieve this. Easiest way is just to make a file copy of the files MyGames.db and config.xml. You will find them in "XBMC/userdata/addon_data/script.games.rom.collection.browser". As long as you don't change the location of your emulators, roms and artwork, these files can be reused any time. (I have in mind to change RCBs import logic to use relative pathes so that you can even reuse your db in different setups. But this has to wait some time...)

2nd, during the first import RCB downloads all artwork that it can get and writes all info into .nfo files. RCB does not need to download artwork again, so even a full reimport of your collections will require a minimum of the time of the first import. And you can also choose to import the .nfo files instead of rescraping data again. This will reduce the time of an import dramatically. See related section in wiki (ok, it is not much written there...).

3rd, you can already export your complete database to .nfo files (in case you did not write the files during first import or whatever). It is available via context menu.

Hal_Emmerich Wrote:Possible Suggestions for Speeding up import:

- Index only the file names at first. Have the service run in the background and scrape behind the scenes. This gives the user control of their system back much faster and -surely- we don't need to watch as every file in a massive collection is scraped. Gradually update the database with each name as it runs.
You can already let RCB doing the whole import in background. See wiki for more details. I have to admit this feature is still a bit experimental but last time I tested it everything worked for me.

Also I think the new missing info filters and scraping features that I mentioned in my previous post will help a lot in big collection scenarios.

Hal_Emmerich Wrote:I have noticed in reading this thread you don't seem to have access to large collections of roms. I would be happy to beta test solutions for large rom files, should you need someone with a huge list to test on.
Compared to most users I guess my collection is quite small. I also created a set of dummy files to simulate scraping and everything but all in all I guess I don't have more than up to 10.000 files to test (I already thought this was much). But as I see some users have single collections of this size.

I am always happy to get valuable input especially from users with different setups than my own one. When I work on new features I always try to release beta versions as soon as possible. Always announced here in the thread and available via RCBs project page. A link to the latest release post is always shown in first post of this thread.

Hal_Emmerich Wrote:I do however have to make a bug report for RCB however, as it seems my Playstation Rom lists are generating errors. Please find a snippet of the log below

Triggering event: Trying to pull up the Playstation Goodsets, a list of several thousand games. Sorting by category seemed to work, but the error occurs on the largest two categories, 'Action' and 'All'
So, this happens every time you try to show your Playstation roms? From the log it looks like there is a problem with one of the publishers. Maybe one with special characters in name? Can't really see whats causing the problem. But I am afraid a full log won't help me.

How big is your database file (MyGames.db)? Maybe you can zip it and send to my email? It would help me to debug this issue.

Hal_Emmerich Wrote:Actually I -think- the art thing would be as simple as not waiting for that 'ok' signal from the user to continue reading. Whether that was timing out the message after 10 seconds, or putting it on a separate thread, or just something like:

For Each Valid Extension File in Rom Path
- Find a game
- Import Game Details
- Was there error? Set Error to 1 if so
If Error
- {give error details here}
End if
If Error and 'User hit ok between last loop and now'
- Dismiss Error
End if
End Loop
It is already implemented kind of this way. When there is just an error with one game (game not found, no artwork found, ...) there is not even an error message and no interruption of the scraping process. You will just see these errors in xbmc.log and you can check the "missing artwork.txt" in RCBs userdata folder.

There are only two situations where RCB shows an error message and stops the import process: 1. The first 10 games... error message discussed before. 2. RCB is not able to save artwork to file. This is valid for ALL games with ALL artwork. So if I would continue scraping this means the user has to wait x hours to let RCB finish scraping and then sees that there is no artwork available for all games. So I think it MUST stop the import at this point.

Hal_Emmerich Wrote:Although what I would propose to speed up import immediately would be something like:

For Each Valid Extension File in Rom Path
Lookup Rom from Scraper
Record Rom rough name, Scraped=0
Loop
Launch RCB Scrape Service for background import


RCB service then has it cycle through the file, looking for the roms in the list that aren't scraped and processes them in the background. As it runs, it '1s' the Scraped variable in the file. Any file that has already been scraped is skipped unless 'Rescrape all roms' is checked. Getting the next unscraped rom would be as easy as returning the first entry on an SQL search where something like..
SELECT * FROM games.db WHERE {System = Recently Imported System & Scraped = 0}
Hmmm, I don't see that much benefit in splitting it up between client and service. I already thought about using a "scraped" marker to check if I should rescrape a game. I guess I will see how the new (re)scraping process will work and check if it makes sense to implement this. Thanks again for your suggestions!


RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - Cjswhufc6 - 2012-04-27

(2012-04-27, 12:25)malte Wrote: It should be "%ROM%" not %roms%. Make sure you also add the "" as it helps to handle rom pathes with whitespaces.


I have changed it to %ROM%
Still the same issue?



RE: [RELEASE] Rom Collection Browser - Browse and launch emulator game ROMs - malte - 2012-04-27

Please show me a log after you tried to launch a game.