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)



- ryosaeba87 - 2010-08-30

malte Wrote:@ryosaeba87:

I tested your applaunch on Linux and it works fine. Thanks a lot, will add this to the next release.


No problem. I do what we can! :p


0.6.1 - malte - 2010-09-02

I decided to make the current 0.6.1 the new featured version as I am satisfied with the core functionality now. There is still one problem left that RCB does not recognize the modification time of config.xml at startup on some systems (RCB will always ask you to import Settings at startup). But there will be an update as soon as this is fixed (and then I will add it to the Repo).

Main new features are:
* fullscreen video browser
* added character filter: select games by first character
* skinning support: all game properties are available in the skin xml (hope to get some skinners on board nowSmile)
* many improvements to the import functionality
* check config.xml modification time at startup
* different caching options (fixes performance issues on xbox)
* xbox support: able to launch emulators and xbox games
* xbox support: create cut files for xbox on the fly
* many little improvements and bug fixes (complete list in the wiki)

I also reworked the wiki. As this script is still hard to configure I did my best to document all necessary steps. I hope that the new Configuration section can be used as tutorial.


As an appetizer here is a screenshot of the fullscreen browser (standard XBMC fullscreen video):

Image

New version: http://romcollectionbrowser.googlecode.com/files/script.games.rom.collection.browser-0.6.1.zip
Wiki: http://code.google.com/p/romcollectionbrowser/wiki/Main

Hope you like it!

Regards,
malte


- rausch101 - 2010-09-02

What is the recommended method to acquire all of the metadata for the roms/emulators?


- Tim. - 2010-09-03

This may finally be a solution to get rid of Maximus Arcade!

I got the plugin working under Windows, but my primary box is XBMC Live based and I would REALLY like to have this working on there. Sorry if this has been answered but after page 15 I gave up looking Tongue

Is there some kind of tutorial or guide for setting up a few emulators under XBMC Live with examples of how to configure RCB for them? I can do 'sudo apt-get install mupen64plus' for example and install it but I'm unsure how to approach a setup under live. (I have limited linux experience)

This looks GREAT if I can just get a few emulators going under Live I'm sure I can troubleshoot my way through the rest. Nice work!


- malte - 2010-09-03

rausch101 Wrote:What is the recommended method to acquire all of the metadata for the roms/emulators?

Right now, there is no recommended way, sorry. The only sources where you can find a bunch of mediaFiles are the ones that I mentioned in this post.

I had some test data from RX project, so RCB is able to parse their desc files (some tested files are included in the gamedesc.zip in the above mentioned post) and of course you can import their images and videos. But I did not download it myself so I can't tell you how to get your hands on it. And anyway I would not announce this as the recommended way to use RCBSmile.

But a scraper solution may not be too far away. jas has started to work on his game wiki again and seems to make some progress. I will start to implement a scraper for it in the next weeks. But I think I have to do a lot of cleaning up in my code before I can start this.

Tim. Wrote:Is there some kind of tutorial or guide for setting up a few emulators under XBMC Live with examples of how to configure RCB for them?

Not now. I always thought about adding some hints in the wiki but did not have the time to do it. I always link to the Emus in Live thread if someone asks. They use the launcher plugin but the general emu setup should be the same on most systems.

Another source may be the MythGame wiki. There you will find a huge list of emulators with links to the download pages and an example command line. But I am not sure if you can use it 1:1. In RCB you will always need "%ROM%" where you have to insert the rom file name.



Maybe we could start to collect a list of commands here in the thread and I will add them to the wiki.

What I have right now:

Windows:
Code:
Amiga:
E:\Emulatoren\WINUAE\winuae.exe {-%I% "%ROM%"}

SNES:
E:\Emulatoren\zsnes\zsnesw.exe -m "%ROM%"

Linux:
Code:
Amiga:
uae {-%I% "%ROM%"}

SNES:
zsnes -m "%ROM%"

I had no trouble with these default settings. Sometimes you must add a special sounddriver or display resolution. So if anyone has some special configurations please tell us.


- rausch101 - 2010-09-03

malte Wrote:But a scraper solution may not be too far away. jas has started to work on his game wiki again and seems to make some progress. I will start to implement a scraper for it in the next weeks. But I think I have to do a lot of cleaning up in my code before I can start this.

Good to hear it! Great work on this so far and thanks for the info.


- jabber25 - 2010-09-04

I am trying to get the TestData to work and am getting the following error when I try to run RCB:

OperationalError: table RCBSetting has 19 columns but 25 values were supplied
19:33:25 T:4696 M:1927802880 ERROR: CLocalizeStrings::ClearBlock: Trying to clear non existent block C:\Users\HTPC\AppData\Roaming\XBMC\addons\script.games.rom.collection.browser

It asks me if I want to import settings, but then stops with that error. Anyone able to help me out?

Thanks!


- hikaricore - 2010-09-04

I've been waiting for a long time for something like this to come along. ^_^
How I didn't notice it until just last week is a mystery to me..


- malte - 2010-09-04

jabber25 Wrote:OperationalError: table RCBSetting has 19 columns but 25 values were supplied

Looks like you are trying to update from an older version? What version did you run before?

Usually RCB should detect the older version and update the DB automatically. But this will only work between "major" releases and only with one step at a time. So you can't update from V0.4 to 0.6.1 or something like this.

If you did not do any large imports with the previous version you can just delete your MyGames.db and try again. Otherwise you could send me your DB and I could update it for you.

If you did not use a previous version you found a bugSmile. Then I will need a complete log file.


- hikaricore - 2010-09-04

Everything seems to be launching except for MAME which is odd to say the least.

Code:
11:00:09 T:3078260608 M:715853824   DEBUG: LIRC: Update - NEW at 25637323:00000000000028d2 00 OK Streamzap_PC_Remote (OK)
11:00:09 T:3078260608 M:715853824   DEBUG: OnKey: 11 pressed, action is Select
11:00:09 T:2858412912 M:715853824  NOTICE: RCB_INFO: Begin launchEmu
11:00:09 T:2858412912 M:715853824  NOTICE: RCB_INFO: launching game with id: 8568
11:00:09 T:2858412912 M:715853824  NOTICE: RCB_INFO: Begin helper.launchEmu
11:00:09 T:2858412912 M:715853824   ERROR: Exception in python script's onAction
11:00:09 T:2858412912 M:715853824  NOTICE: Traceback (most recent call last):
11:00:09 T:2858412912 M:715853824  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gui.py", line 177, in onAction
11:00:09 T:2858412912 M:715853824  NOTICE: if(action.getId() in ACTION_CANCEL_DIALOG):
11:00:09 T:2858412912 M:715853824  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gui.py", line 274, in onClick
11:00:09 T:2858412912 M:715853824  NOTICE: self.launchEmu()
11:00:09 T:2858412912 M:715853824  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gui.py", line 574, in launchEmu
11:00:09 T:2858412912 M:715862016  NOTICE: helper.launchEmu(self.gdb, self, gameId)
11:00:09 T:2858412912 M:715862016  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/helper.py", line 125, in launchEmu
11:00:09 T:2858412912 M:715862016  NOTICE: newrepl = replString
11:00:09 T:2858412912 M:715862016  NOTICE: UnboundLocalError
11:00:09 T:2858412912 M:715862016  NOTICE: :
11:00:09 T:2858412912 M:715862016  NOTICE: local variable 'replString' referenced before assignment

My launch code is nothing special at all:
Code:
<RomCollection>
                        <name>M.A.M.E.</name>
                        <consoleName>M.A.M.E.</consoleName>
                        <emulatorCmd>sdlmame "%ROM%"</emulatorCmd>
                        <romPath>/media/devistate/rom/mame/*.zip</romPath>
                        <useEmuSolo>False</useEmuSolo>
                </RomCollection>

The only other thing worth mentioning is that my mame library contains about 6,500 entries as I have yet to weed out the dupes and additional rom sets from my scan directory.


- malte - 2010-09-04

I saw this error before. It has to do with launching games that use more than one rom file (or maybe the dupes you mentioned): RCB finds more than 1 rom file for the game that it should launch and then searches for {}-brackets in the emuCmd. If it does not find brackets you will get this error (I will fix this soon). Maybe check this part in the wiki for details.

Does MAME support games with multiple rom files? If yes, how?


- carabalb - 2010-09-04

Hey Malte, is there any way to easily implement a launch before and a launch after command in the existing code? The reason I ask is because certain emulators don't support cd images so you have to load the games to virtual drives before you can play them and then unload them when you are done.


- hikaricore - 2010-09-05

malte Wrote:I saw this error before. It has to do with launching games that use more than one rom file (or maybe the dupes you mentioned): RCB finds more than 1 rom file for the game that it should launch and then searches for {}-brackets in the emuCmd. If it does not find brackets you will get this error (I will fix this soon). Maybe check this part in the wiki for details.

Does MAME support games with multiple rom files? If yes, how?

Actually it does support games with multiple rom files but it does this internally.
For example if I load umk3.zip the emu will also load umk3r10.zip & umk3r11.zip.
But this isn't done from launch, launch is simply: sdlmame %ROM%
So it actually should just run: sdlmame umk3.zip
Like I said it's odd because it never gets to this point.
Running the same command from a terminal works perfectly that's why I was wondering if this had something to do with the number of entries in the db.

~~~

I've also run into another small problem with file naming.
The database doesn't differentiate between two files with the same name but different extensions and import dies when this occurs:

Code:
20:35:20 T:2976906096 M:812281856  NOTICE: RCB_INFO: File does not exist in database. Insert file: /media/devistate/rom/gb/.all/Atomic Punk (U) [!].gb
20:35:20 T:2976906096 M:812154880  NOTICE: RCB_INFO: current rom file: /media/devistate/rom/gb/.all/Attack of the Killer Tomatoes (U) [!].gb
20:35:20 T:2976906096 M:812154880  NOTICE: RCB_INFO: gamename (file): Attack of the Killer Tomatoes (U) [!].gb
20:35:20 T:2976906096 M:812154880  NOTICE: RCB_INFO: gamename (friendly): Attack of the Killer Tomatoes (U) [!]
20:35:20 T:2976906096 M:812130304  NOTICE: RCB_INFO: crc for current file: B5B38860
20:35:20 T:2976906096 M:812130304  NOTICE: RCB_INFO: Searching for game in parsed results:
20:35:20 T:2976906096 M:812130304  NOTICE: RCB_WARNING: game Attack of the Killer Tomatoes (U) [!] could not be found in parsed results. Importing game without description.
20:35:20 T:2976906096 M:812130304  NOTICE: RCB_INFO: Insert data
[b]20:35:20 T:2976906096 M:812130304  NOTICE: RCB_INFO: Game does not exist in database. Insert game: Attack of the Killer Tomatoes (U) [!][/b]
20:35:20 T:2976906096 M:812130304   ERROR: Exception in python script's onAction
20:35:20 T:2976906096 M:812130304  NOTICE: Traceback (most recent call last):
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gui.py", line 177, in onAction
20:35:20 T:2976906096 M:812130304  NOTICE: if(action.getId() in ACTION_CANCEL_DIALOG):
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gui.py", line 267, in onClick
20:35:20 T:2976906096 M:812130304  NOTICE: self.updateDB()
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gui.py", line 581, in updateDB
20:35:20 T:2976906096 M:812130304  NOTICE: dbupdate.DBUpdate().updateDB(self.gdb, self)
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/dbupdate.py", line 227, in updateDB
20:35:20 T:2976906096 M:812130304  NOTICE: self.insertData(gamedescription, gamename, romCollectionRow[0], filename, allowUpdate, consoleId, consoleName)
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/dbupdate.py", line 346, in insertData
20:35:20 T:2976906096 M:812130304  NOTICE: None, None, None, None, None, None, None, None, None, None, None, None, allowUpdate)
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/dbupdate.py", line 372, in insertGame
20:35:20 T:2976906096 M:812130304  NOTICE: Game(self.gdb).insert((gameName, description, None, None, romCollectionId, publisherId, developerId, reviewerId, yearId,
20:35:20 T:2976906096 M:812130304  NOTICE:   File "/home/hikaricore/.xbmc/addons/script.games.rom.collection.browser/resources/lib/gamedatabase.py", line 87, in insert
20:35:20 T:2976906096 M:812130304  NOTICE: self.gdb.cursor.execute(insertString, args)
20:35:20 T:2976906096 M:812130304  NOTICE: pysqlite2.dbapi2
20:35:20 T:2976906096 M:812130304  NOTICE: .
20:35:20 T:2976906096 M:812130304  NOTICE: IntegrityError
20:35:20 T:2976906096 M:812130304  NOTICE: :
[b]20:35:20 T:2976906096 M:812130304  NOTICE: column name is not unique[/b]

Having previously imported Attack of the Killer Tomatoes (U) [!].nes the process takes a shit an dies.
Up until the nes/gb point I've just been renaming or removing such entries, but between these two systems it's going to be occurring
more frequently and this is no longer an option. For the time being I'm simply skipping gameboy import save for a few titles I play often. Smile


- Tomkun - 2010-09-05

carabalb Wrote:Hey Malte, is there any way to easily implement a launch before and a launch after command in the existing code? The reason I ask is because certain emulators don't support cd images so you have to load the games to virtual drives before you can play them and then unload them when you are done.

perhaps you could run a batch file? Which emulator are you using? I don't know any that don't support iso images...


- TioSolid - 2010-09-05

Just saw this addon at the addon repository and its great Laugh

I was reading its documentation but didnt find the answer for my question there. Does RCB support .dat files in any way? I think supporting these kind of files (from clrmamepro for example) would pretty much solve all the description problems for almost every console.