If you came here for support, do this one thing.
POST A DEBUG LOG
POST A DEBUG LOG
RetroPlayer is a new player core for Kodi Entertainment Center. It is similar to the video player and audio visualizer, but it plays games instead of movies and music.
Design and Components
- RetroPlayer: Player core that plays games on the virtual file system (VFS) using game add-ons. Despite its name, it can play all types of games, not just retro ones. It borrows many ideas from the video player. Games can be paused, fast-forwarded, and rewound in realtime (watch little Mario run backwards!). Instead of bookmarks, save states are created and allow for quick browsing of the game's play history. 3D support (for N64, etc) is being worked on.
- Game Add-ons: Standalone games, emulators and game streamers. Just-In-Time Installation[tm] lets you hit enter on a game with no emulators installed. Kodi then offers a list of compatible emulators, downloads the selected one and uses it to launch the game. From day one, RetroPlayer has been compatible with the libretro ecosystem. Game streamers could support streaming protocols like Limelight.
- Peripheral Add-ons: A way to interface DIY hardware with Kodi. Don't have a driver for your DIY controller or media reader? Implement a few functions and it can be used in Kodi.
- Joystick input: Various joystick APIs (DirectX, XInput, SDL, etc.) provide access to raw hardware events, like button presses and axis positions. The joystick input system maps these to physical elements, such as the X button, left trigger or right analog stick. Gesture recognition (adapted from touch input) allows holding, double-pressing, analog stick rotation and (someday) accelerometer gestures. If someone helps with a controller configuration utility, this is possible:
- Media readers: Plugging a cartridge into Retrode-like devices can display game metadata and automatically launch the game. Removing a cartridge from the media reader can take a save-state so that the next time the game is inserted, gameplay begins from where it left off. Games can be cached indefinitely, so there is no need to insert the cartridge a second time (although it's probably quicker than browsing the library for the cached game). Game filenames (obviously) aren't available, so game metadata is extracted from the ROM itself using PyRomInfo.
- Game library: Games offer new ways of interacting with media libraries: box art, game trailers, gameplay videos, system intros, save states, and more. Games don't have to be on your computer; plugins can provide games that can be scanned into the library. Free clones of virtually every popular game can be streamed (and cached) directly from public domain ROM sites. If binary add-ons could provide games, then Steam libraries on the network could be scanned into the game library.
- Network play: The details for this need to be worked out. Netplay for emulators can be trivially implemented by extending the Game API over a tcp transport. One computer hosts the emulator and transfers video, audio and input. Two frontends (Kodi instances) connect, one over the DLL interface and one over the network. Connecting to peers could be done through the "Play using..." button.
- Shaders: Let's start brainstorming what we want and how this could work. A CRT shader would be cool.
Fork from https://github.com/garbear/xbmc and start coding!