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)



- Flomaster - 2010-09-29

when trying to launch with mupen64plus 1.99.3 I get this error.


Code:
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: Begin launchEmu
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: launching game with id: 1883
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: Begin helper.launchEmu
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: cmd: /home/xbmc/mupen64plus/test/mupen64plus --gfx mupen64plus-video-glide64.so --resolution 1024x768 "/mnt/1tb/Games/Consoles/N64/Roms/Yoshi's Story.z64"
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: launchEmu on non-xbox
23:56:44 T:3055355776 M:2702897152   DEBUG: HttpApi Start command: GetSystemInfoByName  paras: GetSystemInfoByName; system.screenmode
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: screenMode: 1920x1080 @ 60.00 - Full Screen
23:56:44 T:1514511216 M:2702897152  NOTICE: RCB_INFO: Toggle to Windowed mode
23:56:44 T:3055355776 M:2702897152   DEBUG: HttpApi Start command: Action  paras: Action; 199
23:56:44 T:3055355776 M:2702901248   ERROR: GLX: Same window as before, refreshing context
23:56:44 T:3055355776 M:2702901248    INFO: GL: Maximum texture width: 8192
23:56:44 T:1514511216 M:2711281664  NOTICE: RCB_INFO: launch emu
23:56:44 T:1514511216 M:2711400448  NOTICE: RCB_INFO: launch emu done
23:56:44 T:1514511216 M:2711400448  NOTICE: RCB_INFO: Toggle to Full Screen mode
23:56:44 T:3055355776 M:2711400448   DEBUG: HttpApi Start command: Action  paras: Action; 199
23:56:44 T:3055355776 M:2711400448   ERROR: GLX: Same window as before, refreshing context
23:56:44 T:3055355776 M:2711400448    INFO: GL: Maximum texture width: 8192
23:56:44 T:1514511216 M:2698194944  NOTICE: RCB_INFO: End helper.launchEmu
23:56:44 T:3055355776 M:2698194944   DEBUG: LIRC: Update - NEW at 11497444:000000037ff07bdd 00 OK_UP mceusb (OK_UP)
23:56:44 T:1514511216 M:2698194944  NOTICE: RCB_INFO: End launchEmu
23:56:53 T:3055355776 M:2697994240   DEBUG: UPower: Recieved an unkown signal DeviceChanged
23:57:00 T:2708466544 M:2697908224   DEBUG: Thread 2708466544 terminating (autodelete)
23:57:01 T:1560386416 M:2697658368   DEBUG: Thread 1560386416 terminating (autodelete)
23:57:01 T:1549896560 M:2697658368   DEBUG: Thread 1549896560 terminating (autodelete)
23:57:02 T:3055355776 M:2697658368   DEBUG: SECTION:UnloadDelayed(DLL: special://xbmcbin/system/ImageLib-i486-linux.so)
23:57:02 T:3055355776 M:2697658368   DEBUG: Unloading: ImageLib-i486-linux.so
23:57:03 T:2670177136 M:2697551872   DEBUG: Thread 2670177136 terminating (autodelete)
23:57:23 T:3055355776 M:2697666560   DEBUG: UPower: Recieved an unkown signal DeviceChanged

any ideas why?

-=jason=-


- moviebuff - 2010-10-01

Does anyone else crash when trying to use this addon? I download the addon through xbmc and whe I try to configure it i crash out to Windows. Launcher works for me so no biggie but just curious if crashing is a common problem with the addon.


- malte - 2010-10-01

Configuration is done via xml files atm, not with the GUI. Unfortunately I use settings.xml for storing viewstate and have an error in it and that crashes XBMC.

When you use a correct config.xml, RCB will launch fine.


- moviebuff - 2010-10-02

oh ok was really confused was able to add in addons inside xbmc but kept getting the crashes . Looks promising hopefully can load all my roms with it one day )


- nailboy - 2010-10-04

I just started using this great addon and noticed a problem when using it with the XTV skin. When using the info 2 view I could only see the rom that I had currently selected, everything else was blank. Searching this thread I noticed other people were having the same problem with the Alaska skin.

I was playing around in the skin xml file and found a fix that works for me.

Open script-Rom_Collection_Browser-main.xml

go to line 380
<textcolor>grey</textcolor>

change grey to white
<textcolor>white</textcolor>

or just search the file with notepad and replace the first "grey" you find with "white"

After doing this I could see all my roms listed.


[RELEASE] Rom Collection Browser - browse and launch emulator roms - ghostelement - 2010-10-07

Hey guys, here are some game case templates someone might want to use. I did not make these, but I got permission to post them here for general use. Have fun!

http://download832.mediafire.com/k4hk8reri1sg/7m7tr99af1e9kna/Game+Cases.rar

Image


- malte - 2010-10-09

@nailboy: Thanks a lot. I will add this to the Wiki.


@all:
Here is one more preview release with better scraping support. I made some more changes to the scraping functionality that will make it more flexible to add new scrapers in the future. I started with mobygames as a test candidate. I hope it is ok to post it here as test scenario.

Again, you have to delete your DB to test this and it may happen that you have to delete it again with the next relase. It is still testing phase.

What to do:

- Download and install the new version
- Download and unzip the available scraper pack
- example config.xml for Sega32 and SNES games:
Code:
<config>
    <RCBSettings>                
        <logLevel>INFO</logLevel>
    </RCBSettings>
    <Consoles>                
        <Console>
            <name>SNES</name>            
        </Console>        
        <Console>
            <name>Sega 32</name>            
        </Console>
    </Consoles>
    <FileTypes>        
        <FileType>
            <name>boxfront</name>
            <type>image</type>
            <parent>game</parent>
        </FileType>
        <FileType>
            <name>boxback</name>
            <type>image</type>
            <parent>game</parent>
        </FileType>
        <FileType>
            <name>screenshot</name>
            <type>image</type>
            <parent>game</parent>
        </FileType>
        <FileType>
            <name>cartridge</name>
            <type>image</type>
            <parent>game</parent>
        </FileType>        
    </FileTypes>
    <RomCollections>        
        <RomCollection>
            <name>Sega 32</name>
            <consoleName>Sega 32</consoleName>            
            <emulatorCmd>%ROM%</emulatorCmd>
            <romPath>PathToRoms\*.zip</romPath>                        
            <mediaPath type="boxfront">PathToArtwork\Sega32\boxfront\%GAME%.jpg</mediaPath>
            <mediaPath type="boxback">PathToArtwork\Sega32\boxback\%GAME%.jpg</mediaPath>
            <mediaPath type="screenshot">PathToArtwork\Sega32\screenshot\%GAME%.jpg</mediaPath>
            <mediaPath type="cartridge">PathToArtwork\Sega32\cartridge\%GAME%.jpg</mediaPath>            
            <scraper parseInstruction="PathToScraperPack\thevideogamedb.com\thevideogamedb.xml" source="http://thevideogamedb.com/API/GameDetail.aspx?apikey=%VGDBAPIKey%&amp;crc=%CRC%"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\01 - mobygames - gamesearch.xml" source="http://www.mobygames.com/search/quick?game=%GAME%&amp;p=21" returnUrl="True" replaceKeyString="32x , [u]" replaceValueString=","/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\02 - mobygames - details.xml" source="1"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\03 - mobygames - coverlink.xml" source="1" returnUrl="True"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\04 - mobygames - coverart.xml" source="2"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\05 - mobygames - screenshotlink.xml" source="1" returnUrl="True"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\06 - mobygames - screenshotoriginallink.xml" source="3" returnUrl="True"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\07 - mobygames - screenshots.xml" source="4"/>
            <searchGameByCRC>True</searchGameByCRC>
            <descFilePerGame>True</descFilePerGame>
            <ignoreOnScan>False</ignoreOnScan>
            <fileTypeForGameList>boxfront</fileTypeForGameList>
            <fileTypeForGameList>screenshot</fileTypeForGameList>
            <fileTypeForGameListSelected>boxfront</fileTypeForGameListSelected>
            <fileTypeForGameListSelected>screenshot</fileTypeForGameListSelected>
            <fileTypeForMainViewBackground>screenshot</fileTypeForMainViewBackground>
            <fileTypeForMainViewBackground>boxfront</fileTypeForMainViewBackground>
            <fileTypeForMainViewGameInfoBig>boxfront</fileTypeForMainViewGameInfoBig>
            <fileTypeForMainViewGameInfoBig>screenshot</fileTypeForMainViewGameInfoBig>
            <fileTypeForGameInfoViewBackground>boxfront</fileTypeForGameInfoViewBackground>
            <fileTypeForGameInfoViewBackground>screenshot</fileTypeForGameInfoViewBackground>
            <fileTypeForGameInfoViewGamelist>boxfront</fileTypeForGameInfoViewGamelist>
            <fileTypeForGameInfoView2>boxfront</fileTypeForGameInfoView2>
            <fileTypeForGameInfoView3>boxback</fileTypeForGameInfoView3>
            <fileTypeForGameInfoView4>cartridge</fileTypeForGameInfoView4>        
        </RomCollection>
        <RomCollection>
            <name>SNES</name>
            <consoleName>SNES</consoleName>
            <emulatorCmd>%ROM%</emulatorCmd>
            <romPath>PathToRoms\*.zip</romPath>                        
            <mediaPath type="boxfront">PathToArtwork\SNES\boxfront\%GAME%.jpg</mediaPath>
            <mediaPath type="boxback">PathToArtwork\SNES\boxback\%GAME%.jpg</mediaPath>
            <mediaPath type="screenshot">PathToArtwork\SNES\screenshot\%GAME%.jpg</mediaPath>
            <mediaPath type="cartridge">PathToArtwork\SNES\cartridge\%GAME%.jpg</mediaPath>            
            <scraper parseInstruction="PathToScraperPack\mobygames.com\01 - mobygames - gamesearch.xml" source="http://www.mobygames.com/search/quick?game=%GAME%&amp;p=15" returnUrl="True" replaceKeyString="32x , [u]" replaceValueString=","/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\02 - mobygames - details.xml" source="1"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\03 - mobygames - coverlink.xml" source="1" returnUrl="True"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\04 - mobygames - coverart.xml" source="2"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\05 - mobygames - screenshotlink.xml" source="1" returnUrl="True"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\06 - mobygames - screenshotoriginallink.xml" source="3" returnUrl="True"/>
            <scraper parseInstruction="PathToScraperPack\mobygames.com\07 - mobygames - screenshots.xml" source="4"/>
            <searchGameByCRC>False</searchGameByCRC>
            <descFilePerGame>True</descFilePerGame>
            <ignoreOnScan>False</ignoreOnScan>                    
            <fileTypeForGameList>boxfront</fileTypeForGameList>
            <fileTypeForGameList>screenshot</fileTypeForGameList>
            <fileTypeForGameListSelected>boxfront</fileTypeForGameListSelected>
            <fileTypeForGameListSelected>screenshot</fileTypeForGameListSelected>
            <fileTypeForMainViewBackground>screenshot</fileTypeForMainViewBackground>
            <fileTypeForMainViewBackground>boxfront</fileTypeForMainViewBackground>
            <fileTypeForMainViewGameInfoBig>boxfront</fileTypeForMainViewGameInfoBig>
            <fileTypeForMainViewGameInfoBig>screenshot</fileTypeForMainViewGameInfoBig>
            <fileTypeForGameInfoViewBackground>boxfront</fileTypeForGameInfoViewBackground>
            <fileTypeForGameInfoViewBackground>screenshot</fileTypeForGameInfoViewBackground>
            <fileTypeForGameInfoViewGamelist>boxfront</fileTypeForGameInfoViewGamelist>
            <fileTypeForGameInfoView2>boxfront</fileTypeForGameInfoView2>
            <fileTypeForGameInfoView3>boxback</fileTypeForGameInfoView3>
            <fileTypeForGameInfoView4>cartridge</fileTypeForGameInfoView4>
        </RomCollection>
    </RomCollections>
</config>
- replace PathToRoms with the path to your roms
- replace every PathToScraperPack with the path where you unzipped the scrapers
- replace every PathToArtwork with the path where you want to store your artwork (make sure you have subfolders boxfront, boxback, cartridge and screenshot)
- Add your emu command to "emulatorCmd"

Advanced configuration:
- In the first moby scraper you see these attributes: replaceKeyString="32x , [u]" replaceValueString=",". You can use this configuration to remove or replace parts of your rom file names before searching. The above example will remove all "32x" and all "[u]" before searching.
- If you want to add scraping for more RomCollections just copy the complete RomCollection entry and adjust the pathes to your data. One more thing that you have to do: Check the console id that mobygames uses in its search url (e.g. 21 = Sega32, 15 = SNES). You can check for other ids if you start a search by console on mobygames.com and see what the url looks like.

This should be enough to get it working. Maybe I will add some more doc if there is some interest. But I think I will be the only one who creates new scrapers, so I won't go into the details here.

Please don't run this against your complete collection at once (depending on the size of your collection). Be gentle with mobys servers. It would be a good idea to do one collection and have a short break before starting the next one (I did not build a brake in the code until now). You also should check your configuration with a hand full of games.

I tested this on Windows with Dharma and Camelot only and only with some games. There are still some minor issues and I am sure that you may find some more if you try this out. Please let me know.

Known issues:
- Returns only 1 genre even if there are more on a page
- Only works with single game descriptions. You can't combine import from one large desc file and additionally scrape web sites (this is the next topic on my list)
- It may not always return the correct result: Actraiser 2 may return just ActRaiser or something like this.

I hope you enjoy it!
malte


- hikaricore - 2010-10-10

Running it on my 2600 collection right now. Looks like it's working pretty well. ^_^
I'm curious about something, will it try to rescrape artwork that I already have? Or will it ignore it and move on if it exists?

Another thing I've noticed, there's a lot of repetition in the xml currently is this something you'll work on cleaning up as you progress?
PathToScraperPack and PathToArtwork for example could each be a single config line set in the xml either globally or per emulator.


- malte - 2010-10-10

hikaricore Wrote:I'm curious about something, will it try to rescrape artwork that I already have? Or will it ignore it and move on if it exists?

It tries to download the artwork to the specified folder and renames the downloaded files to %GAME%.ext (where %GAME% is the name of the games rom file). If a file with this name already exists it won't download anything and imports the existing file instead.

Quote:Another thing I've noticed, there's a lot of repetition in the xml currently is this something you'll work on cleaning up as you progress?
PathToScraperPack and PathToArtwork for example could each be a single config line set in the xml either globally or per emulator.

When I have finished the scraping functionality I will rework the complete configuration. I think I will split up config.xml in something like settings.xml (hopefully editable via settings page), sources.xml and scrapers.xml. I hope that I can hide all of the advanced configurations like scrapers, filetypes, image placing, ... and just have a simple settings ui where you can add pathes to your roms and artwork and enter a launch command. All other stuff should be predefined and only used by advanced users that like to pimp it to their needs.


- harryzimm - 2010-10-10

Hi,

I just noticed the guide to install a window manager behind xbmc-live has been removed from the wiki. I've just finished a htpc re-install and cant remember the steps i used. Any chance of posting the steps in this thread?

cheers


- malte - 2010-10-10

You mean the RCB Wiki or XBMC? I did not have this is in the Wiki. Or maybe I misunderstand you?


- harryzimm - 2010-10-10

Sorry malte, just realised it was the launcher addon wiki. Here is the link

cheers


- hikaricore - 2010-10-11

Fallback images IE when the game doesn't have any artwork, would this be a skin issue or an addon issue?
I'm using Night atm and I didn't want to bug mcborzu about it until I know the cause. Wink


- malte - 2010-10-11

Good question. You can already do it with RCB but it is a bit unhandy (but I think you are used to itSmile).

Add a new FileType to config.xml:
Code:
<FileType>
    <name>fallback</name>
    <type>image</type>
    <parent>game</parent>
</FileType>

Add the path to your fallback image to every RomCollection:
Code:
<mediaPath type="fallback">PathToArtwork\fallback.png</mediaPath>

Add the FileType to every fileTypeFor...-element that is in use:
Code:
<fileTypeForGameList>boxfront</fileTypeForGameList>
<fileTypeForGameList>fallback</fileTypeForGameList>
<fileTypeForGameListSelected>boxfront</fileTypeForGameListSelected>
<fileTypeForGameListSelected>fallback</fileTypeForGameListSelected>
...
This will first try to get a boxfront image and if it does not find one it will use the fallback. This way you can chain as many images as you like, it will stop with the first one it finds.

Not sure if there is a more easy way to do this in the skin files. I could also think about adding two global default images (1 portrait, 1 landscape) to the config.


- malte - 2010-10-12

@hikaricore:

Sorry, I think there is a mistake in the above config. FileType must be like this (parent romcollection instead of game):

Code:
<FileType>
    <name>fallback</name>
    <type>image</type>
    <parent>romcollection</parent>
</FileType>