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 - 2012-01-27

Aubrien Wrote:The only issues I have is when XBMC goes into the background because I have launched an emulator, then XBMC still receives input from either the joypad or from a LIRC device.
Aubrien Wrote:I launch my emulators with scripts that pause and restart the XBMC thread which works for the xboxdrv XBox 360 user space driver and prevents the controller from sending commands to XBMC.
Isn't it possible to add the LIRC.stop and LIRC.start to the launch scripts that you are already using? If I can't add this option as a general feature to RCB you (and others) always have to edit the launcher.py again when I update RCB without this change.

An example script can be found here. As I said in this post I did not try this myself.

DANGERDAN Wrote:On another note i do have a bug for you malte and will be happy to support and provide any info you may need but anyway the issue is i have "XBMC.ActivateWindow(Home)" mapped to my controller so i can productively switch to the main menu for quick reselection of my choice but doing this screws up rom collection browser to the point that it wont work at all lol, all other programs work fine like the movies section and advanced rom etc.
This is a known issue. I guess this is a difference between a plugin and a script. The script will still run when you leave its window. A plugin may be stopped by XBMC (not sure if it is like this). I have to check if I can stop RCB when the home button is pressed (without disabling the function of the home button).

Bawk Wrote:I'm new to RCB so I hope this question isn't stupid. Have searched and can't find an answer. Is it possible to select artwork for single games within a collection? I have tried integrating games with both RCB and Advance Launcher, AL has this ability (via context menu) but I can't find a way to do this with RCB. I prefer the ease of RCB and it is integrated better, IMO, into the skin. Thanks you.
Not yet. This feature will be added but is not done yet.

reapy Wrote:So I'm trying to get mame set up to run. I have it working for most of the roms by following the offline scrapping tutorial on the wiki, only it is not working 100% for everything, which is odd because I see the missing roms in the mame.txt file, spelled correctly and everything, yet on the scrape it doesn't create the no file. On others it has the wrong titles or picks the wrong artwork...it also doesn't seem very friendly towards cloned roms and all that.
I did not create or double check this file myself. Just ran some tests if it works in general.

reapy Wrote:How do you go about manually correcting things so it shows up in the browser....do you have to create nfo files for each entry for them to show up? For the other systems I just kept updating the names until the online scrapers would let me manual set them.

So I guess my question is that through all the scraping you just need an NGO file for each rom, and all should be well?

Is it possible to manuall set which rom a rom is via an Id or URL so you don't have to manually build files and can just go in and hand tune stuff?
The matching of games and information inside this file is done by the crc values.

Code:
*#*#*#*
Game: '88 Games
CRC: 429785DB
Platform: Mame
Genre: Sports / Track & Field
Release Year: 1988
Developer: Konami
Publisher: Konami
Description:
429785DB must be the crc value of the first file inside 88games.zip.

In xbmc.log you will find some lines like this after game import:
Code:
08:12:47 T:7720 M:814088192  NOTICE: RCB_INFO: current rom file: F:\Games\MAME test\Roms\88games.zip
08:12:47 T:7720 M:814088192  NOTICE: RCB_INFO: gamename (file): 88games.zip
08:12:47 T:7720 M:814088192  NOTICE: RCB_INFO: gamename (friendly): 88games
08:12:47 T:7720 M:814084096  NOTICE: RCB_INFO: handling zip file
08:12:47 T:7720 M:813936640  NOTICE: RCB_WARNING: more than one file in zip archive is not supported! Checking CRC of first entry.
08:12:47 T:7720 M:813936640  NOTICE: RCB_INFO: crc in zipped file: 092A8B15
08:12:47 T:7720 M:813936640  NOTICE: RCB_INFO: Adding crc to crcOfFirstGame-dict: 88games: 092a8b15
So you see there is a mismatch of the crc values and the game will not be found: RCB is searching for 092a8b15. The easiest option will be to add the wrong crc value to the MAME.txt file. You can add it as a comma separated list:
Code:
CRC: 429785DB,092a8b15
But first test with some single files before you do the whole thingBig Grin
(If your really do this and add some missing crc values to the file it would be great if you could send me the modified version and I will upload it).

Using the first file as crc value is not real MAME friendly as it should compute the crc of the whole file I think. Maybe I have to change this some day but then we will need a new MAME.txt file using this crc values. Another option would be to use the names of the zip files as keys in the MAME.txt file. AFAIK these names are unique and always the same for all games on all platforms. So if anybody comes with a description file I will be happy to create the matching parser.


- st graveyard - 2012-01-27

Hey Malte,

I hope you also have the mobygames scraper bug in your todo list. Currently the nfo file does not contain the description when saving the files to local HD.

Cheers,
Grave


- malte - 2012-01-27

Description? I thought Developer and Publisher?

Anyway, it is prio 1 and will be done as one of the first things when I am back on topic (hopefully soonSmile).


- reapy - 2012-01-27

Thank you for the info! I don't have time to look into it now, but will definitely start plowing into look at the file. The problem is the media center is on the TV and its hard to find 'fiddle' time with it Sad

I did have one more question too. I have been trying to add videos to the game. I can get it to work if I delete the rom collection, add it again, cancel out of the wizard before import, add the path to videos to the dir with the game movies, then do an import on the collection with the scrapers as local.nfo then local artwork.

If I want to update or add more movies (trying to get titles correct so it links, having trouble with :'s in names... but will most likely just use something besides %game%.

Anyway the main thing is it doesnt seem to be updating if I go to "Import Games" choose the collection, choose automatic mode, check 'change scrapers for this run' then select 'local artwork', none, none then hit import. It gives me no errors but if I check the log it has things like this:

Code:
11:09:15 T:2304  NOTICE: RCB_INFO: current rom file: C:\Content\ROMS\SNES\Zelda - A Link to The Past.smc
11:09:15 T:2304  NOTICE: RCB_INFO: gamename (file): Zelda - A Link to The Past.smc
11:09:15 T:2304  NOTICE: RCB_INFO: gamename (friendly): Zelda - A Link to The Past
11:09:15 T:2304  NOTICE: RCB_INFO: Start scraping info for game: Zelda - A Link to The Past
11:09:15 T:2304  NOTICE: RCB_INFO: scraper == "local artwork": True
11:09:15 T:2304  NOTICE: RCB_INFO: Can't use "local artwork" scraper if game is not already imported. Use another scraper first.

I can keep deleting and readding the rom collection until they all come up, but just wanted to let you know that it doesn't appear to be working correctly as per my understanding of what the wiki says.

Also, is there a place where I can manually link the video? The local .nfo file for games that work with videos doesnt appear to have a gameinfo link, so I'm going to guess it is in the MyGames.db which I'm not sure how to edit.


- malte - 2012-01-28

reapy Wrote:Anyway the main thing is it doesnt seem to be updating if I go to "Import Games" choose the collection, choose automatic mode, check 'change scrapers for this run' then select 'local artwork', none, none then hit import. It gives me no errors but if I check the log it has things like this:
If you add a game for the first time you don't have to use the "local artwork" scraper. Use one of the online scrapers instead. If the videos are in the correct place it will also import the video files together with the game description.

reapy Wrote:Also, is there a place where I can manually link the video? The local .nfo file for games that work with videos doesnt appear to have a gameinfo link, so I'm going to guess it is in the MyGames.db which I'm not sure how to edit.
No, not really. It is stored in MyGames.db and you could edit it there with any SQLite editor. But if you are not familiar with SQL or databaes in any way I would not recommend it. But it is easy to backup (just copy the file), so you could give it a try if you like.


- st graveyard - 2012-01-28

malte Wrote:Description? I thought Developer and Publisher?

Anyway, it is prio 1 and will be done as one of the first things when I am back on topic (hopefully soonSmile).

Correct,sorry about that one, Malte. But great news it is prio 1 on your list. thanks.


- reapy - 2012-01-28

The games were imported already, they have .nfo files and are in the browser. I later came back to add game movies and tried to use the local artwork browser.

I have the videos named exactly as they appear on the game browser list, and the mask is %game%.* . I can double check that maybe they aren't exact matches though.

Ah ok sqllite i havent played with that one, but am familiar with sql, thats good to know and I can go in and troubleshoot that way.

Again thank you very much for taking the time to reply and for creating this great program, I understand how taxing it can be to keep answering questions and keep it updated in your free time.

I should have enough info to get everything in place with it eventually. Thank you!


- Tomkun - 2012-01-29

@reapy

Where do you have the videos set up to play? The main window or the info window or both?

The reason I ask is that in the info window videos will not play automatically until you press 'up'.

It's worth checking because I also thought I had import problems when it was in fact this bug.


- reapy - 2012-01-29

They are set on the main window to play. It was playing the one video I had named properly when I 'added' the rom collection. I went back and then renamed a few other of the videos in the same directory to match the file names and did the import again with the local artwork scrapper and had no result.

I did get a chance to check the mygames.db and the other videos were not present in the File table and there was no association in the Games table with the other movies like there was with the one that worked correctly.

I haven't gone ahead and edited the DB yet though, got a new baby in the house and hard to find a moment to do anything that requires focus hehe.

Though at the end of the day what I might end up doing too is deleting each rom collection and readding it when all the file names are correct.

Once again though I want to say how badass this addon is, I feel like I just want the front end set up more than I want to play most of the games hehe. Its just nice to see all the games I grew up playing there at my finger tips on the tv, I would have killed for this when I was younger.


- malte - 2012-01-29

reapy Wrote:The games were imported already, they have .nfo files and are in the browser. I later came back to add game movies and tried to use the local artwork browser.

I have the videos named exactly as they appear on the game browser list, and the mask is %game%.* . I can double check that maybe they aren't exact matches though.
Either you made a mistake with your configuration/naming or you ran into a bug of the addon. Could you please pastebin a complete log file of an import with this error and show me the link? So I can check whats going on.


- Aubrien - 2012-01-29

Thanks for the suggestion of moving the LIRC.Stop/Start commands into my scripts. The missing piece of the puzzle preventing me from doing this before was the xbmc-send command as I saw in your link...

Code:
xbmc-send -a "LIRC.Stop"
.
.
.
xbmc-send -a "LIRC.Start"

The only question I have though is how do I install the command in question? I use the following process to install and update xbmc...

Code:
cd /usr/src/xbmc
git pull
make -j2
make install

After searching my file structure I noticed I had the following...

/usr/src/xbmc/docs/manpages/xbmc-send.1
/usr/src/xbmc/tools/EventClients/Clients/XBMC Send/xbmc-send.py

Am I missing a step with my compile or install that would give me the xbmc-send command under Linux? I really like this method as it would open the door to many other creative options for my scripts so I really want to get it working.


- debennett2 - 2012-01-29

Any word on the next release? The need to use a keyboard to "escape" out of this is killing the intuitiveness of xbmc and me selling the setup to the natives.... Smile


- malte - 2012-01-29

Aubrien Wrote:The only question I have though is how do I install the command in question? I use the following process to install and update xbmc...
Sorry, I did not do this myself. But a search for "xbmc-send" had some hits. Maybe you can start here or here.

Looks like you have to install xbmc-eventclients or something like this.

debennett2 Wrote:Any word on the next release? The need to use a keyboard to "escape" out of this is killing the intuitiveness of xbmc and me selling the setup to the natives....
Started with my first code change after a 6 weeks break today. I hope this will bring me back to business as usual and a new release in the next days. Time is still short but I hope to release small changes continuously from now on...


- Aubrien - 2012-01-30

I did a little research and found that the xbmc-send command can be obtained from the debian-multimedia repos and various other locations. There is another source as well. If you are like myself and prefer to use git and to compile your own XBMC, the xbmc-send command actually comes with the source.

/usr/src/xbmc/tools/EventClients/Clients/XBMC Send/xbmc-send.py

This python script does the same as the xbmc-send command from the repos. For example...

Code:
cd /usr/src/xbmc/tools/EventClients/Clients/XBMC\ Send
python xbmc-send.py --action="XBMC.Mute"
Sending action: XBMC.Mute

My sound muted! I did it again and it unmuted. I can do this with the LIRC.Stop and LIRC.Start commands and I can add these lines to my launcher scripts and can now disable/enable LIRC as I enter/exit my emulators without the need for a code change on addons.

All of the xbmc-eventclients packages that are in the repos plus some are actually in the /usr/src/xbmc/tools/EventClients directory.

From the repos...
Code:
apt-cache search xbmc-eventclients
xbmc-eventclients-common - XBMC Media Center (Event Client Common package)
xbmc-eventclients-dev - XBMC Media Center (Event Client Dev package)
xbmc-eventclients-j2me - XBMC Media Center (Event Client J2ME package)
xbmc-eventclients-ps3 - XBMC Media Center (Event Client PS3 package)
xbmc-eventclients-wiiremote - XBMC Media Center (Event Client WII Remote support package)

From the git source tree...
Code:
cd /usr/src/xbmc/tools/EventClients/Clients
ls
J2ME Client  OSXRemote  PS3 BD Remote  PS3 Sixaxis Controller  WiiRemote  XBMC Send  Xbox360 Controller

Very cool!


- malte - 2012-01-30

Cool! Thanks for the research. This will be a good one for the RCB wiki.