• 1
  • 3
  • 4
  • 5(current)
  • 6
  • 7
  • 44
Integrated Video Game Emulators
#61
(2012-12-10, 16:32)Ned Scott Wrote:
(2012-12-10, 15:52)jompan87 Wrote: Any recent progress on this? I see garbears commits is now 3 months old

Anyhow, a joy to see this finaly beeing implented.

Much apprichiated, kudos to garbear and anyon else innvolved!

At the very least, there won't be much progress on it until after Frodo is released since most of the devs are busy with that. On top of that, garbear has been busy in his own life and hasn't even been seen much on the forums or IRC, let alone coding.

However, since it is open source, anyone can take a crack at it themselves or get in touch with garbear to see what they might be able to help with.

From a PM Garbear sent me: "I'm making progress on a gui & database for the game browser."

He also was asking about the GSOC project from topfs2. His abstraction handles games by default, and would be able to link a game to both it's movie and/or soundtrack if available. So if anyone know's what happened with that project, I'm sure it'd be a great contribution to this.
Image
thegamesdb.net - An open video games database.
scottbrant.net - Blog
#62
the GSOC project from topfs2 is still in the works. It has the name "heimdall" and is a python based advanced scraper engine that can also run standalone (so f.e. on your NAS or be used/integrated by any NFO creator)
#63
garbear speaks Smile The XBMC emulator core i wrote is called RetroPlayer, an event-based multithreaded core inspired by xbmc's DVDPlayer. It's a proof of concept, but the general framework is modular enough to build it piece-by-piece into a working full-featured emulator.

I've been waiting for something like libretro for a few years, a common emulator api is an idea too good not to happen. I hope that exposing the API to xbmc's millions of users brings the api enough attention and developers to make RetroArch and its backends more badass than they already are.

(2012-12-08, 10:11)squarepusher Wrote: RGB565 support for textures might not be available in XBMC - it is generally assumed by now that the libretro frontend supports either XRGB8888 (for 32bit color mode) or RGB565 (for 16bit color mode). A libretro port can choose either RGB565, XRGB8888 or RGB1555 as its preferred color format (the latter is deprecated though and will mostly always lead to color conversion, so it's discouraged to use this as anything other than a last resort). Catering to all of them is usually not done - if the preferred format 'fails' (ie. RGB565 or XRGB8888), then it would resort to RGB1555 - and you'd have to convert colors in your libretro frontend.
XBMC expects textures in PIX_FMT_YUV420P form. A conversion is necessary anyways, so I pass the texture data to swscale unmodified and flag the data as either PIX_FMT_ARGB or PIX_FMT_RGB555LE. RGB565 was added after september (when my classes started up again), but I assume supporting it is as simple as finding the right swscale flag.

Quote:As for audio delay - it smacks of A/V sync issues. Our input/audio/video drivers are optimized for games/emus - your drivers are probably optimized with movies in mind. We ran into similar issues when we tried to port FFmpeg/mplayer to libretro - we found that our frontend drivers were not really suitable for movies and were too game-specific - the reverse might be the case here. I guess what you could try in the interim is to fiddle around with audio/video latency - if that doesn't work you might have to look into making XBMC's video/audio drivers more suitable for realtime usecases.

Other things that could contribute to audio delay/latency on the audio front could be the audio resampler, float to int/integer to float conversion, and the like. Maister is pretty good at audio and has written Altivec/SSE/NEON-optimized resamplers and audio conversion routines.
XBMC has a new AudioEngine written for bit-perfect reproduction, not low latency. It can be modified (in theory) for low-latency mode without touching much RetroPlayer code.

I see a low-latency mode as just another self-contained step to be engineered before we have a working emulator.
#64
(2012-12-12, 00:47)garbear Wrote: XBMC expects textures in PIX_FMT_YUV420P form. A conversion is necessary anyways, so I pass the texture data to swscale unmodified and flag the data as either PIX_FMT_ARGB or PIX_FMT_RGB555LE. RGB565 was added after september (when my classes started up again), but I assume supporting it is as simple as finding the right swscale flag.

Yeah, it was simple as that. Thanks for the input.

Before:
Image

After:
Image

Before:
Image

After:
Image
#65
Garbear,

I checked the Github page where your custom fork resides. I noticed the commits are 3 months or older. You mentioned you were working on some gui stuff etc etc, when do you think those changes will be merged with your fork?

PS - this is the HOLY GRAIL. Time to double down, set up a donation page! We are preserving a medium, don't forget that.
#66
Adam7288,

https://github.com/xbmc/xbmc/pull/1562 . The goal is a generic metadata store optimized for speed, that both a picture and game library can be built on. Once that's in then it's a matter of re-implementing the VFS, GUI and info scanning from my PR for games. Basically, I've already done a lot of the work... just for pictures instead of games Smile
#67
A few things I found while testing:
-some cores won't work if XBMC is in portable mode.
-from what I can gather from the logs, 64bit builds of the cores are not getting recognized.
#68
Once the foundation is laid, we have to solve (or try to solve) the problem "how do I browse thousands of items". This is a discover ability (when simply browsing) or an efficiency (when searching for a particular item) related problem. There are a variety of solutions thus far. For example, take a look at Apple TV's approach. From a navigational perspective, it probably bests XBMC, while the latter has much more to offer in terms of customization.

But alas, the problem remains largely unsolved, especially from a 10 foot standpoint. Much innovation is taking place in the HTML5 side of things. Here are some demos to get the UI creative juices flowing:

http://tympanus.net/Development/Stapel/

http://tympanus.net/codrops/2012/11/29/s...own-lists/

http://tympanus.net/Tutorials/FullscreenBookBlock/
#69
Maybe this could be interesting:

http://themaister.net/retroarch.html

From the Page:

"RetroArch is a multi-system emulator for Linux, Windows, Mac OS X and *BSD. It is formerly known as SSNES. Its design and background is quite different than most other emulators as RetroArch does not implement an emulation core itself. RetroArch talks to libretro, a generic emulator core API. This means that RetroArch is core agnostic, and it does not care which emulator core is running.RetroArch believes in modularity. The application itself is a command-line driven application suitable for HTPC and/or headless use."
#70
I thought this whole project was based on libretroarch?
#71
(2012-12-13, 18:59)Turrican2 Wrote: Maybe this could be interesting:

http://themaister.net/retroarch.html

From the Page:

"RetroArch is a multi-system emulator for Linux, Windows, Mac OS X and *BSD. It is formerly known as SSNES. Its design and background is quite different than most other emulators as RetroArch does not implement an emulation core itself. RetroArch talks to libretro, a generic emulator core API. This means that RetroArch is core agnostic, and it does not care which emulator core is running.RetroArch believes in modularity. The application itself is a command-line driven application suitable for HTPC and/or headless use."

Impressive work reading through the rest of this thread!
#72
(2012-12-13, 18:59)Turrican2 Wrote: Maybe this could be interesting:

http://themaister.net/retroarch.html

From the Page:

"RetroArch is a multi-system emulator for Linux, Windows, Mac OS X and *BSD. It is formerly known as SSNES. Its design and background is quite different than most other emulators as RetroArch does not implement an emulation core itself. RetroArch talks to libretro, a generic emulator core API. This means that RetroArch is core agnostic, and it does not care which emulator core is running.RetroArch believes in modularity. The application itself is a command-line driven application suitable for HTPC and/or headless use."

RetroArch is merely a frontend that makes use of the libretro API, that's all.

The way I see it, RetroPlayer is basically XBMC's RetroArch.

Back on topic: I don't wanna bother garbear cause this isn't exactly retroplayer related but, what's usually used to compile these cores (in this case, on Windows)?

Some ports dont have MSVC project files and I was thinking of using MinGW.
#73
(2012-12-13, 19:56)paendorz Wrote: RetroArch is merely a frontend that makes use of the libretro API, that's all.

The way I see it, RetroPlayer is basically XBMC's RetroArch.

Back on topic: I don't wanna bother garbear cause this isn't exactly retroplayer related but, what's usually used to compile these cores (in this case, on Windows)?

Some ports dont have MSVC project files and I was thinking of using MinGW.

Oh ok, thank you, no harm done I hope.
#74
(2012-12-13, 19:56)paendorz Wrote: RetroArch is merely a frontend that makes use of the libretro API, that's all.

The way I see it, RetroPlayer is basically XBMC's RetroArch.

Back on topic: I don't wanna bother garbear cause this isn't exactly retroplayer related but, what's usually used to compile these cores (in this case, on Windows)?

Some ports dont have MSVC project files and I was thinking of using MinGW.

I'm guessing the MinGW build system was reused when porting new emulators, so most will require MinGW to compile. It's specific to each emulator, so some may have MSVC project files. For windows binaries I think I used the RetroArch Phoenix updater to download pre-compiled DLLs. I compiled linux binaries myself: emulators.zip.

Edit: And yes, RetroPlayer is XBMC's RetroArch. Also, if there's any confusion, "libretro" is an API, not a library
#75
(2012-12-14, 02:36)garbear Wrote: For windows binaries I think I used the RetroArch Phoenix updater to download pre-compiled DLLs. I compiled linux binaries myself: emulators.zip.

Yeah, already did that but thanks for the tip. I think it grabs automated builds from the libretro-super script, though I could be wrong. (If it helps anyone, I think it fetches these files).

Thing is, there are lots of libretro ports nowadays and not all of them are included there, that's why I'm compiling some of them myself.

I'll try MinGW then. Tongue
  • 1
  • 3
  • 4
  • 5(current)
  • 6
  • 7
  • 44

Logout Mark Read Team Forum Stats Members Help
Integrated Video Game Emulators22