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)



- malte - 2010-07-14

Just a short update:

I am still working on V0.6 now and I hope it will be ready for relase in the next days / weeks. Main features will be xbox support, fullscreen video support and performance optimizations.

Support for windowed video on xbox is moving forward. Paybac opened a thread over at xbmc4xbox (http://www.xbmc4xbox.org/forum/viewtopic.php?f=8&t=184). There was a patch missing in xbox version of xbmc and the devs already added it. Now there is only one issue left because xbmc shows two video windows during playback. I hope this can be fixed in the next weeks, too.

Wimpy opened a thread in the skinning section: http://forum.xbmc.org/showthread.php?tid=76883. We are looking for support from the skinners side to get this script better looking. So if you are or want to become a skinner just try it out. Or just add some ideas if you don't want to build a skin.

One more thread that may be of interest for rom collectors: http://forum.xbmc.org/showthread.php?tid=75344. jas8340 started an Open Video Game Database (http://thevideogamedb.com). I hope this project will grow in the next months and may become a basis for a game scraper in XBMC or RCB.

Regards,
malte


Ubuntu 64 bit: Script error. - mstng_67 - 2010-07-18

malte,

I am running Ubuntu 10.04 64-bit. The RCB script fails upon initialization. Here is an excerpt from my log file that pertains to the failure:

15:56:46 T:140102114207504 M:5107085312 NOTICE: -->Python Interpreter Initialized<--
15:56:46 T:140102114207504 M:5106966528 ERROR: Unable to load /home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/_sqlite.so, reason: /home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/_sqlite.so: wrong ELF class: ELFCLASS32
15:56:46 T:140102114207504 M:5106966528 ERROR: xbp_dlopen failed to load /home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/_sqlite.so
15:56:46 T:140102114207504 M:5106966528 NOTICE: Traceback (most recent call last):
15:56:46 T:140102114207504 M:5106966528 NOTICE: File "/home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/default.py", line 39, in ?
15:56:46 T:140102114207504 M:5106966528 NOTICE: import gui
15:56:46 T:140102114207504 M:5106966528 NOTICE: File "/home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/lib/gui.py", line 7, in ?
15:56:46 T:140102114207504 M:5106966528 NOTICE: from pysqlite2 import dbapi2 as sqlite
15:56:46 T:140102114207504 M:5106966528 NOTICE: File "/home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/dbapi2.py", line 27, in ?
15:56:46 T:140102114207504 M:5106966528 NOTICE: from pysqlite2._sqlite import *
15:56:46 T:140102114207504 M:5106966528 NOTICE: ImportError
15:56:46 T:140102114207504 M:5106966528 NOTICE: :
15:56:46 T:140102114207504 M:5106966528 NOTICE: unknown dlopen() error
15:56:46 T:140102114207504 M:5106966528 ERROR: Scriptresult: Error

Any suggestions would be greatly appreciated.

Very best regards.


The same game on multiple systems? - veysey - 2010-07-19

Mostly for Malte, but others may have encountered it as well. Has anyone tried to use RCB for the same game on more than one platform?

For instance, I have the Odyssey2 version of the classic "Frogger" in my database. If I try to insert a version of Frogger from a separate console (such as SNES), I get an error, crashing the updatedb process:

From update.log ...
RCB_INFO: Result Game (as string) = Frogger
RCB_INFO: Game does not exist in database. Insert game: Frogger

From xbmc.log
12:31:05 T:140129683147024 M:2919403520 NOTICE: dbupdate.DBUpdate().updateDB(self.gdb, self)
12:31:05 T:140129683147024 M:2919403520 NOTICE: File "/home/mediapc/.xbmc/scripts/Rom Collection Browser V0.5/resources/lib/dbupdate.py", line 237, in updateDB
12:31:05 T:140129683147024 M:2919403520 NOTICE: self.insertData(gamedescription, gamename, romCollectionRow[0], filename, allowUpdate, consoleId, consoleName)
12:31:05 T:140129683147024 M:2919403520 NOTICE: File "/home/mediapc/.xbmc/scripts/Rom Collection Browser V0.5/resources/lib/dbupdate.py", line 347, in insertData
12:31:05 T:140129683147024 M:2919403520 NOTICE: players, rating, votes, url, region, media, perspective, controller, originalTitle, alternateTitle, translatedBy, version, allowUpdate, )
12:31:05 T:140129683147024 M:2919403520 NOTICE: File "/home/mediapc/.xbmc/scripts/Rom Collection Browser V0.5/resources/lib/dbupdate.py", line 397, in insertGame
12:31:05 T:140129683147024 M:2919403520 NOTICE: Game(self.gdb).insert((gameName, description, None, None, romCollectionId, publisherId, developerId, reviewerId, yearId,
12:31:05 T:140129683147024 M:2919403520 NOTICE: File "/home/mediapc/.xbmc/scripts/Rom Collection Browser V0.5/resources/lib/gamedatabase.py", line 94, in insert
12:31:05 T:140129683147024 M:2919403520 NOTICE: self.gdb.cursor.execute(insertString, args)
12:31:05 T:140129683147024 M:2919403520 NOTICE: pysqlite2.dbapi2
12:31:05 T:140129683147024 M:2919403520 NOTICE: .
12:31:05 T:140129683147024 M:2919403520 NOTICE: IntegrityError
12:31:05 T:140129683147024 M:2919403520 NOTICE: :
12:31:05 T:140129683147024 M:2919403520 NOTICE: column name is not unique

I "fixed" the problem by deleting "UNIQUE" in the database definition in SQL_CREATE.txt on line 121.

This might not be smart, but it appears to me that since Malte did a conscientious job of checking name and romCollectionId that this might be OK. Certainly appears to work. Malte?


Fix for this problem - veysey - 2010-07-19

mstng_67 - I'll save malte the trouble of replying by quoting what he said earlier when hopelessone and I raised this same error:

"Veysey and Hopelessone:

Somebody seems to have a solution for your problem: http://forum.xbmc.org/showthread.php?tid=75764

Can you try to download this file and copy the files from "platform_libraries\Linux_x86_64\pysqlite2" to RCBs "platform_libraries\Linux\pysqlite2"?

If this works I will add the 64bit detection code and ship these files with the next release. "

This solution worked for the two of us.

Cheers

mstng_67 Wrote:malte,

I am running Ubuntu 10.04 64-bit. The RCB script fails upon initialization. Here is an excerpt from my log file that pertains to the failure:

15:56:46 T:140102114207504 M:5107085312 NOTICE: -->Python Interpreter Initialized<--
15:56:46 T:140102114207504 M:5106966528 ERROR: Unable to load /home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/_sqlite.so, reason: /home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/_sqlite.so: wrong ELF class: ELFCLASS32
15:56:46 T:140102114207504 M:5106966528 ERROR: xbp_dlopen failed to load /home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/_sqlite.so
15:56:46 T:140102114207504 M:5106966528 NOTICE: Traceback (most recent call last):
15:56:46 T:140102114207504 M:5106966528 NOTICE: File "/home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/default.py", line 39, in ?
15:56:46 T:140102114207504 M:5106966528 NOTICE: import gui
15:56:46 T:140102114207504 M:5106966528 NOTICE: File "/home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/lib/gui.py", line 7, in ?
15:56:46 T:140102114207504 M:5106966528 NOTICE: from pysqlite2 import dbapi2 as sqlite
15:56:46 T:140102114207504 M:5106966528 NOTICE: File "/home/mstng_67/.xbmc/scripts/Rom Collection Browser V0.5/resources/platform_libraries/Linux/pysqlite2/dbapi2.py", line 27, in ?
15:56:46 T:140102114207504 M:5106966528 NOTICE: from pysqlite2._sqlite import *
15:56:46 T:140102114207504 M:5106966528 NOTICE: ImportError
15:56:46 T:140102114207504 M:5106966528 NOTICE: :
15:56:46 T:140102114207504 M:5106966528 NOTICE: unknown dlopen() error
15:56:46 T:140102114207504 M:5106966528 ERROR: Scriptresult: Error

Any suggestions would be greatly appreciated.

Very best regards.



- malte - 2010-07-19

Hey veysey, thanks for helping outSmile

Yes, you are right. Your work around will do the job with V0.5. I fixed this issue in one of the last V0.6 preview versions. It will be available in the "stable" V0.6.


- wimpy - 2010-07-20

malte Wrote:Hey veysey, thanks for helping outSmile

Yes, you are right. Your work around will do the job with V0.5. I fixed this issue in one of the last V0.6 preview versions. It will be available in the "stable" V0.6.

a release we're all waiting for ;D
no rush tho! Wink

when you have the stable out i'll test a "full import" Smile


- malte - 2010-07-30

Some news again: V0.6 development was interrupted for some days because I wanted to jump on the Dharma train.

As a first start I made a Dharma compatible package of V0.5. Everything is working by now and I am close to get this added to the official XBMC addon repository.

One thing that I am missing now is a nice icon that I can ship with the script. So here comes the big question: Anybody out there able and willing to help out with a 256x256 RCB thumb? Something with a joystick or gamepad and the text "RCB" would be great. Or something else that you find suitable. I am absolutely free of talent when it comes to graphics so I won't even tryTongue

If you are interested in providing an icon please make sure that you follow the guidelines for Addon images: http://wiki.xbmc.org/index.php?title=Addons_for_XBMC. You could also have a look into this thread to understand why there are guidelines: http://forum.xbmc.org/showthread.php?tid=76401.


Cheers,
malte


Rom name question - veysey - 2010-07-31

Hi Malte -

I don't think I have any graphical or artistic talent, but maybe I'll try anyway this weekend.

In the meantime, a question: In the "Info 2 or Info 1" view screens, there is a list of roms associated with a given collection. The name displayed is the "game" name.

This poses a slight problem for arcade / mame roms. These files typically have multiple roms in a zip file, and thus are not readily searchable by CRC. I set up the parserConfig to search on file name, which works great. Up to the point that RCB displays the filename as the game name in those two views. I end up with a list to browse that looks like "ar_sdwr" and "mspacman" instead of "Sidewinder" and "Ms. Pac-Man". This isn't very pretty, although it works fine.

I could rename the files, and get around it that way, but it seems to me that it might make sense to use the "Original Title" information in the display if that information exists. If you're using the MAME emulator, the convention is to use the short cryptic names (which are built in to MAME), so I'm reluctant to rename everything.

Thoughts?


- bmfrosty - 2010-07-31

Not an artistic bone in my body, but I am running Dharma, and if you'd like someone to test a bit, I'd be more than willing to help.


Possible RCB thumbs - veysey - 2010-07-31

Here's a couple of quick possible thumbs. No artistic talent here either (photo + gimp!), but perhaps it'll be useful until someone who knows what they're doing comes along.

Image

Image


#2 - veysey - 2010-07-31

Image


- bmfrosty - 2010-07-31

Found the 0.5.1 you had on google code. It gives me the following error:
Code:
09:15:07 T:2941426544 M:1394700288    INFO: -->Python script returned the following error<--
09:15:07 T:2941426544 M:1394700288   ERROR: Error Type: exceptions.ImportError
09:15:07 T:2941426544 M:1394700288   ERROR: Error Contents: No module named pysqlite2
09:15:07 T:2941426544 M:1394700288   ERROR: Traceback (most recent call last):
                                              File "/home/bmfrosty/.xbmc/addons/Rom Collection Browser/default.py", line 30, in ?
                                                import gui
                                              File "/home/bmfrosty/.xbmc/addons/Rom Collection Browser/resources/lib/gui.py", line 7, in ?
                                                from pysqlite2 import dbapi2 as sqlite
                                            ImportError: No module named pysqlite2
09:15:07 T:2941426544 M:1394700288    INFO: -->End of Python script error report<--
09:15:07 T:3079165824 M:1394700288   DEBUG: ------ Window Init (DialogKaiToast.xml) ------

I'm looking for where to install pysqlite2 from.

edit: Ok. I did an apt-get install python-pysqlite2, and that seemed to work, but I get the following:

Code:
09:22:51 T:2966412144 M:1400729600    INFO: -->Python script returned the following error<--
09:22:51 T:2966412144 M:1400729600   ERROR: Error Type: exceptions.ImportError
09:22:51 T:2966412144 M:1400729600   ERROR: Error Contents: No module named pysqlite2
09:22:51 T:2966412144 M:1400979456   ERROR: Traceback (most recent call last):
                                              File "/home/bmfrosty/.xbmc/addons/Rom Collection Browser/default.py", line 30, in ?
                                                import gui
                                              File "/home/bmfrosty/.xbmc/addons/Rom Collection Browser/resources/lib/gui.py", line 7, in ?
                                                from pysqlite2 import dbapi2 as sqlite
                                            ImportError: No module named pysqlite2
09:22:51 T:2966412144 M:1400979456    INFO: -->End of Python script error report<--
Is that the same?


- malte - 2010-07-31

veysey Wrote:This poses a slight problem for arcade / mame roms. These files typically have multiple roms in a zip file, and thus are not readily searchable by CRC. I set up the parserConfig to search on file name, which works great. Up to the point that RCB displays the filename as the game name in those two views. I end up with a list to browse that looks like "ar_sdwr" and "mspacman" instead of "Sidewinder" and "Ms. Pac-Man". This isn't very pretty, although it works fine.

I could rename the files, and get around it that way, but it seems to me that it might make sense to use the "Original Title" information in the display if that information exists. If you're using the MAME emulator, the convention is to use the short cryptic names (which are built in to MAME), so I'm reluctant to rename everything.

Something like this is already on my list for V0.7. I have a scenario where different versions of the same game are in one zip file. In your case are different games in one file? And do you have game descriptions for your games or just the filenames as a reference?

I just have seen that you have added issues on the projects site. I am sorry that I did not react earlier but I did not get any email notification about this. They are now commented.

veysey Wrote:Here's a couple of quick possible thumbs. No artistic talent here either (photo + gimp!), but perhaps it'll be useful until someone who knows what they're doing comes along.

Haha. Great 80's retro styleSmile But I am afraid this is a bit too colorful to get added to the repo.

Here is what I tried this morning. Simple but beautifulSmile
Image


So, graphic people: you see we really need help here! Tongue


bmfrosty Wrote:Found the 0.5.1 you had on google code. It gives me the following error:

Thank you for testing this. It is really helpful as I only have my Windows development system set up with Dharma because I don't want to mess up my "production" system with a side by side installation of Camelot and Dharma. And maybe there are some little differences that I can't find here on my own.

Yes, 0.5.1 should be ok with Dharma.

On windows I don't have any problems with loading pysqlite and you should not need to install it manually on your system. It should work out of the box because XBMC already ships the modules and scripters don't have to add them on their own anymore. How old is your Dharma version? Maybe it is one without the pysqlite modules? I am using r32121 here.


- bmfrosty - 2010-08-01

malte Wrote:Yes, 0.5.1 should be ok with Dharma.

On windows I don't have any problems with loading pysqlite and you should not need to install it manually on your system. It should work out of the box because XBMC already ships the modules and scripters don't have to add them on their own anymore. How old is your Dharma version? Maybe it is one without the pysqlite modules? I am using r32121 here.

I'm running this on a recent xbmcfreak live installer. It installs as a minimal ubuntu, and I've been doing regular apt-get upgrades and updates. At current it's running r32178 on the Linux 2.6.32-23 generic that's in ubuntu by default.

When I search my filesystem for pysqlite, I find the follwing files:

Code:
bmfrosty@XBMCLive:~/.xbmc/addons/Rom Collection Browser/resources/lib$ sudo find / | grep -i pysqlite
[sudo] password for bmfrosty:
/usr/lib/xbmc/addons/script.module.pysqlite
/usr/lib/xbmc/addons/script.module.pysqlite/addon.xml
/usr/lib/xbmc/addons/script.module.pysqlite/lib
/usr/lib/python2.6/dist-packages/pysqlite-2.5.5.egg-info
/usr/lib/python2.6/dist-packages/pysqlite2
/usr/lib/python2.6/dist-packages/pysqlite2/__init__.pyc
/usr/lib/python2.6/dist-packages/pysqlite2/dbapi2.py
/usr/lib/python2.6/dist-packages/pysqlite2/__init__.py
/usr/lib/python2.6/dist-packages/pysqlite2/_sqlite.so
/usr/lib/python2.6/dist-packages/pysqlite2/dbapi2.pyc
/usr/lib/python2.6/dist-packages/pysqlite2/dump.pyc
/usr/lib/python2.6/dist-packages/pysqlite2/dump.py
/usr/share/pyshared-data/python-pysqlite2
/usr/share/pyshared/pysqlite-2.5.5.egg-info
/usr/share/pyshared/pysqlite2
/usr/share/pyshared/pysqlite2/dbapi2.py
/usr/share/pyshared/pysqlite2/__init__.py
/usr/share/pyshared/pysqlite2/dump.py
/usr/share/doc/python-pysqlite2
/usr/share/doc/python-pysqlite2/copyright
/usr/share/doc/python-pysqlite2/changelog.Debian.gz
/usr/share/doc/python-pysqlite2/README.Debian
/var/cache/apt/archives/python-pysqlite2_2.5.5-3_i386.deb
/var/lib/dpkg/info/python-pysqlite2.postinst
/var/lib/dpkg/info/python-pysqlite2.prerm
/var/lib/dpkg/info/python-pysqlite2.preinst
/var/lib/dpkg/info/python-pysqlite2.md5sums
/var/lib/dpkg/info/python-pysqlite2.list
bmfrosty@XBMCLive:~/.xbmc/addons/Rom Collection Browser/resources/lib$



Malte's been busy! - veysey - 2010-08-01

Thanks for your work nice to see all the activity. RCB works nicely as it is, but you're making it even better.

In reply to your question - "Something like this is already on my list for V0.7. I have a scenario where different versions of the same game are in one zip file. In your case are different games in one file? And do you have game descriptions for your games or just the filenames as a reference?"

I'm thinking of a slightly different scenario. Each .zip file has only one game, but the game has multiple pieces. For instance, the MAME zip file associated with mspacman (mspacman.zip) has these contents:

Archive: /scratch/roms/mspacman.zip
Zip file size: 21791 bytes, number of entries: 13
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 5e
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 5f
-rw---- 0.0 fat 32 b- defX 96-Dec-24 23:32 82s123.7f
-rw---- 0.0 fat 256 b- defX 96-Dec-24 23:32 82s126.1m
-rw---- 0.0 fat 256 b- defX 96-Dec-24 23:32 82s126.3m
-rw---- 0.0 fat 256 b- defX 96-Dec-24 23:32 82s126.4a
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 pacman.6e
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 pacman.6f
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 pacman.6h
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 pacman.6j
-rw---- 0.0 fat 2048 b- defX 96-Dec-24 23:32 u5
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 u6
-rw---- 0.0 fat 4096 b- defX 96-Dec-24 23:32 u7

Each of these files represents a different chip dump off the arcade circuits. And you need all of them to emulate the arcade game. So it's not quite the same as the "multiple versions of the game in one zip" scenario that you describe. Although they may have a common solution.

I have a description file that is indexed into by the short file name. So RCB "knows" the full name of the game from reading the description.

Another solution might be to use the CRC off one of the pieces in the zip file, but that seems kind of kludge.

Cheers and thanks for all the replies!