PDA

View Full Version : Games Library (Game/Emulator database and launcher) development project, help wanted!


Awen
2008-11-19, 17:22
As an 'old' game programmer, I feel my duty to have a some sort of 'Game Museum' at home for my kids (and probably myself too), of course by using the most of my existing HTPC.

So I was a bit surprised not to find this in XBMC already, as the 'Xbox' is originally a game platform, not finding a strong support for 'Games' in XBMC available in the ports to other platforms. Is there perhaps any reason concerning (the lowest priority on) this one? Some architecture hazard preventing this? Or just an understandable lack of time and resources to work on this?

I reckon it's floating in the air (link to another related discussion therads (http://xbmc.org/forum/tags.php?tag=games+library)), and I know that the Launcher Plugin (http://xbmc.org/forum/showthread.php?t=35739) can do some of this, but IMHO a tighter integration in XBMC could be much better.

So, the question is really this; is something like this already planned, somewhere by someone and can I assist?

As it's an itch topic for me I have begun developing some stuff related to this, for now as a 'contribution exercise'. Not sure how far it'll go, so far it's kinda plugged into the 'Program Window' in XBMC's GUI, mainly concerning emulators like for example MAME (http://mamedev.org), but things should hopefully be usable for all later in 2009, either as a patch or as something more official, it all depends of the community interest around this. And/or the possible feelings of project managers and developers, hence this post :)

Cordially / Awen

spiff
2008-11-19, 17:43
VERY welcome. only a havent-had-the-time-or-resources problem.

i had a system for this layed out in my head at one time. my idea was to build the equivalent of a library view for programs, with info being fed from python plugins. this allows much flexibility, minimizes the amount of development being done in c++ and, very importantly, it makes sure that you do things as general as possible.. but life caught up and i simply havent gotten the time these days to start on such a huge task (i know how much work this takes from building the video library..). well, rant over.

your work is very welcome. i'll gladly help with q's and such. if they get extensive i prefer irc..

Rand Al Thor
2008-11-19, 18:20
@awen

Wow! This sounds great. I for one, and I am sure many others, would be very interested in a project like this. Much like spiff I have actually spent a fair amount of time puzzling over the best way to incorporate programs seamlessly into xbmc. While I have lots of great ideas, I am not a programming god like spiff ;) That being said, if you would like any feedback/ideas/possible implementations please let me know. Cheers.

Awen
2008-11-20, 17:14
Of course, even if this 'Games' project is at its early stage: all of your ideas are utterly welcome. As i'm still struggling against various architecture deciphering (xbmc is a big chunk to swallow :) it's a perfect moment for synthesizing...

In a perfect world i'd to release often: something humble but workable as the 1st release, going richer and nicer with time.

Hence i'd like to build a list of 'core features' (implementing-the-current-'Launcher'-features-but-with-an-enhanced-user-experience, as a goal ?), but with the next 'feature rings' in mind, very early: to avoid major refactoring later on.

Some 'things', i have in mind right now, for a start:

1) separating the 'game' entities (and related informations) from the application used to launch them: it's mainly concerning rom and emulators, but as some apps are sharing rom files, i'd like to be able to run a particular game with various 'launchers' and option sets, and to avoid entries replication...

2) for a good user xperience, games database and relationships should be 'slacky':
2a) Like Mame is able to provide us a 'supported game list', it might be interesting to be able to reference them, even without any files on your harddisk. Of course GUI/and sources should reflect the availability status.
2b) Going further, i'd like to add thumbnails/fanart/infos without rebuilding the whole database every days. The idea is to find the best balance between database building, and dynamic info retrieval (like thumbs)
<- Rand al Thor user experience here :)

3) Scanning informations: Spiff is totally right, client/emulated games information comes from various sources: no 'igdb' actually... (fe mame is having 2 files concerning >4000 games, but for others it's a one-by-one situation). And Scanners should be ready to work with tons of romsets at once. A plugin architecture would be welcomed, of course.

'All for today... Pursuing the list when the dust will settle :)

Rand Al Thor
2008-11-20, 20:44
Awen, it sounds like you have put a great deal of thought into the emulators section. Everything you have suggested so far seems great. Some of my ideas will add to that while others concern "programs" or "games" as opposed to "emulators"

First let me apologize as my coding skills are meager. So, if I suggest something that is impossible/impractical/plain silly please forgive me ;)

As I see it the main concern with adding any of these features (games, programs, emulators) is seamless integration into xbmc. The launcher program, though very useful, breaks the "magic" of xbmc by launching everything in a new window. The user then sees the desktop and xbmc windowed showing that really these are two completely separate programs. The xbmc experience SHOULD give the illusion xbmc is an all inclusive program. You should never feel as if you are "leaving" xbmc. As you mentioned Awen of making a "game museum" arcade type machine, it would break the illusion of this ultimate gaming machine to see the computer desktop every time you start a new game.

The first big step would be to make all programs start "inside" xbmc. By this I mean that they do not launch an external window and would still be subject to the rules/controls of xbmc. Awen, if you have not tried the linksbrowser integration you should. It actually was quite well thought out. If I remember correctly, I think you could do the following with links browser.

Each program when launched should act the same as the movies or music section of xbmc. If you launch firefox you should be able to browse to any web page you like, then toggle back to xbmc's main menu while firefox continues to run. You could start some music, then toggle back to firefox and browse while listening to music. Then you should have an easy way of killing the program to return to the programs section. Launching a new program while another program is running should kill the first program before starting the next just like with movies and music. It will save system resources too to not have multiple programs running behind the scenes because you toggled away from them instead of actually killing them. There may be an exception to this rule which I will explain later.

Now that we have established the basics of how a program will run under xbmc, we come to what I consider the tricky part. Since there are many different types of programs from games to instant messengers that xbmc users might use we need to consider that fact that some of these programs use a considerable amount of buttons. Some of which might conflict with xbmc's current button mappings. For example "Tab" toggles the screen when playing a movie. However, in firefox it would be quite annoying if every time you tried to tab down to the next box it toggled the screen. See the issue?

My solution is to have settings for each program similar to plugin settings or some of the settings in the launcher plugin. These settings would be established each time a new program is added. We could either have a drop down that would give templates of common program types ie common settings for web browsers, games, other etc etc. Or just a list of what we consider to be the most common settings that would apply to any type of program.

For the above example of firefox there could be a setting labled "use alternate buttons." If this setting was checked then once a program was launched you would either:

A) use ctrl+tab or shift+tab (or whatever seems more logical, any combo would work) to toggle the screen and tab alone would still function the same as it normally would in programs. The same would apply for bringing up the player controls if music is playing etc etc.

B) use another very uncommon combination of buttons to bring up a pop-up menu that gives the option to toggle screen, quit program, bring up music controls, etc etc. If we decided something like this would be preferable then it might be just the default for all programs instead of a check box in program settings.

Another option that would be handy to have in program settings would be "enable mouse." Many programs do not need a mouse, emulators for example. I have my xbmc set to have the mouse disabled so that it doesn't get bumped and send my wrap lists spiraling out of control. However, a web-browser or newer games would require a mouse. Not really sure if that is something that would just appear when the program is launched or if it is something that xbmc would regulate. Just wanted to point it out. If we decided to go with option B from above for using a pop-up menu in programs for xbmc controls you might also integrate that in with the mouse, ie mousing over the bottom right hand corner of the screen brings up the pop-up. Again, this one is up for debate.

As I mentioned before, it would be nice to have music playing while answering emails or using an IM. However, if you are playing a video game with sound it would be a conflict of interest. A setting to "Enable XBMC Sounds" would be useful allowing you to continue listening to music when your program starts. Another option to consider along the same lines would be "Enable Program Sounds in XBMC." This would be a great option for an instant messenger. That way you could start your IM client and be doing other things. Then you would still be notified if you have a message.

Speaking of IM's, I know there has been mention of integrating one into xbmc. While it is a cool idea, it might also be like re-inventing the wheel. There are already quite a few really functional clients out there. If you could implement it as I have described above I don't see a need to spend the time and add the bloat to xbmc. The IM would be an example of a program that could have an option to "run as service" or something of that nature. Ie if you start it, it will continue to run even you start another program. You would then have to just click on it again to bring up it's gui. I could see this being handy for torrent clients as well. The only other issue I see with using a pre-existing IM client instead of an integrated client is that if you are watching a movie or listening to music it would be annoying to have a constant beep when a message arrives, but might also be annoying to miss an important message. A setting to "silence notifications during playback" would be perfect. That way if you are listening to music or watching a movie instead of a sound you could get a nice pop-up that you have a message. This might be trickier than it sounds from a coding standpoint since the IM client would not be a part of XBMC. It would have to have some way of knowing when a new message arrives. I will leave that to someone who is far better at coding than I am ;)

So, these are the issues I see so far with adding programs to xbmc. Many programs will need different settings to make them functional without loosing the xbmc experience. I am sure there are a few other settings that might be helpful that I haven't thought of. Can anyone else think of any probable issues/conflicts I might be missing? As always these, are just thoughts. If you see merit in them, great! If not, I am more than happy to hear why. Sorry to have written a novel. Thank you to anyone who actually reads all this ;)

Awen
2008-11-22, 16:21
@ Rand Al Thor
Your last post should be kept and used as a reference trough all this forum, as it's probably describing a big part of the 'my program' feature/problem list. You know, the forgotten one :)
As i'm only starting with xbmc, i dont want to speak on behalf of the project leaders, here :) My project for 'my games' is more like a proof of concept: i cant be definitive about the directions it will take.
Anyway, i definitely got your point about integration between xbmc and the rest of the world. But considering games applications, i'm pretty sure the integration will be somewhat limited, as generally a game needs to access every single bits of the hardware resources of your htpc: context switching is always rude. The guest OS should provide developers some 'stuff' to do that seamlessly - it does this for sound fe - but for graphic or input devices, it's generally an 'all or nothing' situation.
So, the 'best' integration solution would be to bloat xbmc with every possible pieces of, say, emulation code to guarantee a continuous firm grasp on hardware, therefore allowing smooth interfaces and transitions. But this is terribly huge task :) (Did someone already play with Mame code ?)... For some other application types (Instant Messaging): it's the only possible way, but to be broader, would be at the cost of a stronger(?) plugin development framework inside xbmc (Is something as such already defined for 'My Programs' ?).
Anyway, if we're sticking with your 'best possible integration' request, but still launching external application: i'm confident in finding *some* solutions to switch gracefully between strong external app contexts. IIRC, the GameEx front-end (win32) is having some dark/black window standing ready behind the main app window, to hide OS background during an external application launch... Fading in main application graphics and sounds... Building 'on the fly' xml joystick configuration for mame...

Any idea to minimize user experience 'glitches' is welcomed.

EMK0
2008-11-22, 16:57
http://aruantec.ngemu.com/video.html is that full integration in an app? is this possible with xbmc? if not gameex method is still fine.

Rand Al Thor
2008-11-22, 22:45
@ Rand Al Thor
If we're sticking with your 'best possible integration' request, but still launching external application: i'm confident in finding *some* solutions to switch gracefully between strong external app contexts. IIRC, the GameEx front-end (win32) is having some dark/black window standing ready behind the main app window, to hide OS background during an external application launch... Fading in main application graphics and sounds...

This is actually exactly what I was talking about. I must not have been clear enough ;) Even if we ARE launching external applications (which I would assume would be the easiest way of integrating a majority of apps) we just need to give the illusion that we are not ie. No visible extra windows and no visible peeks at the desktop. I guess I should have stated that above. Anyway, what you suggested sounds like a great solution. I know my proposals above were far beyond what you had discussed in you project but I thought it might be nice to lay down a basic concept for what the final solution could be. That way as you said before, you or others could add a little at a time until the project has reached it's "final" goal. Cheers and thanks for reading my overly wordy posts.

chucky08016
2008-11-23, 01:30
How about intergrating a frontend like Maximus Arcade?

http://www.maximusarcade.com/

I know that you have to pay for use but it's a great frontend and it supports ALOT of emulators.

Take a look...

Awen
2008-11-23, 22:34
@EMK0: promising app. crashing a lot at this stage, but still, exciting. Apparently a lot of efforts spent into the 'ease of use' field. Nice example.

@chucky08016: integrating the whole maximo ? if maximo developer is willing to do this, well, it could spare my time :) But i'm pretty sure he wont, as he's selling it, it's closed source, etc :(

I did twice of those interfaces by myself... All i propose is to spend my energy in a another iteration, but inside xbmc. Because it's multi-platform, neat, fast, and some others are making it 'looking' awesome. xbmc is, amha, my best user experience so far concerning htpc. One way or another, someone is going to implement games support, maybe not as extensively as other specialized apps, but well, with a better integration with the rest, so i'm pretty sure it's worth the effort.

chucky08016
2008-11-24, 02:52
@chucky08016: integrating the whole maximo ? if maximo developer is willing to do this, well, it could spare my time :) But i'm pretty sure he wont, as he's selling it, it's closed source, etc :(

Actually, I was thinking why not have an option to launch the program from XBMC. There are separate sections for movies, music, videos, Tv Shows, etc. Why not have one for games and whe you "add source", you can add the executable path to launch the program. When you're done with the program, it would drop you back into XBMC.

I had configured Meedio to do this and it worked great. I wish there was some way to do this with XBMC.

Oh course, you could use Maximus Arcade or any other front end you want whether you needed to purchase it or not.

Awen
2008-11-24, 10:47
@chucky08016 : Isn't the 'launcher' plugin enough in your case ? It requires a 'program page' or at least some 'favorites': [launcher plugin]http://xbmc.org/forum/showthread.php?t=35739[/URL]... Please, let us know.

chucky08016
2008-11-27, 02:26
@chucky08016 : Isn't the 'launcher' plugin enough in your case ? It requires a 'program page' or at least some 'favorites': [launcher plugin]http://xbmc.org/forum/showthread.php?t=35739[/URL]... Please, let us know.

@Awen: Yes, the launcher will do exactly what I want. Thanks.

Now, is there a way to add a Games "option" to the blade the same way there is a movies, videos, music, programs, etc. "option"? I'd like to just goto "Games" and launch either an emulator catagorized by game systems, Maximus Arcade (games front end), and maybe PC games.

Gamester17
2008-11-27, 12:12
The python plugin directory services API (http://xbmc.org/forum/showthread.php?t=28031) and the Launcher plugin (http://xbmc.org/forum/showthread.php?t=35739) are great, (and so are the ideas about a Retro-X emulator ROM laucher plugin (http://xbmc.org/forum/showthread.php?t=32186)), but it would also be nice it the programs sections could be extended to have a native launcher with a SQL database and library mode for computer games and other third-party applications on Linux, Mac, and Windows, (prefably using a cross-platform unified API), see the requests:
http://xbmc.org/forum/showthread.php?t=34679
and
http://xbmc.org/forum/showthread.php?t=28953

:nod:

Awen
2008-12-01, 20:32
Sorry to be late :) i was programming: now having some tables ready to be filled with directory scans.

@chucky08016: as far as i know, 'aeon' skin is having those 'games', even a 'arcade' blades, but you need to configure by hand where you want them to direct, basically it's shortcuts into the programs area. Not every skins are supporting 'my programs' - not speaking 'games' - but aeon does.

@Gamester: sure. i'll do my best to compile every request, thanks for those.

Awen
2008-12-10, 10:21
[Air couldnt post yesterday and PM this:]

first of all your idea about games museum is great.
somehow I still can't post comments on xbmc forum, so I'm writing this directly to you :)

I just wanted to mention that a "gamesDB" also exists, this site could be pretty useful for the XBMCgamesDB:
www.gamefaq.com

for example: Final Fantasy X (PS2) on

http://www.gamefaqs.com/console/ps2/home/197344.html

hopes this will help.....

mfg
air

[and my reply]

Excellent, thank you: i'm including it for further scrapers dev. They have all the games i did work on, even the unreleased ones :)

I'm still into xmbc databases guts, some tiny problems to sort, but first roms directories are now being parsed...

Well, i'm on it.

spiff
2008-12-10, 12:23
awen, maybe open a ticket and post a diff for review once in a while? i'm sure you have it all under control, but there ought to be some insight gained through experience with the code base that we can offer..

Awen
2008-12-30, 00:28
Sure Spiff.

Thanks to christmas holidays, i'm coding a lot these days: as soon as the first roms are kicked off, i'm opening the ticket for a rough but workable version of it. Probably around the end of this week (3-4 of january).

cheers.

(Has someone tried emuControlCenter (http://www.camya.com/eccblog/) ? huge thing, but a severe looking gui, on tv)

Awen
2008-12-31, 00:15
At last. Got my first roms/emus to be scanned, stored, launched and played through xbmc...
Some more time to cleanup the mess, and a diff/ticket will follow.
Then... After getting answers to a zillion of question, another code round :)

spiff
2008-12-31, 00:21
good shit :)

althekiller
2008-12-31, 01:14
Poor guy is about to get flooded brain dead questions and requests. I hope he doesn't regret what he's done. :)

Awen
2008-12-31, 15:45
>about to get flooded brain dead questions and requests
I already have two kids @ home, on my back every minute of the day... Maybe i will survive to this. Maybe ;)

Gamester17
2008-12-31, 18:27
@Awen, are you keeping up with the other "games library" suggestions/requests forum discussions?
Seen and read all the other threads here: http://xbmc.org/forum/tags.php?tag=games+library ???

This will be a great addition to XBMC! :grin:

Terin
2009-01-06, 22:37
Awen,

I was looking at this topic and I was about to undertake the same thing. I'm curious exactly what your modifications did -- did you go as far as creating a database for games? How does it work, and how do things plug into emulators? I'm hoping I could get something to make my Xbox actually work as an old-school arcade machine (I used it to replace my N64, NES, SNES, Genesis, etc, to save space in my cabinet).

I've posted on this thread:

http://xbmc.org/forum/showthread.php?p=265527

Not sure if you've created a database, but if not, I imagine that'll be the next step -- something to contain all of our data -- especially when it gets to be so huge. The PM for XBMC kindly provided several people to talk with about relevant topics (skinning, database, etc), if we have to play catch-up in that area.

Look forward to knowing more! Also, if it's already checked into src, let me know -- I'd be interested in testing/building locally.

Awen
2009-01-07, 14:56
Hey nice people,

I want to complete some preliminary thumbnail support before doing the diff and opening the ticket. should be tonight or tomorrow night.

Quickly, to answer Terin (longer post to follow): yes, this version 0.1 is using databases to store everything: to be compliant with xbmc philosophy, and because after some tests i cant see a better way to handle 10K roms/games informations. My concern is more to find the balance between what should, and what should not be in... XBMC uses generally two ways to browse media entities: one 'slacky' but dynamic using straight filesystem and no db, and the library mode. I'm not sure how relevant it could be to support both in 'Games' case...
Anyway, this 0.1 version is using (rebuildable from scratch) database and 3 (game, executable, settings) tables. Everything is hooked into the program section, using the virtual directory system, and fileitem menus and contextual dialogs to make up the lack of dedicated GUI...

Please don't wait too much things from this very first release, as it's more a 'pre prod' version, implemented to help me foreseeing problems and learning xbmc architecture, more than a production version :) It barely does what the launcher plugin is doing for now, only handling mame roms, for the testing.

With 0.2 i want to have everything in place: finding some balances, GUI solutions, portable application launcher, feature summarization, etc.
But 0.3 should be a good one.

Of course, all workforce warmly welcomed :)

spiff
2009-01-07, 15:12
my .02;

don't bother with a non-db backed solution here. it will be horribly slow in any case..

six_storm
2009-01-07, 15:46
This sounds like it's making great progress! I've been looking for a piece of XBMC to handle my emus and roms, but none have been successful on my HTPC. Will keep an eye out on this thread for sure!

nekrosoft13
2009-01-07, 16:13
Awen, good luck with project.

looking forward to it ;)

i mean time i might check out this emuControlCenter

Terin
2009-01-07, 17:36
Hey nice people,

I want to complete some preliminary thumbnail support before doing the diff and opening the ticket. should be tonight or tomorrow night.

Quickly, to answer Terin (longer post to follow): yes, this version 0.1 is using databases to store everything: to be compliant with xbmc philosophy, and because after some tests i cant see a better way to handle 10K roms/games informations. My concern is more to find the balance between what should, and what should not be in... XBMC uses generally two ways to browse media entities: one 'slacky' but dynamic using straight filesystem and no db, and the library mode. I'm not sure how relevant it could be to support both in 'Games' case...
Anyway, this 0.1 version is using (rebuildable from scratch) database and 3 (game, executable, settings) tables. Everything is hooked into the program section, using the virtual directory system, and fileitem menus and contextual dialogs to make up the lack of dedicated GUI...

Please don't wait too much things from this very first release, as it's more a 'pre prod' version, implemented to help me foreseeing problems and learning xbmc architecture, more than a production version :) It barely does what the launcher plugin is doing for now, only handling mame roms, for the testing.

With 0.2 i want to have everything in place: finding some balances, GUI solutions, portable application launcher, feature summarization, etc.
But 0.3 should be a good one.

Of course, all workforce warmly welcomed :)

Would be glad to help in any way possible, if you let me know what I can do, and provide some source so I can work on builds on my end. Or do you have an SVN repository for this? If not, I'd be glad to set up a temp. one for us to develop on (my webhost gives me SVN access).

I agree -- wouldn't worry about doing a database without the database... I'd consider handling it the same way one already handles things like videos, when they are not added to a Library (i.e. you just see the files, and XBMC figures out how to handle them -- no icons, prettyness, etc).

Let me know how I can help. I'd love to get my NES, SNES, Genesis, N64, and Xbox all linked in so that I can have a nicer integration into my Xbox... :)

BLKMGK
2009-01-08, 15:35
Some thoughts...

First just handling MAME is HUGE! for me that is one of the biggest things I'd like to do is be able to emulate some of the old arcade games. there's not exactly a ton of games on Linux I'd like to play but emulating other platform game systems would rock. If you've even gotten so far as handling the MAME games you are doing great things IMO. As for a database - are there sites out there we can scrape for the metadata that we get with videos now? I have little doubt there are sites with information but are they supported well like IMDB or are they smaller and likely to get trashed when a zillion XBMC folks start scraping them? Perhaps a file could be passed around with CRC and information to populate such a database if scraping is too much? I have not done much with MAME lately but my HTPCs would be exactly where I would want this to be done - the kids would go crazy if they could check out some of the old games I used to play.

As for an SVN - do that on the XBMC project not on another site. There are enough forks of XBMC out there already! This would allow the other devs to see what's up and follow along too.

Anyway Awen, thanks for taking this on. If this can be done it will be pretty darned awesome!

Now, who's going to write an emulator for all of our old XBOX games?:laugh:

Terin
2009-01-08, 17:03
Gamester posted this in the Feature forum, but there's a site called http://www.allgame.com/ that contains pretty much everything we want/need.

http://www.allgame.com/cg/agg.dll?p=agg&sql=5:26052~T1

(Believe this link is for Halo 2).

There are some scrapers that were developed in that topic, I believe -- just look for a similar topic in that forum. Someone had written a few -- would be pretty easy to modify those to hit different consoles, I imagine. There was also a suggestion for GameFaqs to be scraped (also not a bad idea).

Terin
2009-01-08, 23:52
As a game frontend user i would like to add some information.

almost every game has the following graphics available in one way or another:
-Scan of the retail box/photo of the cabinet
-Scan of the Manual
-Scan of the media (cart,cd,...)
-Scan of the PCB (Inside carts or arcade cabinets)

There are some more but these can often be used inside the emulator and do not need to be visable in a frontend

Besides the scans there are also screenshots available:
-Title screen
-Random action shot

Lastly there is written information:
-Creator
-Publisher
-Year
-Device Brand (like nintendo)
-Device Model (like the super nintendo entertainment system)
-Game Name
-Number of players
-Controller Type
-Description of the game
-and so forth...

-------------

I think for XBMC we should limit this to:
ART:
-FanART backdrop(for both individual games and individual systems)
-Retail box artwork/Arcade cabinet artwork(flyers?)
-Random action screenshot
TEXT:
-Name
-Creator/Publisher
-Genre
-Description of the game
-Number of players
-Type of controller
-Type of device
DATABASE:
Make the games searchable by:
-Genre
-Name
-Number of players
-Creator
-Publisher
-Type of device
-Year.

Most importantly i would like to be able to list all the games in one long list regardless of their system(type of device)

I think this is pretty good -- my only disagreement would be the "Type of Controller." I'm not sure that such a thing is always published (even though Duck Hunt should obviously be controlled using a gun). However, everything else is good -- rename the "Type of Device" to "Console" might be better -- if it's an Arcade Cabinet, just call it Arcade. (makes sense, right?)

I also agree with your view of the games. I'd really like to see something similar to how the movies are done, though, to be honest. Where it shows a brief description, possible fanart background, other key data, and the icons for the game (or I suppose title screen/box-art).

I would definitely agree with a possible action shot of the game -- that'd be REALLY sweet. One feature I love about the PSP is that it shows a little movie of the game when you hover over the icon of the game. It's awesome hovering over Maverick Hunter X (Megaman X remake) and seeing a little run-through of X running through a few different stages. Cool -- but I don't think this is feasible for XBMC in the fact that those videos are going to be hard to find, and that the video itself will probably be *significantly* larger than the ROM!

Would also be very awesome to search for a game based on alphabetical ordering (i.e. being able to move to section "T" for Terranigma).

For now, given the idea, it may be possible to use the XBMC Video Library view to show the information.

Awen
2009-01-09, 15:38
http://farm4.static.flickr.com/3388/3181455703_58438fbd6f.jpg?v=0

Ticket (http://xbmc.org/trac/ticket/5628) and flickr Pics/ (http://www.flickr.com/photos/30378937@N02/)

This is very raw meat ;)

Features (preliminary):
- Basic Emulator support
- Rom directories scans
- Thumbnails support

This release is only intended to check various points of xbmc internal architecture: to know flaws and strength of this little cool bastard ;)

Basically, it's designed to support and play some mame roms. It's hooked into the Program section, so might be compatible with the Aeon skin (which embeds a potential 'games' section (untested))

Ticket is referenced under 'Windows' patches as 'external execution' looks 'windows only' for the moment ?

And thanks to you guys, i have a lot of things to read: that's pretty cool, and will definitely help me defining the feature list (@project gurus: where should be the best place to nest such, btw ? some wiki ? here ?)

@first sight, next version should be all about :
- Somewhat definitive choices: i tested a lot of things, now it's time to be conclusive :) (db organization, xml use, db automatic rebuilding, thumbnails generation...)
- GUI howto: i need a lot of dialogs for tools, records, etc. As everything in 'Games' is new and temporary: cant spend time into classic/skinned gui support now, so we need to find a more versatile solution (using 'plugin settings' dialog fe ?)
- External app execution: not utterly portable (@spiff, wiso...: used system.execwait()), and needed to break some stuff to make it work (as window listener was crashing my quad core)... Probably some efforts to put in there.
- Managing contributions, adding some visiblity to this project: external svn, etc.

Now it's time for me to read, answer and digest the plan for next version...

Cordially.

Nuka1195
2009-01-09, 15:41
:) will check it out.

WiSo
2009-01-09, 16:20
Yeah I noticed a problem in the window helper but it worked in the release so I didn't look further ;)
The window helper is only needed if you want to keep XBMC running in the background to get it back in the foreground. If you just wait in the main thread we don't need it. But let me know if you know where the bug is :)
Thanks and good work!
WiSo

Update: BTW you can call CWIN32Util::XBMCShellExecute directly (ifdef and use other functions for Linux/Mac) if you want. No need to call execbuiltin IMHO.

Gamester17
2009-01-09, 16:41
And thanks to you guys, i have a lot of things to read: that's pretty cool, and will definitely help me defining the feature list

@project gurus: where should be the best place to nest such, btw ? some wiki ? here ?I think the wiki would probably be best, a new article similar to this (which by the way might be a good read for you too):
http://xbmc.org/wiki/?title=New_Video_Scanner_Ideas

[EDIT]: I have created a new placeholder article for you here => http://xbmc.org/wiki/?title=Games_Library_Ideas

Happy coding! :grin:

FrostBox
2009-01-10, 19:45
@Awen
Hi, this is a very good idea this project.
I created a plugin "All Game" this fall, maybe you will find ideas.
You can see here with a small video. http://passion-xbmc.org/le-coin-des-utilisateurs/all-game-avec-support-fanart/
Sorry, the info for my plugin are in French.

NB: The plugin works with XBMC atlantis 8.10 and it's translated into English.

Regards
Frost

Rand Al Thor
2009-01-10, 20:42
Wow, that is quite nice looking. Does it actually launch games or is it mainly for game info? Sorry, my French is very poor ;) Either way it is very cool!

Edit: A little Babelfish action shows that it only launches games on xbox. I still really like the way this works.

Awen
2009-01-10, 22:51
@FrostBox: Looks like i'm french enough ;) Well, pretty exhaustive work indeed... Definitely, this is one obvious thing from my last readings: the scrapers community has to be counted on. Python integration is now on my feature list.

IMHO, game scrapers should be able to work with a batch perspective, as users may want to retrieve a complete rom set (x*1000) information at once (btw rom physical availability, isnt mandatory). And such scrapers should'nt only deal with WWW files, but probably other file types - like mame's history.dat - as well...
Are the Python enthusiastics comfortable with that ?

Speaking python integration, beyond info scraping, is there anything else scripting could be used to ? (without coding another freevo :))

Awen
2009-01-10, 23:04
BTW, for those concerned: i'm working with xbmc über people to pimp yesterday's patch up. Which should allow the opening of a specific dev branch concerning games library. And therefore team working.

rwparris2
2009-01-11, 00:05
Speaking python integration, beyond info scraping, is there anything else scripting could be used to ? (without coding another freevo :))

My first thought is downloading roms :)

Awen
2009-01-11, 22:38
Naughty boy :)

Gamester17
2009-01-12, 02:15
There are of course some (public domain) legal ROMS and some semi (gray-zone) legal ROMS available :;):
http://en.wikipedia.org/wiki/ROM_image#Legal_status
http://en.wikipedia.org/wiki/List_of_commercial_games_released_as_freeware
http://en.wikipedia.org/wiki/Category:Fanmade_computer_game_remakes_and_sequels
http://en.wikipedia.org/wiki/List_of_freeware_games
http://en.wikipedia.org/wiki/Abandonware

http://en.wikipedia.org/wiki/Public_domain#ExpirationAll copyrights and patents have always had a finite term, though the terms for copyrights and patents differ. When terms expire, the work or invention is released into public domain. In most countries, the term for patents is 20 years. A trademark registration may be renewed and remain in force indefinitely provided the trademark is used, but could otherwise become generic.

Awen
2009-01-13, 12:46
Hi folks,

Do you know Scrum (Scrum (http://en.wikipedia.org/wiki/Scrum_%28development%29) : the graph picture is quite interesting) ?

The idea is to build a very detailed feature list concerning Games DB: our 'product backlog'. And after that, performing monthly 'sprints' (with volunteers as 'pigs', gamester and you, smart forum users, as scrum 'chickens' :D ): every months, we decide of what we want (we're able) to develop, aka 'sprint backlog' for 30 days of coding, ended with a product release.

Right now i'm writing the almighty 'Games Library Product Backlog' using wiki (http://xbmc.org/wiki/?title=Games_Library_Ideas): i'd like it the most detailed, please consider throwing all of your ideas at it. Use this forum to synthesize and/or give references :)

Thank you for your time.

Awen

Gamester17
2009-01-13, 13:39
I would once again like to strongly suggest that non-developers still only post (list) their ideas to the threads in the existing feature suggestion forum instead:
http://xbmc.org/forum/tags.php?tag=games+library

That way the developers who will be doing the actual coding can read those forum threads to then 'cherry' pick the best ideas that they like and think that they would like to implement and add those themselves to the wiki article, (instead of the end-users themselves adding their ideas directly to the wiki).

Good idea? ???

natethomas
2009-01-15, 00:09
As a non-coder/random guy on the street who thinks this whole idea is amazing and wishes the best to everyone involved, I'd like to ask a few questions, if I may. Naturally, it's pretty early in development, so if there are no answers, feel free to ignore the questions.

First, is the goal of this code to start only emu games (such as MAME, old NES, etc.) in which a separate program runs a rom, or when development evolves in .2 and .3 will there be the eventual goal of executing modern computer games such as Half-Life 2, Crysis, etc.?

Second, how integrated into xbmc is this process ever likely to become? For example, XBMC has its dedicated video player. Clearly, that's an example of complete integration. A middle ground would be an integration in which XBMC shipped with a cadre of emulators and automatically picked the proper emulator for the specific game. A relatively unintegrated solution would involve each user downloading and installing his own emulators of choice and telling XBMC where those emulators were.

A further middle-ground option would be to have XBMC recommend system emulators or give the option of downloading from within the XBMC interface, possibly during the scraping phase.

I would assume an evolutionary process would entail a gradual tightening of integration. The initial code might only allow a user to pick his emulator or .exe file (in windows). I don't anticipate XBMC ever shipping with built-in emulators, so I imagine the final stage would involve the downloading of the appropriate emulator from within the interface during the scraping phase.

Thoughts?

Terin
2009-01-15, 01:09
natethomas,

At this point (and within my own plans), we're going to be supporting emulators. I don't think we'll have anything that will offer emulators for your ROMs for download. Rather, the structure I think we're heading for is:

1) You have your own files (roms, exe's, etc) that can be scraped by extension.
2) You associate that extension with a specific action (i.e. launch exe's from the native system/shell; .nes files launch with a Nintendo emulator -- but you'll have to specify the emulator)
3) You open up your game library and look at the various games, etc; you get a nice interface that shows some information about the game. You confirm to play/select this game, and it loads.

I've got an Xbox with XBMC running -- ideally, I want to be able to select "Applications" and it pulls up information on the ROMs I legally own (ROMs/EMUs can be tricky business because some are illegal, etc; that's why we can't build anything in about offering to download you an emulator). I can select the system, etc, and I can choose to play them without having to load the emulator.

Of course, there'll probably need to be some work on my side to get emulators that work on the Xbox with a kind of parameter-passing formula.

But essentially, I think it's going to be heavily dependent on scrapers, and have a lot of input on the user's end to get it configured from the get-go.

Hope that helps. I think that's more or less what Awen is going for as well -- I'm checking out the code fairly soon and going to try to compile.

timdog82001
2009-01-15, 02:06
Second, how integrated into xbmc is this process ever likely to become? For example, XBMC has its dedicated video player. Clearly, that's an example of complete integration. A middle ground would be an integration in which XBMC shipped with a cadre of emulators and automatically picked the proper emulator for the specific game. A relatively unintegrated solution would involve each user downloading and installing his own emulators of choice and telling XBMC where those emulators were.

Even simply offering to download emulators during scraping doesn't make much sense to me because either

1.) You already have an emulator and roms and don't need to download anything

OR

2.) You don't have an emulator yet, but also don't have any roms which defeats the point of a built-in solution since you're already going to have to go out and find and download stuff anyway before you can use it.

Not many people have folders full of roms sitting around with no emulators to run them.

At best I'd say XBMC could provide links or names of popular/compatible emulators available for different systems if and when you try to access the games section if nothing is already scanned in, which is something that could be easily skinned anyway without addition to XBMC itself.

natethomas
2009-01-15, 02:21
While you are almost certainly correct, Timdog, in that people who have roms also have emulators, you are forgetting the driving goal of XBMC, which is to make for a near painless application to the end user.

Consider video playback. While it's a given that most people who have mkv's also have a player to use them, XBMC doesn't simply make this assumption and provide a call function where the user sets the external video player. Instead, XBMC provides all the tools necessary. The end user need only bring the media itself.

I acknowledge that this level of integration would probably be too much for the ever changing world of game playing, but the goal behind the model is worth keeping in mind.

Terin answered the question well. Even if XBMC doesn't provide the emulator, for good integration, it'll at least be necessary to identify emulators that can take the parameters submitted by XBMC. At least, for the Xbox. I don't know enough about parameter passing in windows and linux to know if the same functions would be necessary in those systems.

Anyway, I think that's about the extent of my two cents on the topic, and I'm grateful for the info. With that said, don't let me keep you. Making this work is WAY more important than answering my silly questions.

asphinx
2009-01-15, 10:54
Oh hell yeah! I thought I was the only one wanting/thinking about how to improve the game section of xbmc.

Here are my demands! :D No just kidding, but seeing as I didn't know people were already working at improving it, I already starting some work myself. On the other end of things though.

I have looked through a lot of already out there gamedb's, but in my opinion most of them are of inferior quality, this in comparison to thetvdb (for tv shows) and for instance the various sources for movie scraping. So here's my suggestion.
A dedicated online db specifically tailored for the needs of the many. Think thetvdb, but for games. Much like thetvdb doesn't offer you the option of downloading a tv show, merely information about it, so would thegamedb (working name) offer a one source solution to everything you might need to know about the games you have. I'm thinking...

- Ratings (PEGI, ESRB, BBFC, OFLC, CERO, USK if it has a rating, it should be possible to scrape it, with transparent .png's to match I thought)
- Posterstyle coverart (already making/have made those anyway)
- Listings of developers, publishers, genre, release dates for different platforms and/or regions
- plot outline, of course. :)
- for emulated games one could have a flagging system for prefered emulators, which xbmc could use as a reference to locate emulators on HDD (don't know if it's possible)
- etc...

Also much like thetvdb, users could contribute to expand the assets available from thegamedb.

Is this a good idea? I've already started working out a prototype database.. this includes a standardized xml layout, which in turn can easily be translated into an .nfo file. Maybe making that an option for users as well.

The biggest problem I'm seeing so far is that games don't seem to have a unified id tagging system (none that I've found at least.) And I feel that this is something that should be adressed. Sure most of us probably go for naming the game as it should be anyway, and it that case searching based on title would work. But it would be possible to make it a hell of a lot smoother if there was a unified tagging system, maybe even with added parameters for different platforms. (ex. 1234-1 for halo combat evolved on xbox and 1234-2 for halo combat evolved on PC)

Is anyone already making a db?, of so I will gladly contribute anyway I can. In not, well I'll just continue with the work I've done so far.

Terin
2009-01-15, 18:20
asphinx,

If you want to create an online database like thetvdb, or whatever you were mentioning, you're more than welcome to do it. We have an internal database (similar to videos, etc) that's already in the works -- hooking up to a new external database for pulling data is the job of scrapers.

I've taken a look at Awen's code, and we've briefly exchanged messages on some structural things to update/change/enhance. I'm going to post my "Roadmap" right here for the sake of it, so some people will understand what we're doing and where we are.

Initial/Alpha Release (.1x):
-VERY basic functionality (and limited)
-Text only in English
-Initially "limited" to MAME

Functional/Beta Release (.2x):
-Database updated with a few more functions and renaming done internally (i.e. adding/modifying a "Platform" category)
-Multilingual support (well, using XBMC's translation tables)
-Displaying/providing more ways to access data.
-User-configured emulators and support (i.e. associate .NES files with NES emulator -- probably configured with scraper)

Standard/Stable Release (.3x):
-Heavy UI upgrade -- we'll need the support of the skinning community
-More customizability in terms of interface (probably allowing you to display by genre/platform/letter or any combination thereof; i.e. a filter)
-Addition of features as requested (animated images of the game in preview, maybe "related" games, etc)

I think at the third stage (.3x) is when we're going to have something that will mostly be "stable." .2x will be a good time for scrapers to have data coming in.

I need to post the fields that Awen's polling/storing in the database, so people can build scrapers. If you want to help, a scraper would be a fantastic way to contribute. Scrapers are fairly simple enough that you won't have to worry about the architectural complexity or necessities of being a programmer -- look at another scraper (for something like imdb), find how it works and where it does something, and then build something to plug into a database for games.

If you want to help, the easiest/best to scrape for at this point, would probably be MAME, NES, SNES, Genesis, Gameboy, Gameboy Color, Gameboy Advance, ATARI. These platforms are simple (and widespread enough) that they're pretty common. I may need to try to find the maintainers of other Xbox-platform emulators, and see if there's a way to get support for cmd line parameters -- and if not, maybe to write it myself. Would HOPEFULLY be a simple addition, if it was architected well.

Comments? Ideas? Suggestions?

tetsuo55
2009-01-15, 18:30
I have posted a reply in the non-dev thread

http://xbmc.org/forum/showpost.php?p=270146&postcount=26

Awen
2009-01-15, 22:40
some answers from my bed:
@gamester17: you're right about the 'feature suggestion thread'... Will spend some times in there from now.
@natethomas: standalone game application support is planned. I'm not sure how half life is going to be played from the sofa, but anyway, there are tons of (free) games suitable for this.
@ i'm seconding Terin: the gray area where emulators are prospering is a pain... But the scrapers idea is a good one: it could download packages and reference them automatically into db. It's probably the farther we could go without sorting a lot of legal things, or at least some strong discussion with project gurus ;)... I reckon that GameEx is auto-downloading, right ?

tetsuo55
2009-01-16, 00:39
some answers from my bed:
@gamester17: you're right about the 'feature suggestion thread'... Will spend some times in there from now.
@natethomas: standalone game application support is planned. I'm not sure how half life is going to be played from the sofa, but anyway, there are tons of (free) games suitable for this.
@ i'm seconding Terin: the gray area where emulators are prospering is a pain... But the scrapers idea is a good one: it could download packages and reference them automatically into db. It's probably the farther we could go without sorting a lot of legal things, or at least some strong discussion with project gurus ;)... I reckon that GameEx is auto-downloading, right ?

GameEx is not auto-download, everything has to be set-up manually

EMK0
2009-01-16, 04:51
for MAME i think the information should be brought in from the MAME its self not scraped from sites this way would be many times faster. there are history, nplayer, category, alltime files that could be scanned into the database. There is also a highscore.dat which saves high scores for some games this would be cool if it could be displayed somehow on a high score screen :)

For emulators i believe they are not illegal as long as they don't come with any copy write code like a bios/roms/isos.

rausch101
2009-01-21, 15:21
EDIT: Maybe integrating an emulator or two for each system would be a good idea since those pose no legal issues (except for the systems which require an external bios). The chosen emulators could be those which are most popular and/or most functional. Embedded emulators might make it easier for an emulated performance tag (e.g. Perfect, Playable, Playable with glitches etc.) for each game. As I'm not a coder, I have no idea whether or not this would making the coding easier/more difficult (although my guess is more difficult :/ )

natethomas
2009-01-21, 18:33
Rausch, I can assure you that I never once suggested downloading roms. I completely agree that doing so goes about 20 steps past the legal boundary. All I did was suggest downloading emulators, which appears to be something that you agree might not be a terrible idea.

With that said, I'm no programmer either. Whichever the route the programmers do take, I'm sure it'll be drastically cooler than what exists currently.

Gamester17
2009-01-21, 21:39
I actually very much like the idea of this Games Library using python script for automatically downloading both (legal) ROMS and (legal) third-party emulator software for the end-user. I do however think that it is outside of the scope of this initial project, so I suggest to first just focus on getting a basic Games Library functioning, ...then later after that we can maybe look using python plugins to download (legal) ROMS, and perhaps also use a python script to download the recommended emulator for each platform from the internet, decompressing it to the correct location (if zipped/rared) and configuring it for display settings set in XBMC to get the correct output resolution right away.

XBMC is all about user-friendliness, and I do not think that it is user-friendly to let the end-user manually download separate third-party software and manually configuring it to make it work correctly with XBMC.
http://xbmc.org/about/vision/

:;):

timdog82001
2009-01-22, 00:32
well if that whole emulator process could be automated for linux, i'm sure that would be a very welcome feature for linux noobs (such as myself). Figuring out the intricacies of getting all the needed stuff and compiling and so on for some of the emulators can be a bit of a pain for unexperienced users.

Just to clarify, earlier i wasn't really saying i was opposed to it. Just seemed unnecessary from my point of view, at this stage at least. I'm sure i'd enjoy such a feature if it were added.

EMK0
2009-01-22, 18:25
yes i agree at first you guys should make the game library work then work on making it as user friendly as possible. Just like My videos i never need to go out of xbmc to configure codecs or anything i can change all settings in XMBC and play all media with out any work :) as should the games section.Once u download the emulator you should not have to exit xbmc/minimize to configure it because most people do not have keyboard/mouse hooked up to there HTPC.

Most emulators have there settings in ini files i don't think it would be hard to make settings within xbmc.

maybe we should make a folder for emulators and xbmc can scan that folder for the emulator name and will know which one it is? only reason i say this it would make it really simple. Then it could change the settings so that it for example starts in full screen ? so i user only would have to download it and extract it to this folder or a python plugging could download it to this folder?

or make it like add source you find the emulator exe and then you get the option of wich system it is and then it shows all the supported emulators?

timdog82001
2009-01-22, 21:08
actually i do like the idea of being able to adjust emulator settings from within XBMC.

Awen
2009-01-26, 14:50
actually i do like the idea of being able to adjust emulator settings from within XBMC.
This is an interesting path to follow. Albeit utterly time consuming for a programmer (to handle zillion configuration options and stay up to date within the emulation ecosystem)... I'm now deeply diving into python plug-in paradigm to find some perfect framework for you, guys, to achieve this :nod:

rausch101
2009-02-05, 15:12
Much appreciation for all the work that you're doing, Awen. I know quite a few people who plan to fully adopt XBMC after this piece is added.

timdog82001
2009-02-06, 02:47
No doubt. I've been perfecting my collections in anticipation..

AaronG85
2009-02-08, 02:53
any new news on this?

Awen
2009-02-08, 11:29
Not so much, i'm afraid. very little time between various diseases and work. but i'm (more) ok now, and should be able to spend one hour per day on xbmc.

I'm now definitely convinced to let scripts people doing most of the work (not that i'm lazy :;):), plugin architecture and python integration are now on top of the list... (one or two scripts per emulation platform typically)...
I'm going to define all this during next week.

Nice WE 'vrybody

EMK0
2009-02-08, 13:57
just wounder are these scripts ment to handle emulator settings? or is this for something els?

Awen
2009-02-09, 11:04
Yes absolutely. If 'Scraping' is the natural thing for scripts, 'Emulators settings' could be another in this case: i am personally not aware of every pieces of emulation out there... So, looks like a good way to support all them, plus handling every suggestions you all made in this thread, up to emu auto downloading eventually.

I'm still struggling with some plugin shape questioning: one script per 'platform' (say 'Arcade') handling both Mame app support and arcade roms scraping, or numerous small scripts adressing single needs...

cheers,

EMK0
2009-02-09, 19:04
yea that's a good idea, so are you going to also make a MAME scrapper that gets the info from MAME its self? or will the program do this since its very different then getting the game name and searching and the Mame roms can be stored in different ways like merged sets, non merged sets, split sets. i believe the command to get info of what roms you have is -verifyroms you can output this to a file. here is a page with all the commands for mame http://mamedev.org/source/docs/config.txt.html with this you can tell it to only show perfect emulated roms, ignore games with steering wheels,light guns and other games that you cant play.

by the way i like your idea to use scripts they could be easily modified and fixed.

found this site its a db for games http://gamesdbase.com/game.aspx?id=535134 check it out you can download manuels for the games and the pictures and things but the bad part is the pictures are watermarked :( the manuals are fine tho

Awen
2009-02-09, 22:03
Currently, i feel like having 3 entry points for scripts:
1) application/emulators support,
1bis) misce game tools,
2) standard game info scraping.

(2) is the standard way for you script people to work, i only have to, well, comply. (1) and (1bis) will require some work from myself or Terin (or others) to define a dedicated plugin architecture...
(1bis) exists because some applications are rich of possibilities concerning info retrieval fe: you're right to use Mame as an example, as lot of information is available from inner infos when triggering 'mame -listxml'...
So, i suppose that a 'good' mame script would handle inner parameter settings, but some other dedicated info retrieval as well, and maybe various tools like joystick configuration file generator.

(1) and (1bis) may be part of the same script/dialog, or separated menu entries... Eveything is possible at this point.

I'd be happy to read your thoughts about how you'd like scripts to be shaped and called from the core.

rwparris2
2009-02-10, 00:57
Currently, i feel like having 3 entry points for scripts:
1) application/emulators support,
1bis) misce game tools,
2) standard game info scraping.


would you mind explaining how 1) differs from the already existing 'launcher' plugin please?

for 2) are you going to make it so scrapers write directly to a database like how xbmc handles videos and music now, or are you going to want python to handle that part? If python, make sure you set some sort of standard .xml or database structure for us to stick the information in. (btw, are there any good sources to scrape this info from ?)

Awen
2009-02-10, 11:55
1) scripting is only targeted @ some specific apps frontend. All the db backend and execution code being still in the C++ core: Mame, as an example, has tons of settings and inner infos i'd prefer not to handle by myself. I'd like to give you some scripting opportunities to get all the juice (=params+infos) from such emulation apps. Such scripts would popup a specific dialog concerning a specific app, mainly to generate the perfect cmd line, plus eventually some specific related utilities like parsing the 'mame -listxml' output, or auto downloading the latest version of mame32.

Concerning 2) i already have db tables ready to be filled with infos: many possible sources, and not only web pages but flat files as well (arcade-history.com (http://www.arcade-history.com/index.php?page=database) and history.dat (http://www.arcade-history.com/forum/viewtopic.php?pid=2)).

I only mentioned 'mame' as an example, it could of course be replaced with 'project64', or 'flash games' or 'local exe/xbe games'...

I know very well that this 'game project' is flirting with some of the 'Launcher' functionnalities, but i'm sure both projects will have diverging paths pretty quickly. Otherwise it would be a failure case.

Does this answer to your questions ?

djh_
2009-02-10, 21:12
Ready when you are...

http://www.aeonproject.com/dropbin/aeon_gameinfo_1.jpg

http://www.aeonproject.com/dropbin/aeon_gameinfo_2.jpg

Some 1080p ones:

http://www.aeonproject.com/dropbin/aeon_gameinfo_3_1080.jpg

http://www.aeonproject.com/dropbin/aeon_gameinfo_4_1080.jpg

rausch101
2009-02-10, 22:19
wow djh_ that looks gorgeous

Nuka1195
2009-02-10, 22:31
how ia this different than if i have my own db using pysqlite? faster?

there are a couple things that would benefit this i believe.

most front ends allow custom game lists. this can be done by sql, but with my limited testing a filter would be faster. so if you could have filterby on any listitem property and the mechanism to cycle thru or select direct with a filterby(property,value) builtin. so if i had a listitem.property(gamelist,1), filter for all gamelist properties that equal 1 should be faster than sql and refilling the list. i think.

currently you can do almost everything other frontends can do just by skinning. but i haven't found a way to quickly switch gamelists. eg mala is real fast switching game lists.

i do agree plugins can handle everything including scraping though.

crash123
2009-02-10, 23:43
Hi,

This look great and I can't wait, Awen have you seen the game library integration (http://forums.xbox-scene.com/index.php?showtopic=663137) the developer(madmab) is building into the xport emulators?

Some of the other forum members and programmers have even made large synopsis files for every rom of whole systems. At the moment they have colecovision, atari 7800, virtual boy, lynx, and a nes synopsis which is approximately 70% (at last check) complete.

Maybe there is a way we can integrate their game library solution into yours?

junk
2009-03-12, 00:33
What's the status of this project? Is there anything in SVN I could look at?

I think this would be a VERY WELCOME addition to XBMC =)

fekker
2009-03-12, 01:11
I am willing to add support for images and nfo's for games to MIP in the future as well. I'm wrapping up music support, HD Flagging with cptBry, and media images ... games and home movies are the next logical choices. The media cover site I use has a bunch of game covers as well.

frostwork
2009-03-28, 22:59
in case awen is still here and interested in this, he maybe
could work together with leo2:
http://xbmc.org/forum/showthread.php?t=47646

lestat1977uk
2009-04-02, 20:07
What's the status of this?, it sound very interesting, have had no luck luck with Emulators and xbmc.

Roncore
2009-04-07, 19:57
Status please!!

ethan_9219
2009-04-08, 03:28
What's happening with this project? It hasn't folded or anything has it?

rausch101
2009-04-20, 01:24
Anyone else have any interest in taking the lead on this?

leo2
2009-04-24, 17:21
I've been working lately on an extension to Programs module in XBMC.
The extensions contains:
1. an ability to setup a scraper for each programs directory.
2. a context menu option to get info for selected file or directory and save it into programs database.
3. a scraper for game info from allgame.com website
4. List of files and folders has been changed to get title & thumb from database (if available)
5. Executables are displayed in the directory browse and can be launched (without "Launcher" plugin)

A little Preview:
http://img299.imageshack.us/img299/9127/screenshot001n.png
http://img299.imageshack.us/img299/6466/screenshot3q.png
http://img19.imageshack.us/img19/9844/screenshot002r.png

I'll sent a patch soon, but there are still some things to complete.

TODO Later:
1. Add information fields like "Genre", "Publisher", "Year", has been added to Sort menu.
2. Add "Program Info" window (like "Movie Info")
3. Add background recursive scan for folders
4. Add Fanart support (does anyone knows a good website of game fanarts?)

rausch101
2009-04-24, 17:26
wow leo...fantastic. Much appreciated.

spiff
2009-04-24, 17:35
htbackdrops.com has game fanart.

and i hope you plan to use the Database directory classes like vids and music? and keep smart playlists in mind :)

greatant1337
2009-04-24, 18:14
I've been working lately on an extension to Programs module in XBMC.
Sounds cool. Is this just a beefier version of Launcher? I Loooooove Launcher.

I have a suggestion regarding the icon handling of Launcher, assuming this is essentially Launcher. I believe when XBMC sees an icon it resizes it and saves it as a .tbn in the the thumbnails directory. Whereas Launcher just whacks the downloaded .jpg in there. It ends up taking noticeably longer to load each icon when they're all .jpg. Would be great to have it work the same.

Keep up the good work.

spiff
2009-04-24, 18:16
nothing to do with launcher, this is native code.

which, among other things, means thumbs will be handled as other sections (i assume, if not leo2 they should ;))

Rand Al Thor
2009-04-24, 18:21
@leo2

That is some amazing work! This is one project I have been very interested in seeing come to fruition.

Cheers,
Rand

leo2
2009-04-24, 18:52
spiff right,
nothing to do with launcher, it's native code.
the patch has been submitted, see http://trac.xbmc.org/ticket/6434 for details.
the patch has many files that were added or changed so I guess it may take a while until it will be reviewed completely. be patient...

Lugaidster
2009-04-28, 05:54
I have a question. Is something like Steam Overlay possible? That would be a great way to keep in touch with XBMC while playing games without "breaking the magic" and leaving the game.

Not that I'm suggesting to dedicate resources right now for this. I think the right thing to do would be to get a Game/Emulator launcher for one and for all. But it would still be nice in a not so far future.

I might even try to do something like that if I knew how the overlay works.

leo2
2009-04-28, 16:21
I have a question. Is something like Steam Overlay possible? That would be a great way to keep in touch with XBMC while playing games without "breaking the magic" and leaving the game.

Not that I'm suggesting to dedicate resources right now for this. I think the right thing to do would be to get a Game/Emulator launcher for one and for all. But it would still be nice in a not so far future.

I might even try to do something like that if I knew how the overlay works.
Can you explain exactly what is the "Steam Overlay" that you suggesting?

EMK0
2009-04-28, 18:31
steam overlay is basically a menu the goes on top of the steam games. so you could for example press a button and it shows a menu on top of the game with options like your friends list options and so on.

this is an example

http://img75.imageshack.us/img75/6258/cssyd7.jpg

while in game you press a binded button and that screen shows up ontop of the game so you don't need to minimize to access those things like friends/servers and so on.

spiff
2009-04-28, 18:44
quite likely support code in the games....

EMK0
2009-04-29, 04:54
yea that's probably true for steam but for Xfire defently not they manually make the overlay work for there games. one other example that the games don't support a overlay in there code is http://www.gameoverlay.com/.

Lugaidster
2009-04-30, 06:51
Steam overlay works on steam games and on non-steam games. I read a bit on it and they use (probably) dll-injection to inject code in directx calls to EndScene then they render the overlay and then they call DirectX's EndScene. I read somewhere that this works for DX9 games I don't know how they do it for DX10 games or OpenGL games. I haven't tried any ID game on steam as of yet so I don't know.

Steam overlay even works for Gears of Wars, and that is relevant because Gears of Wars is quite nasty when it comes to modded files or whatever.

Edit:

As a proof consider Crysis (which is not made by Steam):

http://img218.imageshack.us/img218/1567/screene.th.png (http://img218.imageshack.us/my.php?image=screene.png)

Edit2:

Steam overlay is confirmed to work with OpenGL (tested with quake III demo), DX9 and DX10 (tested with crysis in dx10 mode, I set it through the command line option).

This should be simpler to implement in linux since AFAIK there's only OpenGL in there. Windows is a whole other beast since you have DX7-10 (with each version having it's own perks) and OpenGL.

Last Edit (I promise):

I found a link (http://forums.steampowered.com/forums/showthread.php?p=8541825) from steam saying that their overlay works with every version of dx (7 to 10) and opengl also. Not working with directdraw though.

EMK0
2009-04-30, 17:45
i had an idea about this would it be possible to have an overlay that can load python scripts? this way it would make it much easier to mod the overlay for specific options for different emulators/games?

Lugaidster
2009-05-01, 08:55
the issue here isn't to control xbmc through the overlay but to create a way to draw that overlay no matter what api the game uses and what os you are in.

leo2
2009-05-01, 19:04
I'm currently working on the GameLibrary branch, and I have some unsolved issues that I would like to share with you:

1. What type of Directory would the user add as a source? will it be the Games folder (with folders)? will it be the "Start Menu" folder (with shortcuts)? both of them?

2. What happens when the user clicks on a scanned game directory ? will the files in the folders will be displayed? will the game executable will run? what if there are more than one executable in the directory, how would XBMC should know which one is the game executable?

3. In the "Library Mode" you can browse by Genre, Platform, etc.. but how should the other software be accessed (for e.g firefox), it's not a game, and it has no info from games database, so it won't be in the library at all...

4. will the user be able to add a single executable into the database or only it's folder?

Rand Al Thor
2009-05-01, 19:47
I'm currently working on the GameLibrary branch, and I have some unsolved issues that I would like to share with you:

1. What type of Directory would the user add as a source? will it be the Games folder (with folders)? will it be the "Start Menu" folder (with shortcuts)? both of them?

2. What happens when the user clicks on a scanned game directory ? will the files in the folders will be displayed? will the game executable will run? what if there are more than one executable in the directory, how would XBMC should know which one is the game executable?

3. In the "Library Mode" you can browse by Genre, Platform, etc.. but how should the other software be accessed (for e.g firefox), it's not a game, and it has no info from games database, so it won't be in the library at all...

4. will the user be able to add a single executable into the database or only it's folder?

Hey leo! First off, I just wanted to say that I really appreciate what you are doing. This is an amazing project! I can't wait to see this in action. Now, let me take a stab at some of these and let you know how I personally would like to see them function.


1. What type of Directory would the user add as a source? will it be the Games folder (with folders)? will it be the "Start Menu" folder (with shortcuts)? both of them?


I think there should be an option when adding a folder to this section of the library. "Add Single Folder" or "Add Root Folder." If you have a bunch of games in their own folders under c:/Games/ then you add the root folder and it scans recursively. If you just want to add firefox you add single folder C:/Program Files/Firefox/

This is pretty similar to what they use in the movies library. They have an option for "scan recursively" although I think that "single folder" and "root folder" are better explanations IMHO.


2. What happens when the user clicks on a scanned game directory ? will the files in the folders will be displayed? will the game executable will run? what if there are more than one executable in the directory, how would XBMC should know which one is the game executable?

I think it should run the executable. Opening up the context menu should give you an option to "set game options" Here you should be able to add parameters for launch ie "-f" etc. Either that or have a box for launch parameters when you first setup the game folder.

I don't see any reason why there should be more than one .exe in a single folder.

3. In the "Library Mode" you can browse by Genre, Platform, etc.. but how should the other software be accessed (for e.g firefox), it's not a game, and it has no info from games database, so it won't be in the library at all...

I think that instead of a "games library" the entire project should be named something like "programs library" and games will be just a subsection of the project.

How about having another option when adding a folder to specify what you are adding? You would choose "Program" or "Game." Then when you navigate to the "Programs Library" the hierarchy would be as such:

Program Libraray/
Programs/
firefox.exe
handbrake.exe
Games/
Genres/
Platforms/
Title/

So there would be two top level choices from the programs library. Games or programs. I don't really see a need to separate programs into genres so they can just be listed. Then the skinner can have a button on the home screen called "games" that links to the games node or one called "programs" that links to the programs node. To deal with how programs show up in the library, you could have it default that any Program gets added to the library as "Programname" and uses the default icon. If the user really wants to get fancy they could use an .nfo if you really wanted to give information about what firefox does and have a folder.jpg in the firefox folder to change the icon. Just like the movies library.

4. will the user be able to add a single executable into the database or only it's folder?

I think for simplicity sake we should limit it to a folder. It just seems like you might have to deal with way too many variables if someone has a bunch of .exe's in a single folder and they have some added as single .exe's some as the root folder etc etc.




On a final note, using an overlay as suggested before, would add a lot to the implementation of programs and games into XBMC. It would keep the transition from fullscreen XBMC to Game and back as seamless as possible so you don't "break the magic." That way you could also pause a game and fade in XBMC to queue some music, then seamlessly fade back to your game. Then while playing your game, bring up the player controls to skip a song. Even if we decide that only a very small bit of xbmc can actually be overlayed on the games/programs, like playercontrols, it will still be an amazing addition.

Cheers,
Rand

marlboroman1
2009-05-02, 00:22
I've checked out your branch and it's very impressive I'm really glad you have stepped up and really got to grips with this. As for me at least the is the last major component that is still missing form the ports.

I think that it would be more intuitive if the executives or shortcuts could be added as a source directly. Currently as it stands .exe .link are not recognised as valid extensions in add source UI adding these extensions would greatly increase usability. I found that adding the desk top folder as source work quite well as would adding any folder filled .link extensions so both methods have there advantages.

The disadvantages adding folders from the start menu and program files leads to you having unnecessary sub folders files visible in GUI. The other issue with adding directory's as sources to the program window is that when you enter the programs window I want find programs ready to launch not a folder called programs.

I personal don't use library mode in xbmc but if wanted normal apps in the library could use the "set content" determine category ie audio, video, security, creative, office, net and then scan them in using the name only. if you wanted to try retrieve info then perhaps apps "Read me" could used or an .info (user created). As a final thought could info be pulled form Softpedia they must index the majority of apps in existence.

GeoLoLJ
2009-05-02, 15:42
Leo, this games/programs branch sounds very interesting and promising. Very good job and ideas you have there. Thank you for contributing your time for such a great project.
Rand's points are good.

1. What type of Directory would the user add as a source? will it be the Games folder (with folders)? will it be the "Start Menu" folder (with shortcuts)? both of them?

I am not a coder/programer myself, so I don't know anything that could help you. So, I am asking if there is a problem with the folders finding the correct executable, wouldn't be possible to have all the executables we want to add in the library in a shortcuts folder?
"Add Single Folder" and "Add Root Folder" also sounds handy.

I don't have any problem "writing" the info for the games by hand or copy-paste from some sources if the online source is not possible to have.
The games/programs collection that we have I believe is not that huge comparing to music/movie/series collection, so that wouldn't be a problem I think.

2. What happens when the user clicks on a scanned game directory ? will the files in the folders will be displayed? will the game executable will run? what if there are more than one executable in the directory, how would XBMC should know which one is the game executable?

This would be nice if it would work like the movies do. Like having a Play/Run button which would launch the desired application. Or clicking on an executable would pop up a window saying something like "You have chosen to run %application. Proceed? Yes-No"
This way you could avoid the missclicks.

3. In the "Library Mode" you can browse by Genre, Platform, etc.. but how should the other software be accessed (for e.g firefox), it's not a game, and it has no info from games database, so it won't be in the library at all...

For the programs, as Rand said, users can always make an nfo with the information inside if that is possible.
As for the overlay, sounds very nice, but won't something like that "consume" more resources? Or am I wrong? :rofl:

I really hope your project to be released :>
Do not hesitate to contact me if you need any kind of help (well, apart from coding that is :laugh: )

sho
2009-05-02, 16:02
If the plan is to go beyond games/emulators (which would be the way to go IMHO), then setting contents (http://www.xbmc.org/wiki/?title=Set_Content_(Video_Library)) is probably unavoidable.
Categories could be (but not limited to):
-Programs
would read metadata from the binaries, name, icon etc. OR nfo file plus tbns, local Fanart etc.
(similar to the Music Video nfo scraper)
-Games, would allow scraper selection. I assume native games and emulators could benefit from different scrapers.

leo2
2009-05-02, 18:54
Thanks for your replies, here's the suggested idea based on your tips:
1. There should be a support on nfo files, so user can add manually information to a file.
2. The scraper will have to supply a type attribute "Game" or "Software"
3. There will be a scraper for games (from allgames) and a scraper for software (from softpedia)
4. The main library items will be "Games" and "Software"
5. The next level will be the Genre of the game or software.
6. The third level will be the games/programs themselves.
7. In the Library mode, the game/program will launch when clicking on it.
8. In the Directory mode, the game/program will launch when clicking on the executable. (clicking on folder will show the executables in it)
9. Recursive scan will search for executables but will use the folder names (optional) to get the info of them.
10. In that case, if more than one executable found in the same directory, the user will be prompted to choose one of them, and it will be saved for later use. (there should be an option to replace default executable after being set)
11. There will be an option to recursivly scan the folder and get info for each one of the executables even if it's in the same folder.
12. There will be add a single file to the directory and get info for it.
13. There should be an option to limit the platform of a games directory to a single platform so the automatic information lookup will be more accurated.

Rand Al Thor
2009-05-02, 19:30
That sounds pretty awesome Leo2! The only suggestions I would make is to use "Programs" rather than "Software." Also, for the submenu of the "Programs" section you have listed that it will go to genres first, then the actual executables. Unlike games, programs don't have established genres. I suggest either scraping the info straight from the .nfo (that is how I make "custom" genres with my movies, anytime a new genre is found it is automatically added to the library, even if that genre does not appear on IMDB or any of the other scraper sites), or if you are adding a program manually (without an .nfo) have a set genre dialog where you can manually enter a genre that will be added to the library.


Cheers,
Rand

sho
2009-05-02, 19:54
Great, I would suggest that you should be able to completely flatten the library nodes, so you only see the "executable" items.
I believe most users will only install a handful of apps, so all the browsing required would just be a hassle.

Flatten using the video logic would just flatten anything below Software/Programs and Games.

Maybe both should be allowed (toggled in settings?)

marlboroman1
2009-05-03, 02:39
The library implementation should be the same structure as the video library for consistence

So the top level could be
Games
Apps
Recently add Games
Recently add Apps
Game saves
Plugins

For next level down your outline would be fine but like the video library having “All Titles” as one of the category options. Would good for people who want all their games or programs in one place it may help skinners well as I’m sure a lot of skins will want have games and a programs entry in the home menu.

I think that Rand Al Thor point about genres or categories for apps is true an existent but don’t see how its different from library mode in general the default categories try compliant with upnp stranded. In the case apps a stranded categories would have to be created this may be hard without a lot user input so perhaps we should use some else’s. These are the default categories form ubuntu apps menu it looks good to me I think the more generalised the better.

Accessories
Graphics
Internet
Office
Sound and video

burnout
2009-05-03, 11:31
Are you going to limit the extensions to .exe/.lnk or will there be any way for us users to modify which extensions we can add to the library ?


Cause when i used the "Launcher Plugin" i modified it to be able to add ".z64" ".n64" and so on, Because "Project 64" didnt work with the plugin. And i had the ".z64" and ".n64" configured to auto launch with "Project 64".

Then as a temporary solution i added all games as favorites so i could easily reach them without the need of going to Programs>Plugins>Launcher>"Insert N64 game here"

So i could just go Favorites>"Insert N64 game here"

Just wanted to add that as a temporary solution. ^^

So i'll say that we need the addable? extensions types to be configureable, so you can add more that just .exe/.lnk .

Keep up the good work Leo2 ! :D

natethomas
2009-05-03, 12:46
First off, Leo, you are awesome and there's a decent chance I'm not worthy to sit at your feet.

Second, I should note that I've not had an opportunity to play with the branch (nor have any idea how to do so), so if the following has already been dealt with, feel free to ignore.

Burnout brings up an interesting point. At present, two types of computer based games exist. Games specifically written for the computer, such as Half-Life 2 or Unreal Tournament, and games of the emulator variety.

All computer based games have individual folders and exe files.

All emulators games share a single exe per platform and have individual romsets (except dos games and scummvm games, which are, once again, folder based, but in a very specific manner).

I'm not sure what exactly the short term or initial goals are, but it seems a great deal more natural to initially attempt to create a program scraper that only scrapes game designed for the computer, wherein each one has its own folder and exe. Such a solution would work well in conjunction with a program scrape of non-game programs, such as Firefox.

The next step becomes a bit less certain. Scraping romset games would not be difficult, I imagine. It would be a simple question of looking up file names, similar to how videos are currently scraped. Identifying the appropriate platform would also be relatively simple, as roms typical indicate the platform either within the name of the file or with the extension.

Thus, creating a library of roms should not be completely impossible, particularly if a library of traditional games exists.

The tricky part lies in figuring out what happens when a person clicks on a rom game. Should it act like a double click, where XBMC simply allows Windows to figure out what to do with the rom and how to launch it? Or should XBMC act as a connector, "dropping" the rom onto the appropriate emulator's exe file?

If the first, I would suppose the programming would be relatively simple, as XBMC would not have much to do beyond what it does with exe files. If the second, the programming would become more involved. XBMC would either have to ask the user where the emulator program was for the specific platform, or, if we wanted to get really crazy, it could ask the user whether it should download an appropriate emulator program.

All of this may be quite a bit beyond the current goals, but it's at least worth thinking about.

Gamester17
2009-05-03, 14:35
If the plan is to go beyond games/emulators (which would be the way to go IMHO), then setting contents (http://www.xbmc.org/wiki/?title=Set_Content_(Video_Library)) is probably unavoidable.
Categories could be (but not limited to):
-Programs
would read metadata from the binaries, name, icon etc. OR nfo file plus tbns, local Fanart etc.
(similar to the Music Video nfo scraper)
-Games, would allow scraper selection. I assume native games and emulators could benefit from different scrapers.Perhaps also separate 'native' games on the real platform XBMC run on from the emulator games/ROMS? ???

Categories under the Programs section could then be (but not limited to):
- Applications (Utility Applications like Firefox, Thunderbird, Microsoft Word, etc.)
- Games ('native' games, meaning PC games if XBMC for example runs on Windows)
- Arcade (for Emulators/ROMS) with under here defaults to categories by the hardware game-console platform it is emulating?

I also like the idea of it reading metadata 'native' games and programs to get get name, icon, etc. if possible?

[EDIT]: PS! @Leo, have you also read this wiki article? http://xbmc.org/wiki/?title=Games_Library_Ideas
...will you be taking over from Awen to continue along the lines of this concept (or in its theory?)? ???

clock2113
2009-05-09, 19:54
I'm just a user, not a developer, but I just want to say that these ideas are awesome.... what I've wanted from the very beginning!

lestat1977uk
2009-05-10, 15:22
Leo this looks amazing, truely what is missing from XBMC, when are we likley to see it?

leo2
2009-05-11, 20:30
Perhaps also separate 'native' games on the real platform XBMC run on from the emulator games/ROMS? ???

Categories under the Programs section could then be (but not limited to):
- Applications (Utility Applications like Firefox, Thunderbird, Microsoft Word, etc.)
- Games ('native' games, meaning PC games if XBMC for example runs on Windows)
- Arcade (for Emulators/ROMS) with under here defaults to categories by the hardware game-console platform it is emulating?

I also like the idea of it reading metadata 'native' games and programs to get get name, icon, etc. if possible?

[EDIT]: PS! @Leo, have you also read this wiki article? http://xbmc.org/wiki/?title=Games_Library_Ideas
...will you be taking over from Awen to continue along the lines of this concept (or in its theory?)? ???
1.
I think the category should be Applications & Games only.
The emulators should be transparent to the user and he wouldn't have to know whether the game is native or it runs using an emulator.

2.
I Think that icon's extraction from the exe files is useless, because a game with title and small icon won't look good in the library skins that includes fanart, big thumbnail, description and more.

I've read the ideas in the link that you provied, there some nice ideas and some of them already implemented in the gamelibrary branch. but I think we need to complete the base support before expanding to all of the ideas there.

TheQuestor
2009-05-11, 20:47
I've been trying for days to get the gamelibrary branch to compile. and so far it has failed miserably. I've tried it with the build.bat, VS2003 and VS2008 Express and all 3 pretty much fail with the same issue.

2>Application.obj : error LNK2019: unresolved external symbol "public: __thiscall CGUIWindowProgramNav::CGUIWindowProgramNav(void)" (??0CGUIWindowProgramNav@@QAE@XZ) referenced in function "public: virtual long __thiscall CApplication::Initialize(void)" (?Initialize@CApplication@@UAEJXZ)

Somewhere I am missing an external or something, and since the readme doesn't say anything about this branch I am at a loss. I've set up the build enviroment the same as I do for my Win32 branch, and Xbox branch of my nightly builds and still nothing.

Any help would be greatly appreciated.

Craig

spiff
2009-05-11, 20:51
urr.. fix the vs project files

TheQuestor
2009-05-11, 23:13
urr.. fix the vs project files

you must practice vagueness. I know it is an art hard mastered, but master it you have. I congratulate you sir :P

With that said, maybe you can help me figure out what to fix and where?

TIA.

Craig

spiff
2009-05-11, 23:23
add GUIWindowProgramNav.cpp/h to the project

TheQuestor
2009-05-12, 00:52
add GUIWindowProgramNav.cpp/h to the project

worked like a charm, thank you!!!!!

Craig

plight
2009-05-28, 23:29
Any news on the game library front?

panzaeron
2009-06-05, 00:34
Same question: some news about this project? :rolleyes:

leo2
2009-06-05, 12:06
I'm sorry, I was (and still) very busy lately and have a little knowladge of building the requiered gui for the programs library. (still need to add "Library Mode" window for Programs and "Program Info" dialog)
I hope I'll be able to complete it before the next version (9.10).
I'll be grateful for any help with coding this.

frain
2009-06-05, 19:16
I'm sorry, I was (and still) very busy lately and have a little knowladge of building the requiered gui for the programs library. (still need to add "Library Mode" window for Programs and "Program Info" dialog)
I hope I'll be able to complete it before the next version (9.10).
I'll be grateful for any help with coding this.

I am extremely interested in having this game library in XBMC, so I would in principle be interested in doing some coding (although I cannot guarantee that I can free up enough time to do anything substantial).

In any case, could you point me to where I can find the current code? If there are any specific things you want me to code, you can of course state those also :)

stagecrew
2009-06-05, 19:51
Someone, I think Kricker, has started compiling SVN builds with the game library patches.. worked perfectly on Win7 x64. Now I'm very excited about the library itself!

leo2
2009-06-06, 09:50
I am extremely interested in having this game library in XBMC, so I would in principle be interested in doing some coding (although I cannot guarantee that I can free up enough time to do anything substantial).

In any case, could you point me to where I can find the current code? If there are any specific things you want me to code, you can of course state those also :)

sure,
https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/gamelibrary

first get it compiled and running, then pm me and we can continue work together on this.

greatant1337
2009-06-27, 07:19
I didn't want to resort to posting but I suppose it needed to be done.

I've got r19897 of the gamelibrary branch from SVN. I've got VC++ Express 2008 and DirectX SDK Nov08.
I've added the libraries and includes like the wiki says.

XBMC - 2 error(s), 161 warning(s)
http://pastebin.com/m3a075cbe

Most of the warnings seem to be python related but I checked out \system\python\ and I couldn't see anything obvious missing.
This is my first time in VC++ so I've really no idea what's happening.

althekiller
2009-06-27, 07:30
Pretty sure that branch is stale. Branches are for development purposes only (linuxport being the exception) and should never be *expected* to be in a usable state by anyone but the developer.

leo2
2009-06-27, 10:12
I Checked in my project, just update and reopen the project and that should work.

Gamester17
2009-06-27, 18:02
@greatant1337, are you a developer looking to assist with the games library development?
http://xbmc.org/forum/showthread.php?t=40715
http://xbmc.org/forum/showthread.php?t=28953

???

greatant1337
2009-06-28, 14:56
I can build it now Leo2, I just don't know how to run it. I can see there's now XBMC, guilib, libPlatinum and UnrarXLib folders under \project\VS2008Express\ and they correspond to the 4 things being built within VC++. I see the Win32BuildSetup folder too but I didn't think building a setup and then installing would be necessary? Perhaps this is what puts all the parts together into a final directory structure?

Should I be building release(sdl) or debug(sdl)?

I feel super lame for not being able to manage this and am still messing around with it.

EDIT: Worked it out. I'm up and running and ready to help Leo2.

Gamester17, I've done some skinning for some scripts and skin-mods and saw that Leo2 needed help with skinning for this. Not a coder at all. I really wanna see this Programs Library done before the xbox gets dropped. (knock on wood)

mngrl1
2009-07-03, 13:15
hay guys can you tease us with some more screen shots we're dying to see this project come to light.

leo2
2009-07-03, 17:04
I'm sorry for the slow progress, I've been busy lately, but greatant1337 is
working on the skinning, so i guess soon you'll be able to see some screenshots from the games library.

greatant1337
2009-07-04, 02:42
I'm sorry for the slow progress, I've been busy lately, but greatant1337 is
working on the skinning, so i guess soon you'll be able to see some screenshots from the games library.

Your PMs are full.
I'd need permission to actually apply anything to svn surely....? I've just posted a ticket with a patch (http://xbmc.org/trac/ticket/6827).

GeoLoLJ
2009-07-08, 20:22
I'm sorry for the slow progress, I've been busy lately, but greatant1337 is
working on the skinning, so i guess soon you'll be able to see some screenshots from the games library.

So, are there any screenshots out there? I think i have missed them although I check everyday this thread :grin::eek:

greatant1337
2009-07-09, 01:25
So, are there any screenshots out there? I think i have missed them although I check everyday this thread :grin::eek:

How could you have possibly missed anything? There's only one other post between yours and Leo2's??

TheQuestor
2009-07-09, 01:36
I think his was a retorical question

leo2
2009-07-09, 17:35
I'm sorry, there won't be any news or new screenshots on this topic soon.
I need help implementing the GUI part of Library Mode, I have no knowledge how to make the "Library Mode" window and navigation work.
greatant1337 helped me with the skin xml files but that's not enough.

greatant1337
2009-07-10, 02:13
To clarify, leo2 needs someone that can finish coding GUIWindowProgramNav.cpp.

tiben20
2009-07-15, 02:48
I could help with coding this but i dont really see the way we could find out which .exe in a directory would be the game or what ever the way a source directory would be managed.Example if you want to launch counter-strike source on windows it cant be done directly from the .exe you have too launch steam and launch the app right after. If you already planned that just tell me ill try to build database to make it work

redtapemedia
2009-07-15, 07:58
I could help with coding this but i dont really see the way we could find out which .exe in a directory would be the game or what ever the way a source directory would be managed.Example if you want to launch counter-strike source on windows it cant be done directly from the .exe you have too launch steam and launch the app right after. If you already planned that just tell me ill try to build database to make it work

Wouldn't the easiest way be to create shortcuts, or xml files? So you could place these in a source, for example, "PC Games" and have the xml files in that directory. Using windows shortcuts might not be a good idea because it does not allow for cross platform usage.

For roms and the like you would need to identify the emulator to be used. My proposal would be to have an "emulator.xml" file with appropriate command line arguements in with your rom files.

example:

<emulator>Super Nintendo</emulator>
<path>c:\zsnes\zsnes.exe</path>
<arguements>-fullscreen</arguements>
<extensions>.smc, .snes</extensions>

Can't remember the exact commands and extensions, but I think you get the idea.

TheQuestor
2009-07-15, 08:07
I could help with coding this but i dont really see the way we could find out which .exe in a directory would be the game or what ever the way a source directory would be managed.Example if you want to launch counter-strike source on windows it cant be done directly from the .exe you have too launch steam and launch the app right after. If you already planned that just tell me ill try to build database to make it work

Actually you can launch Steam apps directly.

Example of Team Fortress 2

"C:\Program Files (x86)\Steam\Steam.exe" -applaunch 440

But you have to know what each applaunch code is :(

greatant1337
2009-07-15, 08:10
I could help with coding this but i dont really see the way we could find out which .exe in a directory would be the game or what ever the way a source directory would be managed.Example if you want to launch counter-strike source on windows it cant be done directly from the .exe you have too launch steam and launch the app right after. If you already planned that just tell me ill try to build database to make it work

http://xbmc.org/trac/ticket/5628
I think this ticket, from earlier in this thread, has a lot of it worked out, perhaps not for the tricky stuff like Steam games, but for things like mame roms. It's just not up to spiffs standards for xbmc and needs to be rearranged a bit.

Sorry if that's not relevant or you've already seen it.

tiben20
2009-07-15, 23:16
Sorry but i dont really see the point of a game library if you only got some boring games from 1990 in xbmc.
Adding game one by one from a list
The list would have to be a lot of work to be updated but it could do a great job. The list would be an xml containing the games and the way too launch them.
examples with one game

<GameLibs>
<team fortress 2>
<waytogettheapppath>regquery</waytogettheapppath>
<args>HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam\InstallPat h</args>
<argstoolaunch>Steam.exe -applaunch 440</argstoolaunch>
</team fortress 2>
<GameLibs>

here the installpath key in the regeedit is the path for the steam.exe

redtapemedia
2009-07-16, 01:32
Sorry but i dont really see the point of a game library if you only got some boring games from 1990 in xbmc.


Boring? ??? There's plenty of CLASSIC games from that era or earlier. Personally I'm only interested in running emulators, for newer games I've got my 360. But I'm not adverse to being able to run other newer games :grin:

rausch101
2009-07-16, 01:49
Boring? ??? There's plenty of CLASSIC games from that era or earlier. Personally I'm only interested in running emulators, for newer games I've got my 360. But I'm not adverse to being able to run other newer games :grin:

I'm in the same boat. When I'm loading up games via XBMC, it's usually classic games from the 90's. I'd be willing to bet that at least 50% of XBMCers that use Games through XBMC use emulators/roms from the 1990's (not to say that they don't also play modern games)

The-Boxhead
2009-07-16, 02:04
Ode to that ! Getting old emus like mame, nes, snes and what not working
within xbmc has been my wet dreams since i ditched the original modded xbox !!

Dont care to much about launching other stuff.

apanloco
2009-07-16, 14:08
I have to chime in now :-)

Please don't forget the Amiga! The only requirement on code I can see is that one game can take multiple discs, and these files will be specified as parameters to the Amiga-emulator executable. And perhaps this requires some stacking support to look nice in the GUI.

Regards

natethomas
2009-07-16, 18:00
Let's keep these threads clean, folks. Unless you are writing something that will actually contribute to the coding of a games section, please post here.

http://xbmc.org/forum/showthread.php?t=28953

As always, suggestions are welcome in the other thread.

spiff
2009-07-28, 22:32
i just got an email an hour or two ago from leo212 where he said he doesn't have the time to work on this further. seems you have to cross your fingers that some other game interested people will step up.

flxfxp
2009-07-29, 22:49
I am interested, and specifically charmed with hyperspin frontend:

http://img23.imageshack.us/img23/35/34374851.th.jpg (http://img23.imageshack.us/i/34374851.jpg/)
http://img33.imageshack.us/img33/1392/94811943.th.jpg (http://img33.imageshack.us/i/94811943.jpg/)

See a video of it here: http://www.youtube.com/watch?v=lEgaqXsavYA
Can't we create something similar in python using SDL?

blittan
2009-07-29, 23:15
I know I wouldn't use that, looks cool a few times, but it's not usable.. same thing in USBloader GX for Wii, tried that view for a few times, then switched back to listing.

flxfxp
2009-07-29, 23:53
I know I wouldn't use that, looks cool a few times, but it's not usable.. same thing in USBloader GX for Wii, tried that view for a few times, then switched back to listing.

I do agree. However, I seek the "interactivity" that it gives. The xport emulators for xbox 1 were brilliant since they were highly interactive and polished, whilst using a existing emulation engine.

blittan
2009-07-30, 00:04
I wrote emulauncher a long time ago, for xbox .. So it is possible to write a frontend in python, but this games library is more than a frontend.

flxfxp
2009-07-30, 00:12
Personally i'm only interested in the retro side. I love playing my emulators on my old xbox. But now with my new ion platform, I'd like to have the same experience on it.

On the old xbox I created this:
http://farm3.static.flickr.com/2136/3539388005_4444919b3b.jpg
Simple, but effective, because the emulators hold all the roms.

Anyway, is there already a spec sheet outlining the features that are wanted? Mockups? etc?

redtapemedia
2009-07-30, 01:17
I know I wouldn't use that, looks cool a few times, but it's not usable.. same thing in USBloader GX for Wii, tried that view for a few times, then switched back to listing.

It's actually really good on a proper cabinet, using with a joystick it scrolls through the games really well, and is not hard to locate games you want to play. I wouldn't like to use Hyperspin with a remote though, but it's easily the best to use in an arcade cab.

It's written in actionscript which means it's not cross platform. Their game list format is quite good though (XML based), and there is an online game list they use called Hyperion.

flxfxp
2009-07-31, 20:12
As questioned earlier, is there already a spec sheet outlining the features that are wanted? Mockups? etc? Is there a dev team for this yet? If so, I'd like to apply.

spiff
2009-07-31, 20:30
no outline, it's pretty much up to what we get devs for. but the idea would be to build a library like we have for videos and music. we have scrapers in place.
also we can use the playercore stuff to define emulator "player cores".

code speaks extremely well to us, much better than anything else ;)
i am willing to give pointers but i have no personal interest in working on it

Nicezia
2009-08-01, 11:06
Currently working on a scraper for giantbomb.com which will be a grand addition to this project.
its also got a ConsoleSearch option which downloads info on the console for which the game/program is for

however, the allgame scraper for somereason doesn't seem to be working for me, if i load a page into my editor from a save file it pulls results just fine, but downloading the search page is problematic it returns the empty search page (and yes i'm using post - in the same manner i use it for allmusic.com for artist and album searches) I'm sure its a problem of my web functions i just can't lay my fingers on it, any suggestions on what the difference might be?

sho
2009-08-01, 12:22
As questioned earlier, is there already a spec sheet outlining the features that are wanted? Mockups? etc? Is there a dev team for this yet? If so, I'd like to apply.This is the closest you can get I guess.
http://xbmc.org/wiki/?title=Games_Library_Ideas
feel free to update.

flxfxp
2009-08-01, 14:35
I would if I could, however only sysops can edit that page : /

blackadaberry
2009-08-02, 15:09
Personally i'm only interested in the retro side. I love playing my emulators on my old xbox. But now with my new ion platform, I'd like to have the same experience on it.

On the old xbox I created this:
http://farm3.static.flickr.com/2136/3539388005_4444919b3b.jpg
Simple, but effective, because the emulators hold all the roms.

Anyway, is there already a spec sheet outlining the features that are wanted? Mockups? etc?

Any chance you could pass this on to me.....i kinda like it....

grassmunk
2009-08-03, 03:34
I'm not sure how emulators/roms are going to be addressed. Are you going to define specific thumbnail sizes?

The reason I ask is because of projects like the ones going on for XPORT (MEDNAFENX-NES is the first in this endeavor): http://forums.xbox-scene.com/index.php?showtopic=689055

If you look at the art collections: http://forums.xbox-scene.com/index.php?showtopic=660135

You can see that there's multiple ways to show a game:
1) Box Art
2) Cartridge
3) Game start screen
4) Game action screen

the Game screens are a no brainer, they're the same size. The cartridge and the box art will vary by system (and sometime even within systems). Something like the difference between boxes for Atari and SNES games comes to mind.

But honestly the XPORT projects should be looked at for an idea. Ideally we could ask if we could create a website based on the art packs/game summary collected.

One cool piece is the video preview of the game.

greatant1337
2009-08-03, 10:15
Are you going to define specific thumbnail sizes?..........

These are all skinning decisions so dependant on the skin used and they're irrelevant to this thread as currently we don't even have anything properly coded. At the moment we're looking for someone that can code the backend.

sho
2009-08-03, 12:37
I would if I could, however only sysops can edit that page : /PM Pike a request for access, with your Wiki username.

Nicezia
2009-08-04, 04:01
GiantBomb Game Scraper (http://scraperxml.svn.sourceforge.net/viewvc/scraperxml/trunk/branches/cSharp/TechNuts/ScraperXML%20Test%20Program%20CSharp/bin/Debug/scrapers/programs/giantbomb.xml?view=markup)


A simple implementation to begin with
no fanart yet, gets several box covers, and i can't yet figure out how/or why it's not grabbing the description (at least in scraperXML) as i haven't tried it in your GamesLibrary branch (computer currently won't run XBMC of any flavor, since my nVidia card burnout)

flxfxp
2009-08-04, 14:16
PM Pike a request for access, with your Wiki username.
Sent yesterday, waiting for a reply.

FaberfoX
2009-08-05, 23:11
I've been keeping an eye on this for a while and just recently discovered gamebase (http://www.bu22.com/)
Are this project developers aware of it? So far, I've found gamebases for most platforms, and they include lots of extra info (multiple screenshots, box and manual scans, cabinets / overlays and text instructions)
Gamebase is GPL and uses an access database (.mdb) but the developer is open to moving to something else like SQLite

flxfxp
2009-08-07, 11:48
I created http://xbmc.org/wiki/?title=Talk:Games_Library_Ideas for more concrete discussion on the games library.

mngrl1
2009-08-08, 14:18
:( i'm worried think this idea is dead

sho
2009-08-08, 14:58
I created http://xbmc.org/wiki/?title=Talk:Games_Library_Ideas for more concrete discussion on the games library.
Nobody monitors the Wiki Talk pages and the recommendation is to keep these things on the forum.

bergner
2009-08-14, 00:03
Hi,
I have submitted a patch for review in Trac ticket 7046 (http://xbmc.org/trac/ticket/7046) which does some further work on running applications, interpreters and emulators. The description in Trac is fairly thorough, but the basic idea is to have an ApplicationPlayer class that is responsible for running external applications, since there is already quite a lot of logic in place regarding "players" in xbmc.

Currently it does not directly add the possibility to run files via emulators but given that it becomes possible to associate a "source" in the Programs section with an sprintf-style execution pattern in which a file name can be interpolated the implementation of the actual execution should be straightforward. I made a hard-coded proof of concept with ZSnes and SNES ROMs with about 5 lines of code.

We'll see if the people reviewing the patch decide to shoot the messenger :eek:

For those interested the changes are in the gamelibrary branch, although pending review.

Marcus

SneakerElph
2009-08-14, 00:15
Good! I'm really glad to see some progress on this. I can't wait until emulators and PC games are supported as if they were part of the library just like audio and video. This is very exciting.

junk
2009-08-14, 00:42
Hi,
I have submitted a patch for review in Trac ticket 7046 (http://xbmc.org/trac/ticket/7046) which does some further work on running applications, interpreters and emulators. The description in Trac is fairly thorough, but the basic idea is to have an ApplicationPlayer class that is responsible for running external applications, since there is already quite a lot of logic in place regarding "players" in xbmc.

Currently it does not directly add the possibility to run files via emulators but given that it becomes possible to associate a "source" in the Programs section with an sprintf-style execution pattern in which a file name can be interpolated the implementation of the actual execution should be straightforward. I made a hard-coded proof of concept with ZSnes and SNES ROMs with about 5 lines of code.

We'll see if the people reviewing the patch decide to shoot the messenger :eek:

For those interested the changes are in the gamelibrary branch, although pending review.

Marcus

I'll add what spiff forgot to write on the trac ticket comment: the initiative is appreciated, glad someone tries to develop this further! ;)

rausch101
2009-08-14, 01:33
Hi,
I have submitted a patch for review in Trac ticket 7046 (http://xbmc.org/trac/ticket/7046) which does some further work on running applications, interpreters and emulators.

...

For those interested the changes are in the gamelibrary branch, although pending review.

Marcus

That is one hell of a first post. Nice work.

bergner
2009-08-14, 20:29
Well if you want something done you sometimes need to get your own hands a bit dirty. On a more serious note I have done some restructuring based on spiff's feedback in Trac (I basically misunderstood what the heck the old external player was doing), so I have code that runs applications via the old ExternalPlayer instead. It required some minor adjustments, most notably doing a fallback so that if the "external player" used was the empty string and the file used as input was an executable, it uses the executable itself.

I can't say I understand the ins and outs of the external player though (for example there is no place in the code which actually sets an external player and the settings only seem to allow for a single external player). So I'm expecting some chat sessions on #xbmc to help me figure such things out and come up with a decent game plan. :confused2:

bergner
2009-09-01, 09:46
Past couple of weeks have been rather busy, but anyway ticket 7046 (http://xbmc.org/trac/ticket/7046) has now been reworked to use the ExternalPlayer which works well.

My basic idea is to have one scraper per console (I will probably not build any of the actual scrapers) and each such scraper is code wise very similar. They should have settings where you can specify the path to the emulator you want to use and that's about it. A couple of issues remain though, one of which I have another patch pending for:


Only video scrapers are allowed to have settings. This is due to some hard-coded things in GUIDialogContentSettings. Patch for this is pending review in ticket 7119 (http://xbmc.org/trac/ticket/7119).
It does not seem possible to save scraper settings at the moment. I have been testing and stepping using a debugger but there does not seem to be any code that saves scraper settings on disk or in the database. I'm not sure how to tackle that problem at this point.


An alternate approach could be to use separate players for each console, but to me that seems to be much harder to actually get to a point where we can have something that is configurable via the gui and also harder to add support for additional consoles. As a starting point I would like to ignore most of the actual scraping/info gathering process and just have basic scrapers that can handle files with certain file extensions and have some simple associated settings. For example a SNES console scraper would recognize the .smc extension and have a setting where you would need to type in the path to your emulator.

Good ideas are of course welcome.

spiff
2009-09-01, 11:12
see system/playercorefactory.xml and http://xbmc.org/wiki/?title=HOW-TO_use_an_External_Player_for_media_playback

bergner
2009-09-21, 00:14
There is now a gamelibrary2 branch available which is basically a fresh XBMC main branch + patches that has gone into the gamelibrary branch. I have been working a bit with the gamelibrary2 branch and it is possible to run emulators etc. with a bit of manual setup in playercorefactory.xml. As an example, if we want to play files with extension "smc" using ZSnes we setup the following:


<!-- in the <players> section -->
<player name="SNESPlayer" type="ExternalPlayer">
<filename>path to your ZSnes executable</filename>
</player>

<!-- in the <rules> section -->
<rule name="snes" filetypes="smc" player="SNESPlayer" />


Currently on Windows you would need to change the GUIViewStatePrograms.cpp file to not only return files with extensions .exe|.lnk|.cmd|.bat, otherwise you won't even get a listing of your smc files. I have some additional fixes that allows any standalone executable to be run.

There is one serious problem at the moment though. After playing one thing with the external player, the next time you try there is a deadlock in the XBMC graphic context. This needs further investigation and to be honest I'm a bit stuck on that at the moment.

greatant1337
2009-09-21, 01:17
it is possible to run emulators etc. with a bit of manual setup in playercorefactory.xml. As an example, if we want to play files with extension "smc" using ZSnes we setup the following:


Dude, that is sooooooo cool. Keep up the good work.

Also, good thinking on gamelibrary2.

Loto_Bak
2009-09-22, 06:36
I dont know if this has been considered. Forgive me if it has been addressed.

I believe an important feature for this to work properly is consistent input.
XBMC currently uses eventserver as an input method but each emulator/application is going to use its own method to capture input.

This could be a real nightmare configuration wise. What if xbmc were to create its own input interface to the emulators. Then if a input method works in xbmc it will translate easily to the emulator.

rausch101
2009-09-22, 14:28
I dont know if this has been considered. Forgive me if it has been addressed.

I believe an important feature for this to work properly is consistent input.
XBMC currently uses eventserver as an input method but each emulator/application is going to use its own method to capture input.

This could be a real nightmare configuration wise. What if xbmc were to create its own input interface to the emulators. Then if a input method works in xbmc it will translate easily to the emulator.

I think this would be a great feature, but it would probably be pretty overwhelming for the programmer of this project since it's had a lot of trouble just getting off of its feet. It's only a few more steps for the user to independently create the inputs in each emulator (granted it would be a pain for a large number of emulators) and I think that would be fine until the library itself is actually implemented.

I do think you've mentioned a great idea, Loto, that would definitely complete this project, but I think it's a feature that should wait a bit for implementation. Maybe I'm wrong and there's a method that makes this far more automated than I'm aware, but it seems like a big enough task to warrant a post-alpha implementation.

clock2113
2009-09-22, 16:21
For Windows: Instead of eventghost or something, use Xpadder, so the buttons on your gamepad register regular keypresses instead of special events... then use Xpadderhook, which will change the configuration when you launch a game...

It works great for me with a couple of windows games and zsnes with an xbox360 controller...

OlafBerserker77
2009-09-25, 22:37
Can you post a link to this xpadderhook? Google shows nada.

Edit: Nevermind, my google-fu was weak....

http://blackhole.ipbfree.com/index.php?showtopic=282

mw90
2009-10-10, 06:11
just wanted to say i hope intergrating emulators happens soon:grin:, cause its the only thing missing from my otherwise amazing XBMC HTPC, hopefully we will see it happen,

BTW thanks to everyone who is working on getting this up and working

akumajo
2009-11-01, 15:04
hello

i'm still following this project, any news ? maybe for next XBMC Live release ?

thx

sho
2009-11-01, 15:21
There is currently no one actively working on the game library feature so do not expect anything in that regard for the next (9.11) point release.

leo2
2009-11-02, 20:29
I've stopped working on this branch, but it has some completed work that can be merged with XBMC main version:
1. Scraper support for Programs (you can get title & thumb for your games & applications)
2. Ability to launch single program without plugins (.exe, .bat or .lnk file in windows)

I don't know why XBMC guys don't want to merge it as is...

spiff
2009-11-02, 20:31
because merging half-finished, unmaintained code is a certain road to a bloated codebase.

leo2
2009-11-02, 22:06
because merging half-finished, unmaintained code is a certain road to a bloated codebase.

I disagree.

The current XBMC Programs module is half-finished... it doesn't do anything (without "Launcher" plugin)
The games-library branch is one step forward to make it complete even without the "Library Mode".
It will give an ability to launch applications & games and to create useful plugins based on it.

I don't see a reason to keep it out.

spiff
2009-11-02, 22:08
easy for you to say - you don't have to deal with the repercussions when bug reports and a gazillion feature requests starts popping up. i much rather have no support than half-done support. the former makes it clear this is nothing we're working on, the latter opens the cans of worms.

leo2
2009-11-02, 22:27
your choice!
I'm happy with XBMC anyway... (:

TheQuestor
2009-11-03, 00:12
I disagree.

The current XBMC Programs module is half-finished... it doesn't do anything (without "Launcher" plugin)
The games-library branch is one step forward to make it complete even without the "Library Mode".
It will give an ability to launch applications & games and to create useful plugins based on it.

I don't see a reason to keep it out.

There is always the "F" word. And yes it does end in K but has an or in the middle. :P

mngrl1
2009-11-03, 08:40
any way to get steam to work with xbmc that would be killer have the overlay and games kept up to date, know when friends come online

sho
2009-11-07, 17:50
easy for you to say - you don't have to deal with the repercussions when bug reports and a gazillion feature requests starts popping up. i much rather have no support than half-done support. the former makes it clear this is nothing we're working on, the latter opens the cans of worms.
I would say that the capability to run executables would be a bare minimum requirement to have a programs section.
Without it the Programs section is absolutely useless for the majority of users, but yet it has to be enabled to allow users to run plugins such as the Repo installer. (Thus creating unnecessary confusion as to why this is there and what it does).
In your opinion is the current implementation not up to doing just that in a rudimentary, but usable fashion?

You could compare it to the pictures section, which is more or less just a dumb filebrowser that can display images, without that capability the pictures section would be just as useless as the programs section is today, or the videos section from before you implemented the Video Library.
Granted, that does not hinder people from asking for a pictures database, but they can at least settle for what they have today (or move on to another application).

Admittedly I have no idea how much work is involved to get the bare minimum executable launching that apparently has already been coded working with current SVN, but I implore you to reconsider that opinion for the follow up release to 9.11, even though you may not be willing to put any effort to that means.
(Then again, if someone was really interested in making that happen, it would probably be done by now ;) )

Discaciate
2009-11-07, 19:40
I would say that the capability to run executables would be a bare minimum requirement to have a programs section.
Without it the Programs section is absolutely useless for the majority of users, but yet it has to be enabled to allow users to run plugins such as the Repo installer. (Thus creating unnecessary confusion as to why this is there and what it does).
In your opinion is the current implementation not up to doing just that in a rudimentary, but usable fashion?

You could compare it to the pictures section, which is more or less just a dumb filebrowser that can display images, without that capability the pictures section would be just as useless as the programs section is today, or the videos section from before you implemented the Video Library.
Granted, that does not hinder people from asking for a pictures database, but they can at least settle for what they have today (or move on to another application).

Admittedly I have no idea how much work is involved to get the bare minimum executable launching that apparently has already been coded working with current SVN, but I implore you to reconsider that opinion for the follow up release to 9.11, even though you may not be willing to put any effort to that means.
(Then again, if someone was really interested in making that happen, it would probably be done by now ;) )

Fantastic defense.
I could not agree more. I would love to have the simple option to run executables directly.

spiff
2009-11-07, 20:09
he's reiterating things i'm well aware of. which means it has zilch influence on whether or not to add unfinished code to svn.

sho
2009-11-07, 21:04
I think people would like to know how unfinished it is (me myself included).

When would it be considered finished? With all bells and whistles (library and scraping) or is something actually missing for the rudimentary executable support?

Sorry about not giving up... this is for the sake of the community after all :)

spiff
2009-11-07, 21:10
when somebody is willing to maintain it.

VictorV
2009-11-08, 05:23
I've made quite a lot of work trying to "port" the structure of the video section into a program section, but I have no experience with c programming and I have some problems seeing the complete program flow. Now I'm struggling with some linker errors I can't figure out.

As I see it, the program section could be something as follow:

Contents:

Files - Regular files that are invoked by the system default executable for a given file item and have no extended information
Application - A given program executable with a minimum of extra information (web browsers etc.)
Game - Games that could be a ROM or a executable. If no launcher is given just pass the file so the operating system can take care of it.
ArcadeGame - Divorced from games, as MAME and similar ROMs often will use different sites for scraping and maybe some small differences in how the graphical art is presented in the GUI. Would use the same table as a game in the database


Games database:

TITLE
PLOT
DESCRIPTION
MAXPLAYERS
VOTES
RATING
REGION (won't be used for arcade games)
BOXART_URL (used some general naming since it might be "front cover" for usual games, but might be "cabinet" for arcade games)
ALT_BOXART_URL (There's made room for alot of artworks since many (included myself) thinks that a big part of a great front-end for game collections. I also think this will interest people over at xbox-scenes emulator forum
EXT_BOXART_URL
ACTIONSHOT_URL (action and intro screenshots are somekind of a standard for rom collectors)
INTROSHOT_URL
YEAR
THUMBURL
IDENT
SORTTITLE
PERSPECTIVE (Could maybe be merged into genres?)
GENRE
DEVELOPER
PUBLISHER
THUMBURL_SPOOF
BOXART_URL_SPOOF
ALT_BOXART_URL_SPOOF
EXT_BOXART_URL_SPOOF
ACTIONSHOT_URL_SPOOF
INTROSHOT_URL_SPOOF
PREVIEW (A precompiled video of the game. Pretty much the same as a movie trailer)
FANART
PLATFORM (Windows, Dos, Super Nintendo...)


I'm not sure what the best solution for scraping would be. A scraper would probably need to know what platform to scrape information for. That could be done while setting content for a directory, with some pre-defined platforms, but unfortunately some sites will use "SNES" as a identifier, some could use "SMC", and some simply "12". How to overcome this? There's a suggestion in this thread to use different scrapers for each platform, but I can't say I like it, as I don't think someone would keep them all up to date.

Another function from the video section that probably also should be in the program section is the stacking feature. Many ROM collections will have a naming scheme similar to: Super Mario Bros[U][!].smc, Super Mario Bros[J].smc etc. and I guess many will see this stacked, though handled a bit different by the player.

I've done most of the boring aspects of this, at least for the games, and I hope to get it up and running when I have some more time to sit down and study the source code.

spiff
2009-11-08, 06:06
feel free to pop by irc, i'll gladly help and offer my ideas on the implementation side - we can even do it in norwegian :)

BLKMGK
2009-11-08, 21:48
I've been getting updates on this thread forever but not had time to check on it till today. I had SO hoped to see something even remotely close for MAME at least. Depressing to see that it looks stalled and that no one sees value in moving it forward yet. :(

leo2
2009-11-08, 22:10
when somebody is willing to maintain it.
I currently maintain "Launcher" plugin, but I would love to get rid of it and maintain a native xbmc code. (by maintain - I mean - fix bugs)
I'm sure that library support will be added sometime later, but it should be released to all users first for impression & ideas (and maybe other ppl would help implementing it or by adding scrapers)

redtapemedia
2009-11-08, 23:06
I currently maintain "Launcher" plugin, but I would love to get rid of it and maintain a native xbmc code. (by maintain - I mean - fix bugs)
I'm sure that library support will be added sometime later, but it should be released to all users first for impression & ideas (and maybe other ppl would help implementing it or by adding scrapers)

I would definitely help out with writing scrapers if this was added. :)

lloydsmart
2009-11-12, 22:41
Anything going on here? I do hope this hasn't been dropped as it would be a fantastic feature for XBMC to have.

Arcanthur
2009-11-13, 06:00
I do sincerely hope that this comes to fruition is at least SOME form. It seems a logical step in expanding upon the already great feature set of XBMC.. The ability to run programs / games would surely open up even more avenues for developers.

If I had the coding knowledge I would definitely help out, but I am but a mere designer :p

fablog
2009-11-18, 16:02
I hope the app launcher will be implemented in the app section, like the other said, without this section is useless.

tmpdir
2009-11-19, 23:44
hope is fine, clear requirements would be better.

what is ready, unstable and needs to be done before this branch gets merged?

After reading this thread and the only(?) wiki page about this I still have no idea what road is expected to be followed. Not really something to start programming without making some u turns.

sho
2009-11-20, 00:17
What we can give us is that the original Xbox had a program db that worked much like a basic media library. Assuming that getting that functionality at minimum is required, we know what to aim for.

Let us just hope that spiff has not completely abandoned this thread so he can set me straight.

BLKMGK
2009-11-20, 03:25
IMHO, start with something like the old XBOX library but try to incorporate something like MAME games. These aren't CPU intensive, they're cross platform, and most everyone has a soft spot for them. Lots of sites out there have info about them and there's data files aplenty to help create some sort of .NFO file for the ROMs.

greatant1337
2009-11-20, 11:36
There's plenty of ideas and "plans" on how and what to implement throughout this thread. As well as these links:
http://xbmc.org/forum/showthread.php?t=28953
http://xbmc.org/wiki/?title=Games_Library_Ideas

Here's (http://xbmc.org/trac/browser/branches/gamelibrary2) the current Games Library branch if anyone thinks they know what they're doing and wants to have a go. (and the original branch (http://xbmc.org/trac/browser/branches/gamelibrary))

There's atleast one scraper written for AllGame: http://xbmc.org/trac/browser/branches/gamelibrary/system/scrapers/programs (not sure why it didn't make it to gamelibrary2)

I know we still need the backend to even start to display a MyProgramsNav.xml which seems to involve files like this (http://xbmc.org/trac/browser/branches/gamelibrary/xbmc/GUIWindowProgramNav.cpp). There is a MyProgramsNav.xml done ready to be taken advantage of.

I hope this piques someones interest, fills everybody in (a little bit) and prevents redundant ideas and reinvention of the wheel.

rickx
2009-11-20, 12:07
I'm not exactly an svn guru. If I check out the games-branch, what version (revision) will it be? Is it possible to merge it with the current rev.? If so, could somebody drop the code for doing it? (Apart from probably having to solve some issues/conflicts manually...)

VictorV
2009-11-20, 20:42
GiantBomb Game Scraper (http://scraperxml.svn.sourceforge.net/viewvc/scraperxml/trunk/branches/cSharp/TechNuts/ScraperXML%20Test%20Program%20CSharp/bin/Debug/scrapers/programs/giantbomb.xml?view=markup)


A simple implementation to begin with
no fanart yet, gets several box covers, and i can't yet figure out how/or why it's not grabbing the description (at least in scraperXML) as i haven't tried it in your GamesLibrary branch (computer currently won't run XBMC of any flavor, since my nVidia card burnout)

Still got that scraper? I would love to have a scraper to test with

tmpdir
2009-11-20, 21:37
thanks greatant1337 Missed that thread completly in my search (will read it this weekend). Without reading it I'm convinced the requirements are of the kind 'moving targets'.

tmpdir
2009-11-20, 21:41
I'm not exactly an svn guru. If I check out the games-branch, what version (revision) will it be? Is it possible to merge it with the current rev.? If so, could somebody drop the code for doing it? (Apart from probably having to solve some issues/conflicts manually...)

svn merge is quite easy to use, just use google. Expect some minor merge issues, some of the depencendies have been updated recently.

rickx
2009-11-20, 22:50
svn merge is quite easy to use, just use google. Expect some minor merge issues, some of the depencendies have been updated recently.

Yes, I've heard google before...I also had tried already, but if someone could kindly comfirm it is right, I could spare some precious time...
I checked out the branch in one folder, the latest in another.
Then(?) I went inside the latest folder and used
svn merge ../gamebranch
But maybe it should be the other way round. Or adding parameters...

tmpdir
2009-11-21, 12:51
Next time you might want to mention what you've already tried... to many people ask before getting their hands dirty.

It's been a while, but its something like:

svn merge \
https://svn/trunk/equal_directorie_name/src \
https://svn/branches/equal_directorie_name/src \
.

The dot is your current directorie where the merge should arrive. After checking the results etc, you can commit . to your working folder.

Edit:
- the 'equal_directorie_name' folders must be the same.
- works the same with local folders
- the . points to you current dir.