Game development: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
Line 42: Line 42:


== Subsystem Information ==
== Subsystem Information ==
[[File:RetroPlayerTransparent.png|400px|right]]
*[[Game API]] - ?
*[[Game API]] - ?
**[[Game Client Addons]] - ?
**[[Game Client Addons]] - ?

Revision as of 14:58, 22 April 2015

Home icon grey.png   ▶ Development ▶ Game development
Emblem-important-yellow.png NOTICE:
Kodi-Game branch has not been merged into Kodi mainline. As such, this is a work in progress, and many things are subject to changes.
Incomplete.png INCOMPLETE:
This page or section is incomplete. Please add information or correct uncertain data which is marked with a ?

This page is about Kodi-Game branch of Kodi which tries to implement a gaming environment for Kodi. The goal is to start, stop and play video games like you can currently play video files. Kodi-Game constist of several addons and subsystems which should be described on this page to minimize confusion. The current version based on Kodi 15alpha2 introduced a lot of changes for this reason information for 13.2 or previous versions you can find on the forum may not apply. Official repository is on github.

FAQ

Answers to some questions you may have.

Is it possible to support system X on platform Y

RetroPlayer uses libretro to emulate systems. The current support matrix can be found at Game add-ons:


Status on ported currently existing game client addons for the new Game API made available in Kodi Game branch.

Stop hand.png These pages are maintained by the community, it only goes as far as fair use, and this should not be considered as an endorsement for copyright infringement. The information on this page might also contain errors or be outdated. It might also contain ants, and their antsy antics. *


Lutris

Lutris is a game manager for GNU/Linux with support for most popular emulators, Wine and Steam. It can be integrated into Kodi with the Lutris-Kodi addon.


Libretro cores

The Game API in the Kodi Game branch has a Libretro wrapper which is 1:1 compatibility with the libretro API, so all libretro cores are valid game add-ons. Libretro itself is a well defined interface to handle the communication between a frontend (Kodi with RetroPlayer) and an Emulator Core (e.g. nestopia).

Here is a list of Libretro cores, of which most already have been ported into game add-ons for Kodi, at least as an initial port, (you can see the status of each libretro core in the table below):


* License is GPLv2 compatible

If something in the core matrix needs to be changed, leave a message in the forum.


BIOS requirements

Some libretro cores require BIOS files to work, and those BIOSes must be placed in the system folder (with each BIOS being a binary file). For now you will need to find those BIOS files by yourself and and copy them to your system yourself as it may not be fully legal for Team-Kodi to provide them bundled with each libretro core that needs them. The reason for this is that these BIOSes are usually considered to be in an legal gray-zone and can be a little difficult to aquire, at least legally. For example, since all PlayStation emulators, like Beetle PSX & PCSX ReARMed, require a closed source BIOS file to work, and its BIOS file must be placed in the system folder on your emulator software (libretro cores in this case).


BIOS requirement table

The table below lists all the required BIOSes which some emulators requires for each each emulated system, so if a systems BIOS is not listed here then it means that it should not require a BIOS file.

Warning! Linux is a case sensitive system. Please name BIOS files exactly according to this table.
System BIOS file MD5 Comment
3DO - 3DO panafz10.bin 51f2f43ae2f3508a14d9f56597e2d3ce
Atari - 7800 7800 BIOS (U).rom 0763f1ffb006ddbe32e52d497ee848ae
Atari - Lynx lynxboot.img FCD403DB69F54290B51035D82F835E7B
Final Burn Alpha BIOS goes next to the ROMs
DOOM BIOS goes next to the ROMs
Magnavox - Odyssey2 o2rom.bin 562d5ebf9e030a40d6fabfc2f33139fd
MAME 2003 BIOS goes next to the ROMs
NEC - PC Engine - TurboGrafx 16 syscard3.pce 0754f903b52e3b3342202bdafb13efa5
NEC - PC-FX pcfx.rom 08e36edbea28a017f79f8d4f7ff9b6d7
Nintendo - Famicom Disk System disksys.rom ca30b50f880eb660a320674ed365ef7a
Nintendo - Game Boy Advance gba_bios.bin a860e8c0b6d573d191e4ec7db1b1e4f6
Phillips - Videopac+ o2rom.bin ? Same as Magnavox Oddessy2?
Sega - Dreamcast dc_boot.bin e10c53c2f8b90bab96ead2d368858623 Goes under system/dc/
Sega - Dreamcast dc_flash.bin 0a93f7940c455905bea6e392dfde92a4 Goes under system/dc/
Sega - Mega Drive - Genesis bios_CD_J.bin 278a9397d192149e84e820ac621a8edd Japan
Sega - Mega Drive - Genesis bios_CD_U.bin 2efd74e3232ff260e371b99f84024f7f USA
Sega - Mega Drive - Genesis bios_CD_E.bin e66fa1dc5820d254611fdcdba0662372 Europe
Sega - Saturn saturn_bios.bin f273555d7d91e8a5a6bfd9bcf066331c
Sony - PlayStation scph5500.bin 8dd7d5296a650fac7319bce665a6a53c Japan
Sony - PlayStation scph5501.bin 490f666e1afb15b7362b406ed1cea246 USA (Can be renamed from scph7003.bin)
Sony - PlayStation scph5502.bin 32736f17079d0b2b7024407c39bd3050 Europe
Sony - PlayStation Portable ppge_atlas.zim a93fc411c1ce7d001a2a812643c70085 Goes under system/PPSSPP/
Note that most of these BIOSes are not reverse engineered releases but binary ROMs ripped from the EEPROM inside of an actual game console system hardware, so they are proprietary binary blobs (precompiled software binaries) which might still be under copyright depending on the console age and origins. It may be that some of those BIOSes can be seen as fair use since these game consoles are no longer sold and there is probably no commercial value in them, but that is something that the XBMC Foundation needs to talk about with attorneys before being able to distributing such BIOS files as resource add-ons or bundled with each libretro core in an official repository.


What is a BIOS?

A BIOS (Basic Input Output System) is the startup code of a system and is required for certain emulators to work.


Where do I place the BIOS files?

You will need to place them into the System Directory (linux example for pcsx bios files: ~/.kodi/userdata/addon_data/game.libretro.pcsx-rearmed/resources/system/ ).

Alternatively, you can place the into your Content Directory next to the game you are going to play.

Remember, since Linux is a case sensitive system, you have to rename the BIOS files according to this table so that the libretro cores will be able to find the BIOS files.

Why isn’t my BIOS working?

  1. Make sure the BIOS files are placed into the correct directory (see above).
  2. Make sure they are named correctly so the core can identify them.
  3. Make sure it’s the correct version/region of a BIOS.
  4. Make sure your files are not corrupted (bad source, broken download, etc.).
  5. Make sure to check the log for any errors.


FAQ

Beetle PSX

Controller not working in some games?

Some PSX games don't recognize correctly Analog PSX controller. To solve the issue go to Setting > Adavanced Settings and disable "DualShock Analog button toggle" setting. Your Gamepad should be then recognized correctly.


See also


Return to top

mupen64plus (n64) is not working

Mupen64plus and some other emulators (PSP, Dolphin) requires OpenGL / OpenGL ES rendering extensions to libretro which is currently not implemented in the current upstream kodi-game branch. See a1rwulf's repository for his "retrogl" implementations if you would like to help the work being done for these systems.

End-users (non-programmers)

You are probably reading this because you would like to download a finished Kodi application or complete OpenELEC image with nice out-of-the-box experience. We are sorry but such build does not yet exist at the moment. This page will be updated with links to available builds if and when such release become available.

You can help still help if you are a more experienced computer user and are able to compile Kodi-Game branch yourself, please see the developers sections below. Also, spread the word about this project to your friends and family, we are sure they will enjoy it too as it matures.

Developers (programmers)

If you are a C/C++ developer and like to help then great! Please checkout the Compiling Kodi-Game article to get started. Currently this build instruction is for Linux operating-systems on x86/x86-64 based hardware only.

You should be proficient in C/C++ programming language, and although not really required knowledge of OpenGL or other multimedia programming is a plus, as well as prior cross-platform or porting development experience.

Who is who

RetroPlayer

Project name for all infrastructure changes which need to be made in the Kodi source code and cannot be delivered as addons. This work also includes a highly modified input system ready for gaming requirements

Libretro

A well defined interface to handle the communication between a frontend (Kodi with RetroPlayer) and an Emulator Core (e.g. nestopia).

Emulator Core

An Emulator Core does the actual work of emulating a system. Due to the Libretro interface it is possible to re-use good working and well tested emulators for the RetroPlayer platform. Every emulator that supports libretro can easily be integrated.

Input addon

An input addon is used to map the buttons/axis on your physical input device, to the buttons/axis of your virtual system. This is necessary because different retro systems usually have different button layouts. (game.controller.<platform>)

Subsystem Information

Game add-ons

See: Game add-ons

Communication:

See also

External Links

  • ?