Skip to content
Repository containing libretro game add-ons for XBMC.
C++ Python C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
addons
libretro-extract
release
src
.gitignore
README.md

README.md

repository.libretro

This repository contains libretro game add-ons for XBMC.

Root directories

  • /addons - Auxiliary files for add-ons (icon.png, etc)
  • /libretro-extract - A program to extract information from libretro shared libraries
  • /libretro-super - libretro-super cloned repository
  • /release - Generated release archives
  • /src - Python scripts to generate release archives

Generate .zips (release archives)

To generate add-on .zips that can be installed in XBMC, run create_release.py in the /src directory. This script will clone and build the libretro-super project, then extract the compiled libretro cores and package them into .zips. This script will take a very long time to run. Once libretro-super is fetched and built, re-fetching and re-building 45 libretro cores can be disabled by commenting out the following lines in create_release.py:

#libretroSuper.Fetch()
#libretroSuper.Build()

Auxiliary files

An installable add-on archive usually contains the following items:

  • The libretro core (compiled by libretro-super)
  • addon.xml (generated by create_release.py, specifies the core's filename and info from /libretro-super/dist/info)
  • changelog.txt (not yet generated - still a work-in-progress)
  • icon.png (optional, stored in /addons)
  • fanarat.jpb (optional, stored in /addons)
  • resources/ - folder for more generated XBMC stuff, like settings.xml and language files
  • Possibly other XBMC stuff. I'm not an add-on expert

Libretro cores might need other files like BIOSes or configuration scripts. These are stored in /addons. Currently, create_release.py ignores these extra files (as we don't have any yet).

Commit release archives

Generated release archives are placed in the /release folder. When a libretro core is updated (its git hash changes) a new release archive will be generated and the old one erased. These changes should be synced to GitHub so that the new add-ons can be made available to everyone. Many new releases can be grouped into one commit. Should anyone need to access old versions of add-ons, they can be pulled from the git history.

libretro-extract

libretro-extract is a C++ and CMake program that extracts information from compiled libretro cores. It loads the DLLs and queries information like the valid extensions, supported features and (in the future) settings. Much of the code is shared with the library.xmbc.libretro wrapper library.

If a Readme is ever written for this program, you'll find it in the /libretro-extract folder.

Here is what extracted settings looked like in the old repository.libretro system: https://github.com/garbear/repository.libretro-backup/commit/39ddf68

TODO

  • Add descriptions of libretro cores to libretro-super's .info files (libretro-super/dist/info)
  • Include extra files (like BIOSes and libretro configuration scripts) stored in /addons
  • changelog.txt support, so that the history of new releases can be displayed within XBMC
  • Find more artwork for libretro cores!
You can’t perform that action at this time.