Kodi Community Forum
Integrated Video Game Emulators - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+---- Forum: RetroPlayer Development (https://forum.kodi.tv/forumdisplay.php?fid=194)
+---- Thread: Integrated Video Game Emulators (/showthread.php?tid=146711)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44


RE: Integrated Video Game Emulators - malte - 2013-01-26

Being impatient or adding pressure was so far away from my intention that I just have not thought my post could be read like this. I am sorry for this misjudgement. grassmunk, Adam7288: Thank you for not misreading my post.

I hope that we can stop talking about my person and get back on topic now.


RE: Integrated Video Game Emulators - ghostelement - 2013-01-26

Malte did a great job of adding support for thegamesdb.net a a scraping source in RCB. I think he makes a really good point about breaking this thing down into smaller chunks. At least that way we can determine who is best suited to work on different parts of this, and we can get the whole thing tackled quicker.


RE: Integrated Video Game Emulators - d3mncln3r - 2013-01-27

Just read through entire thread, very excited about this! Thanks to everyone involved making it a reality!


RE: Integrated Video Game Emulators - garbear - 2013-01-28

@malte, I just watched your video, I didn't realize that the existing intermediate game libraries would be able to integrate so well with retroplayer.

A fault of mine is grandiosely thinking my solutions are the best (i caught myself adding "and they usually are" Wink ), mostly because I enjoy the independence of arriving at the solution by myself. Hence my vertical integration in delivering the whole game library experience.

Anyways, event-based frame decoding was the "perfect" solution I came up with and considered retroplayer complete to the level my skills allow. Which is why I jumped into the game library part -- no more solutions for retroplayer because I couldn't see any more problems within my skillset (excluding the input hack and audio delay, where a fix would involve touching too much or way volatile code).

Help on the retroplayer front would let us finish libretro integration (rewind, shaders, netplay, audio delay, better input handling). Currently the team is squandering with AE mostly due to lack of documentation (and the turmoil there is why I won't touch the audio code until the AE superheros in capes come to our rescue). I'll try to fully document retroplayer in a later post. This is the best I can do, and hopefully it allows coders to step up and we can pop out full libretro integration Smile

Cheers,
Garrett


RE: Integrated Video Game Emulators - Themaister - 2013-01-29

I might be able to look into the rewind and audio delay issues if/when I have time. Got any pointer on which branch to fetch source from on Github?


RE: Integrated Video Game Emulators - garbear - 2013-01-29

https://github.com/garbear/xbmc/tree/retroplayer . (also sent a pm)

Loading from stdin is already in libretro but most cores still need to be short-circuited. XBMC's virtual file system, VFS, lets XBMC load ftp, http, smb, nfs, webdav, inside zip and rar, etc. Currently my code looks like this

Code:
if (core supports stdin) pass the file from vfs;
else if (file is local) pass the filename;
else... shed a lonely tear and notify the user

Cores supporting the "zip|ZIP" extension are tricky, because the vfs always expands these as folders, so there's no way to elegantly pass these to libretro. Likewise, I saw some cores looking for extra files (either packaged inside a zip or adjacent on the hard drive or BIOSes). It'll probably be necessary to add the ability to pass in extra files via stdin as well. Is there a limited number of these kinds of files? Or maybe create a new API call to pass in an array of files, with a hint as to what each type of file could be? I haven't dug through enough cores, so I'm not sure how we'd generalize this...


RE: Integrated Video Game Emulators - st graveyard - 2013-01-30

Hi Malte,

I have a hard time following this all, so sorry about the stupid question. But if I understand correctly, did you just integrate a first version of this libretro thing and combined this with the library/scraping functions of RCB?
This looks amazing!


RE: Integrated Video Game Emulators - malte - 2013-01-31

garbear Wrote:@malte, I just watched your video, I didn't realize that the existing intermediate game libraries would be able to integrate so well with retroplayer.
I was surprised too. Besides adding some config options it was not more than replacing "os.system(cmd)" with "xbmc.executebuiltin('PlayMedia(rom)')". So, everything was well prepared Smile

st graveyard Wrote:I have a hard time following this all, so sorry about the stupid question. But if I understand correctly, did you just integrate a first version of this libretro thing and combined this with the library/scraping functions of RCB?
Yes. The basic and most important part (launching games) works well (as far as I have tested it). But I am aware that our python addons are not the main targets of this implementation so I would expect more advanced features not to be integrated so easy or even impossible to integrate.


RE: Integrated Video Game Emulators - st graveyard - 2013-01-31

(2013-01-31, 08:54)malte Wrote:
garbear Wrote:@malte, I just watched your video, I didn't realize that the existing intermediate game libraries would be able to integrate so well with retroplayer.
I was surprised too. Besides adding some config options it was not more than replacing "os.system(cmd)" with "xbmc.executebuiltin('PlayMedia(rom)')". So, everything was well prepared Smile

st graveyard Wrote:I have a hard time following this all, so sorry about the stupid question. But if I understand correctly, did you just integrate a first version of this libretro thing and combined this with the library/scraping functions of RCB?
Yes. The basic and most important part (launching games) works well (as far as I have tested it). But I am aware that our python addons are not the main targets of this implementation so I would expect more advanced features not to be integrated so easy or even impossible to integrate.

But wouldn't it be possible to even create a new version of RCB which uses this libretro api so all the emulator configuration in RCB is gone? Or am I seeing this wrong?


RE: Integrated Video Game Emulators - malte - 2013-01-31

When libretro will be integrated in XBMCs main branch one day there will also be some more changes in RCB to reflect this. It is all still at the beginning right now.

But maybe we should discuss these things in the RCB thread as this is more RCB specific than related to the basic integration of libretro.


RE: Integrated Video Game Emulators - Adam7288 - 2013-02-03

So quick question. How does the process of getting a major feature like this into the main branch work? Is there some level of stability / functionality that is required before they would consider it?


RE: Integrated Video Game Emulators - garbear - 2013-02-03

1) hire more monkeys and typewriters. 2) wait. 3) when all else fails, return to #1


RE: Integrated Video Game Emulators - garbear - 2013-02-06

A little update for everyone. Emulators (on windows and linux) can now be installed from within XBMC using the new libretro add-on repository that I set up. EDIT: my github branch "retroplayer" is required.

Image

Simply go to Get Add-ons > Emulators. The repository is automatically enabled in the current retroplayer source tree, if you compiled xbmc earlier you can add the file from a0a4b42 or install this repository add-on: https://github.com/garbear/repository.libretro/raw/master/release/repository.libretro/repository.libretro-1.0.0.zip

Themaister was able to get real-time rewinding working, which is awesome.

I'm in the act of evaluating a change in the rendering process from the one used for DVDs to the one used for textures. This is because RenderManager deals with YUV instead of RGB, and is geared toward the complexities of video timings and colorspaces. libretro runs at a constant framerate and returns simple RGB data, which is possibly more suited to rendering a texture control and doing a little double-buffering.

Finally, after this work gets merged (or before, if I feel like it) I'll rebase on FRODO so that skins and add-ons, like RCB, can be tested with RetroPlayer.


RE: Integrated Video Game Emulators - bosel - 2013-02-06

Thank you, great work!


RE: Integrated Video Game Emulators - n1md4 - 2013-02-06

(2013-02-06, 00:00)garbear Wrote: A little update for everyone. Emulators (on windows and linux) can now be installed from within XBMC using the new libretro add-on repository that I set up.

Simply go to Get Add-ons > Emulators. The repository is automatically enabled in the current retroplayer source tree, if you compiled xbmc earlier you can add the file from a0a4b42 or install this repository add-on: https://github.com/garbear/repository.libretro/raw/master/release/repository.libretro/repository.libretro-1.0.0.zip

Hi garbear,

I have Frodo RC3 and have installed the .zip you reference. The Libretro add-on then appears, but there's no option to configure the add-on or install emulators. I don't want to be posting in the wrong thread (for support), but if you wouldn't mind one question; will this work from the main XBMC branch, without any prior emulator configuration, or does it require something special? - a Libretro XBMC branch, for example. If there is such a branch, would you point me toward it; and the docs to install it Smile

Thanks,
n1md4