(2014-05-19, 12:57)da-anda Wrote: there will be an improved controllers API, a games library, scrapers (AFAIK based on heimdall), a generic games addon API, a dedicated games extension point, ...
To expand on da-anda... RetroPlayer is a small part of the upcoming game experience. The vision is a "hit enter and it works" experience similar to videos. To do that, we'll need the following components beyond RetroPlayer:
Controller API on steroids
the first step (~75% finished) is to re-implement the existing but limited Joystick API. The next step is a new API that can support button combos and context-sensitive (per-emulator) configuration, ultimately via Python script
Games library
waiting on finding an ORM library. I wrote a proof-of-concept picture library using a homebrewed ORM layer, so once we get a not-sucky ORM this will be a piece of cake.
Shaders
I'm not a rendering guru, so I'll need some help with these.
Heimdall
unfortunately, XML scrapers don't fit into this vision. Why not? games pose several challenges over videos - multiple platforms, series, regions, versions/mods/hacks, homebrew, etc. While a realistic accuracy here may be ~80%, let's (optimistically) assume we can write a scraper with close to 99% accuracy. Now torrent 10,000 ROMs. Shouldn't take more than a day. As accurate as our scraper is, we still have over 100 titles that need to be individually corrected. XML scrapers simply don't scale.
When the time comes for me to focus on Heimdall, accuracy will be engineered directly into the scraper. I'll probably aim for four 9's (99.99% accuracy). I have a couple extra terabytes lying around, it's just a matter of building a corpus of several hundred thousand ROMs that heimdall can be tested/trained against until this accuracy is reached.
PyRomInfo
Will provide game data to Heimdall extracted directly from the ROM itself. A proof-of-concept has been finished and supports about 10 platforms currently.
Scraping from python plugins
RetroPlayer can play public domain roms directly from web servers, so scraping from Python plugins lets us ship a game library pre-populated with thousands of ROMs on the web, many of which are clones of popular titles.
Save state compression
What if every frame of every game ever played in XBMC was recorded, and you could perform random seeks to any place in a game's history? Advanced compression algorithms make this problem tractable.
Exposing save states to Python
Write-access allows for trainers. Read-access allows extended info to be exposed to XBMC, like player health, rupee count, game progress, etc. On that note...
Trainer add-ons
Please yes.
quick edit: how could I forget about multiplayer??
While I've made progress on some of these items, the rest are still a twinkle in the corner of my eyes (and not critical to the vision). Developing this stripped-down featureless RetroPlayer is kind of a drag because I've been looking at much of the same code for a year and a half, but I'm working hard to get it out the door so I can hack on some of these more challenging features.
And I omitted a secret feature because it completely and utterly smashes the vision, particularly the "hit enter" part (don't worry, the "and it works" part stays). It would blow too many minds if I announced it now. Once people finally acclimate to an emulator where you "hit enter and it works", I'll re-evaluate whether the world is ready for my expanded vision.