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-06-03

Quote:@malte, perhaps something to add at some stage would be an option to turn gloss covers on and off, for people who decide to use cbagy's 3D xbox boxart or for that matter any of the RX 3d box art.

Just think 3D. It is a game box inside a glass case;-)

If you don't like glass overlay you could go to the main skin file and search for all lines with "<texture>rcb-GlassOverlay.png</texture>". You can remove the complete image control that uses this texture. Maybe I will add an option to switch this on/off per RomCollection.


Current state of the xbox development:
- My xbox arrived and I got XBMC and RCB up and running. I really like it;-)
- Paybacs fixes to get emu and xbox games launching correctly are included and working.
- "on-the-fly" .cut file creation is included but for some reason it launches the emu without autoloading the rom file. Maybe this is just a configuration problem on my side.
- PMIII skin not showing the text of unselected items in info 2 view is fixed. You can go to the main skin file and replace every occurance of "grey2" with "grey" to solve this. Seems that PMIII did not know the colour grey2.
- I can reproduce the problem with videos playing in full screen. Trying to fix it but actually have no idea why this happens.
- Loading larger rom sets causes lot of problems on xbox. It takes a very long time to load all items and xbmc only shows some of the images even if they are are present. You can avoid this with removing the "All" filter entry from genre or year filter for example. Just set "showEntryAllGenres" or "showEntryAllYears" to False in config.xml. I will try to add something like character browsing that will allow you to filter games by first character.

I hope I can get rid of these problems in the next days and soon release a preview version with these fixes included.


- Paybac - 2010-06-04

Nice to hear you got you xbox and it's up and running, shoudl be easier to point out problems, instead of me stumbling through it trying to describe issues Laugh

Have you run into any problems trying to impost larger ROM and EMU Collections?

I am having a problem trying to import a larger collection of ROMS and EMUs into RCB. At first i thought there might be a limit on the number of ROMs being imported being 1191, but then i took out my Megadrive collection and tryed again, This time it stopped importing games at 770. Both times it stopped importing midway through collections. So this lead me to believe that it was not the number of collections. Currently trying to import 12 collections. I have not checked to see if it was a certain collection number that it was stopping on. I did test importing all the collections individually to see if there was something wrong in a particular config, but had no issues.

I'll hopefully get a xbmc.log and a update.log up soon.

Is there any limitations that you know of Malte or something in particualar i should be looking for?


Actually just thought of something, In all instances were it has not imported all the ROMs, RCB has not launched straight after importing, I have had to launch it agin from the menu. Perhaps this leads to a Xbox limitation of some sortHuh

Anyways i'll fire up the logs hopefully Soon.

EDIT: Here are logs
http://pastebin.com/pj8u0jC0
http://pastebin.com/ZbWuJ7dK


- Bomb Bloke - 2010-06-04

malte Wrote:- "on-the-fly" .cut file creation is included but for some reason it launches the emu without autoloading the rom file. Maybe this is just a configuration problem on my side.
My first guess would be that the emulator doesn't like the path you're sending it. Also remember that not all Xbox emulators support the use of CUTs to directly boot ROMs. Most (probably all) XPort emulators work.


- malte - 2010-06-04

Paybac Wrote:At first i thought there might be a limit on the number of ROMs being imported being 1191, but then i took out my Megadrive collection and tryed again, This time it stopped importing games at 770. Both times it stopped importing midway through collections. So this lead me to believe that it was not the number of collections. Currently trying to import 12 collections.

Never tried such a large number of roms. At least there is no builtin limitation;-)

There are three problems in your log files. Two of them should explain the behaviour you run into:

1. Lots of Out of memory-errors. Not sure if this is an issue as it seems that its going on after a while. But maybe it is a better idea to import collections one by one and not all collections with one import. You can toggle the flag "ignoreOnScan" per RomCollection. You can prepare your config for all collections but set all except one to "True".

2. The problem why RCB stops importing is this one: "IntegrityError: column name is not unique". This means that there is more than one game with the same name. Did you use the latest preview version (V0.6c)? In earlier versions there was an error with exactly this name constraint. The name had to be unique in the whole database. In the current version it should be possible to have the same name in different rom rollections. But there is no way to have the same game name in one rom collection.

But I think this error occurs because of error number three:

3. In your update.log you have this error:
Code:
RCB_WARNING: an error occured while parsing game description: f:\emulators\Other Emulators\CHIP8\synopsis.txt
RCB_WARNING: Parser complains about: Expected "Game: " (at char 0), (line:1, col:1)
RCB_WARNING: game Breakout could not be found in parsed results. Importing game without description.

RCB tries to parse your synopsis files and runs into an error. The game will be imported without description and that means it will use the filename as game name. Just a guess but maybe the game name would be unique if RCB could find the result in the synopsis file. Please check if your parserConfig is the correct one for this synopsis file. Or check if the synopsis file has any errors. You can upload both files somewhere to let me do the check if you like.

You can also set the flag "ignoreGameWithoutDesc" to True. This will skip all games where RCB can't find any game descriptions and just writes a warning in the log file.


Bomb Bloke Wrote:My first guess would be that the emulator doesn't like the path you're sending it. Also remember that not all Xbox emulators support the use of CUTs to directly boot ROMs. Most (probably all) XPort emulators work.

Thanks for the hint. I will play around with some more emulators to see where the error is. The first one I tried was snes9x-X. Unfortunately I did not find any useful documentation about this one. Do you know if it is able to use cut files? Or is there another snes emu that can do this?


- Bomb Bloke - 2010-06-04

Hmm, what I have installed for SNES is "ZsnexBox 3.3". Works with CUTs and expects the full ROM path to be passed to it. I'm pretty sure there are more up-to-date versions, though.


- Paybac - 2010-06-04

Updating to 0.6c has fixed the problem and seems to be working good. My Parser is definitely the wrong one as i am still using the one i whipped up for my xbox games across all the emus.

So next step is to write up a parser.xml that covers this synopsis setup

Code:
************************************************************************************************
////////////////////////////// Chip8X Synopsis (February 20, 2010) //////////////////////////////
************************************************************************************************

                               Synopsis Compiled By: RessurectionX

                                    Edited By: RessurectionX

PLEASE DO NOT EDIT THE MASTER FILE UNLESS YOU'VE BEEN DESIGNATED THE HOLDER OF THE "HOT POTATO".
                                 THANK YOU FOR YOUR COOPERATION

************************************************************************************************
*
4E8693F1
15 Puzzle
Platform: TELMAC 1800, COSMAC VIP, TI 660, DREAM 6800
Region: USA
Media: Chip8 Code
Controller: CHIP8 Keypad
Genre: Puzzle
Release Year: Unknown
Developer: Unknown
Players: 1
_________________________
*
You have to move all the items and put them in increasing order, starting at the upper-left corner. Move the item you want by pressing his associated key (ex: to move item 3, press 3).

The key structure basically makes this unplayable on the XBox unless you want to assign to your memory what the keys are.

~From a text document inside a Chip8 rom collection zipfile
*

*
6FD89B3D
Airplane
Platform: TELMAC 1800, COSMAC VIP, TI 660, DREAM 6800
Region: USA
Media: Chip8 Code
Controller: CHIP8 Keypad
Genre: Shooter
Release Year: Unknown
Developer: Unknown
Players: 1
_________________________
*
You must drop packets from your airplane (key 8) and make sure they hit the ground without colliding with other planes.

Controls:

A = Shoot

Start = Restart Game

~From a text document inside a Chip8 rom collection zipfile
*

*
B8D5810B
Alien
Platform: TELMAC 1800, COSMAC VIP, TI 660, DREAM 6800
Region: USA
Media: Chip8 Code
Controller: CHIP8 Keypad
Genre: Shooter
Release Year: Unknown
Developer: JL
Players: 1
_________________________
*
Another Space Invaders type game.  Enemies come at you faster as the game progresses.  ~Rx

Controls:

D-Pad Left = Move Ship Left
D-Pad Right = Move Ship Right

A = Shoot, Start Game
*



- malte - 2010-06-04

This should be a valid config for your example:

Code:
<parserConfig>
    <GameGrammar type="multiline">
        <SkippableContent skipTo="LineStart*LineEnd"></SkippableContent>
        <SkippableContent>LineStart*LineEnd</SkippableContent>
        <crc restOfLine="true" delimiter=","></crc>
        <Game restOfLine="true"></Game>
        <SkippableContent>Platform:</SkippableContent>
        <Platform optional="true" delimiter="," restOfLine="true"></Platform>
        <SkippableContent>Region:</SkippableContent>
        <Region optional="true" delimiter="," restOfLine="true"></Region>
        <SkippableContent>Media:</SkippableContent>
        <Media optional="true" delimiter="," restOfLine="true"></Media>
        <SkippableContent>Controller:</SkippableContent>
        <Controller optional="true" delimiter="," restOfLine="true"></Controller>
        <SkippableContent>Genre:</SkippableContent>
        <Genre optional="true" delimiter="," restOfLine="true"></Genre>
        <SkippableContent>Release Year:</SkippableContent>
        <ReleaseYear optional="true" delimiter="," restOfLine="true"></ReleaseYear>        
        <SkippableContent>Developer:</SkippableContent>
        <Developer optional="true" delimiter="," restOfLine="true"></Developer>        
        <SkippableContent>Players:</SkippableContent>
        <Players optional="true" delimiter="," restOfLine="true"></Players>        
        <SkippableContent restOfLine="true"></SkippableContent>
        <SkippableContent restOfLine="true"></SkippableContent>
        <Description optional="true" skipTo="LineStart*LineEnd"></Description>
        <SkippableContent>*LineEnd</SkippableContent>        
    </GameGrammar>
</parserConfig>

If you have optional entries that will occur later in the file and are not mentioned in your examples you could just add them with something like these two lines:

Code:
<SkippableContent>Release Year:</SkippableContent>
<ReleaseYear optional="true" delimiter="," restOfLine="true"></ReleaseYear>

"Release Year:" in the first line must be replaced with the Text that you are using as keyword in your description file. "ReleaseYear" in the second line must be replaced with one of RCBs known properties. See a list of all available properties here: http://code.google.com/p/romcollectionbrowser/wiki/Main#Named_Element


- Paybac - 2010-06-05

Cheers for the Parser Malte,

Running into problems when it starts scraping using the above parser

Heres logs
http://pastebin.com/diVtBH8z
http://pastebin.com/vHSXjaQw


- malte - 2010-06-05

The update.log seems to be incomplete. It ends like this:
Code:
RCB_INFO: gamename (friendly): 3 Ninj

Just have a look at the last 10 lines of your log. If there are any RCB_ERROR or RCB_WARNING entries I will just need these last lines.


- Paybac - 2010-06-05

Update log always finnishes at that exact point 3x, was hoping you might see something i didn't think it was xbox running outa memory, guna try on another collection now, see what happens.

If it craps out again i'll try on one of the small collections CHIP-8 or something, if the problem exists there then we might have to look at individual game synopsis. But i'll let you now how i get on.


- malte - 2010-06-05

Enough space on your hd left? ;-)


- Paybac - 2010-06-05

Only 40gb left on the xbox Sad


- Paybac - 2010-06-05

Ok so on this collection it starts scraping the synopsis, but painfully slow like 4-5mins per ROM. and after adding 5 roms or so i stop it and it has only added the first ROM into RCB "Action Fighter"

Heres the update log
http://pastebin.com/V5z46fCE

Heres the synopsis.txt for this collection
http://pastebin.com/hnaDkji8
Same layout as mentioned in the synopsis above


- malte - 2010-06-05

Do you have "descFilePerGame" set to "True" for this rom collection? You must set it to "False" if you have one big synopsis file with descriptions for all your games. Otherwise it will try to read the complete file for every game. This is time and memory consuming and could be part of your problem.


- Paybac - 2010-06-05

Yep did have it set to true, now changed to false, still having same trouble with original collection, guna try another collection now see what happens

EDIT: Tried another collection still exact same results as before.

EDIT: Heres my current config, parser is the same as you gave above for all, except the xbox parser(Xbox game Parser runs smooth and quickly approx 1-2 seconds per game, these are individual synopsis).
http://pastebin.com/Cs78NqGv