├── purge-build-directory.sh ├── purge-install-directory.sh ├── display-kodi-source-status.sh ├── display-kodi-source-git-tags.sh ├── set-kodi-source-version.sh ├── kodi-matrix.sh ├── purge-addons-build-directory.sh ├── update-kodi-source-code.sh ├── configuration.sh ├── install-kodi.sh ├── configure-kodi-ubuntu-focal.sh ├── configure-kodi-debian-unstable.sh ├── install-build-dependencies-ubuntu-focal.sh ├── install-build-dependencies-debian-unstable.sh └── README.md /purge-build-directory.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Completely deletes the Kodi build directory 4 | 5 | source configuration.sh 6 | echo "Purging build directory ${KODI_BUILD_DIR}" 7 | rm -rf ${KODI_BUILD_DIR} 8 | -------------------------------------------------------------------------------- /purge-install-directory.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Completely deletes the Kodi build directory 4 | 5 | source configuration.sh 6 | echo "Purging build directory ${KODI_INSTALL_DIR}" 7 | rm -rf ${KODI_INSTALL_DIR} 8 | -------------------------------------------------------------------------------- /display-kodi-source-status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source configuration.sh 4 | current_dir=`pwd` 5 | echo "Current directory $current_dir" 6 | echo "Kodi source directory $KODI_SOURCE_DIR" 7 | git -C $KODI_SOURCE_DIR status 8 | -------------------------------------------------------------------------------- /display-kodi-source-git-tags.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Displays tags in Kodi source code. 4 | 5 | source configuration.sh 6 | current_dir=`pwd` 7 | echo "Current directory $current_dir" 8 | echo "Kodi source directory $KODI_SOURCE_DIR" 9 | git -C $KODI_SOURCE_DIR tag 10 | -------------------------------------------------------------------------------- /set-kodi-source-version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source configuration.sh 4 | current_dir=`pwd` 5 | echo "Current directory $current_dir" 6 | echo "Kodi source directory $KODI_SOURCE_DIR" 7 | echo "Kodi tag $KODI_SOURCE_TAG" 8 | git -C $KODI_SOURCE_DIR checkout $KODI_SOURCE_TAG 9 | -------------------------------------------------------------------------------- /kodi-matrix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This wrapper script is used if you want to have a custom Kodi data directory. 4 | 5 | # Mapped to special://home/, default is ~/.kodi 6 | export KODI_DATA=/home/kodi/.kodi-matrix 7 | 8 | # Execute Kodi 9 | /home/kodi/bin-kodi-matrix/lib/kodi/kodi-x11 10 | -------------------------------------------------------------------------------- /purge-addons-build-directory.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Completely deletes the addons build directory inside the Kodi source directory. 4 | 5 | source configuration.sh 6 | CONTROL_FILE=${KODI_SOURCE_DIR}/tools/depends/target/binary-addons/.installed-native 7 | BIN_ADDON_DIR=${KODI_SOURCE_DIR}/tools/depends/target/binary-addons/native/ 8 | echo "Removing control file ${CONTROL_FILE}" 9 | rm -rf ${CONTROL_FILE} 10 | echo "Removing addon build dir ${BIN_ADDON_DIR}" 11 | rm -rf ${BIN_ADDON_DIR} 12 | -------------------------------------------------------------------------------- /update-kodi-source-code.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | source configuration.sh 3 | current_dir=`pwd` 4 | echo "Current directory $current_dir" 5 | echo "Kodi source directory $KODI_SOURCE_DIR" 6 | cd $KODI_SOURCE_DIR 7 | # Restore this file. Otherwise `git checkout` will fail because local changes 8 | # will be overwritten error. It is safe to execute `git restore` multiple times. 9 | git restore cmake/addons/bootstrap/repositories/binary-addons.txt 10 | git checkout master 11 | git pull --all 12 | cd $current_dir 13 | -------------------------------------------------------------------------------- /configuration.sh: -------------------------------------------------------------------------------- 1 | # Kodi install configuration file. 2 | # No trailing / in these variables. 3 | 4 | # Kodi source directory. 5 | KODI_SOURCE_DIR=/home/kodi/kodi-source 6 | 7 | # Kodi old stable version using Python 2. 8 | # KODI_SOURCE_TAG=18.9-Leia 9 | # KODI_BUILD_DIR=/home/kodi/kodi-build-leia 10 | # KODI_INSTALL_DIR=/home/kodi/kodi-bin-leia 11 | 12 | # Kodi stable version using Python 3. 13 | KODI_SOURCE_TAG=19.1-Matrix 14 | KODI_BUILD_DIR=/home/kodi/kodi-build 15 | KODI_INSTALL_DIR=/home/kodi/kodi-bin 16 | -------------------------------------------------------------------------------- /install-kodi.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Install Kodi into local directory. 4 | 5 | source configuration.sh 6 | echo "Kodi source directory ${KODI_SOURCE_DIR}" 7 | echo "Kodi build directory ${KODI_BUILD_DIR}" 8 | echo "Kodi install directory ${KODI_INSTALL_DIR}" 9 | 10 | cd ${KODI_BUILD_DIR} 11 | make install 12 | 13 | echo "Installation finished." 14 | echo "Kodi source directory ${KODI_SOURCE_DIR}" 15 | echo "Kodi build directory ${KODI_BUILD_DIR}" 16 | echo "Kodi install directory ${KODI_INSTALL_DIR}" 17 | -------------------------------------------------------------------------------- /configure-kodi-ubuntu-focal.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Creates build directory and configures Kodi build. 4 | 5 | source configuration.sh 6 | echo "Kodi source directory $KODI_SOURCE_DIR" 7 | echo "Kodi build directory $KODI_BUILD_DIR" 8 | echo "Kodi install directory $KODI_INSTALL_DIR" 9 | 10 | # Create build directory. 11 | mkdir -p $KODI_BUILD_DIR 12 | cd $KODI_BUILD_DIR 13 | 14 | cmake $KODI_SOURCE_DIR -DCMAKE_INSTALL_PREFIX=$KODI_INSTALL_DIR -DENABLE_INTERNAL_FLATBUFFERS=ON -DENABLE_INTERNAL_FMT=ON -DENABLE_INTERNAL_RapidJSON=ON 15 | echo "Configuration finished." 16 | echo "Kodi source directory ${KODI_SOURCE_DIR}" 17 | echo "Kodi build directory ${KODI_BUILD_DIR}" 18 | echo "Kodi install directory ${KODI_INSTALL_DIR}" 19 | -------------------------------------------------------------------------------- /configure-kodi-debian-unstable.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Creates build directory and configures Kodi build. 4 | 5 | source configuration.sh 6 | echo "Kodi source directory $KODI_SOURCE_DIR" 7 | echo "Kodi build directory $KODI_BUILD_DIR" 8 | echo "Kodi install directory $KODI_INSTALL_DIR" 9 | 10 | # Create build directory. 11 | mkdir -p $KODI_BUILD_DIR 12 | cd $KODI_BUILD_DIR 13 | 14 | # Flatbuffers is now on Debian Unstable (March 2020). 15 | # Options: 16 | # -DVERBOSE=ON 17 | # -DENABLE_INTERNAL_FLATBUFFERS=ON 18 | # -DENABLE_INTERNAL_FFMPEG=ON Was required in Matrix. 19 | # -DAPP_RENDER_SYSTEM=gl Required in Matrix, could be gl or gles. 20 | # 21 | # Having extra -D arguments in cmake seems to do no harm. 22 | 23 | # Kodi Matrix 24 | cmake $KODI_SOURCE_DIR -DCMAKE_INSTALL_PREFIX=$KODI_INSTALL_DIR -DAPP_RENDER_SYSTEM=gl 25 | 26 | echo "Configuration finished." 27 | echo "Kodi source directory ${KODI_SOURCE_DIR}" 28 | echo "Kodi build directory ${KODI_BUILD_DIR}" 29 | echo "Kodi install directory ${KODI_INSTALL_DIR}" 30 | -------------------------------------------------------------------------------- /install-build-dependencies-ubuntu-focal.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Install Kodi build dependencies for Ubuntu Focal Fossa. 4 | # 5 | 6 | # Install build tools 7 | apt install \ 8 | build-essential debhelper \ 9 | autoconf automake autopoint gettext autotools-dev cmake curl \ 10 | default-jre doxygen gawk gdc gperf libtool \ 11 | lsb-release swig unzip yasm zip ccache 12 | 13 | # Python stuff 14 | apt install python-dev python-pil 15 | 16 | # Install build libraries (alphabetical order0 17 | apt install \ 18 | libasound2-dev \ 19 | libass-dev \ 20 | libavahi-client-dev \ 21 | libavahi-common-dev \ 22 | libbluetooth-dev \ 23 | libbluray-dev \ 24 | libbz2-dev \ 25 | libcdio-dev \ 26 | libcec-dev \ 27 | libcrossguid-dev \ 28 | libcurl4-openssl-dev \ 29 | libcwiid-dev \ 30 | libdbus-1-dev \ 31 | libdrm-dev \ 32 | libegl1-mesa-dev \ 33 | libenca-dev \ 34 | libflac-dev \ 35 | libfontconfig1-dev \ 36 | libfreetype6-dev \ 37 | libfribidi-dev \ 38 | libfstrcmp-dev \ 39 | libgcrypt20-dev \ 40 | libgif-dev \ 41 | libgl1-mesa-dev \ 42 | libgles2-mesa-dev \ 43 | libglu1-mesa-dev \ 44 | libgnutls28-dev \ 45 | libgpg-error-dev \ 46 | libiso9660-dev \ 47 | libjpeg-dev \ 48 | liblcms2-dev \ 49 | liblircclient-dev \ 50 | libltdl-dev \ 51 | liblzo2-dev \ 52 | libmicrohttpd-dev \ 53 | libmysqlclient-dev \ 54 | libnfs-dev \ 55 | libogg-dev \ 56 | libp8-platform-dev \ 57 | libpcre3-dev \ 58 | libplist-dev \ 59 | libpng-dev \ 60 | libpulse-dev \ 61 | libsmbclient-dev \ 62 | libsqlite3-dev \ 63 | libssl-dev \ 64 | libtag1-dev \ 65 | libtiff5-dev \ 66 | libtinyxml-dev \ 67 | libudev-dev \ 68 | libva-dev \ 69 | libvdpau-dev \ 70 | libvorbis-dev \ 71 | libxmu-dev \ 72 | libxrandr-dev \ 73 | libxslt1-dev \ 74 | libxt-dev \ 75 | rapidjson-dev \ 76 | uuid-dev \ 77 | zlib1g-dev 78 | -------------------------------------------------------------------------------- /install-build-dependencies-debian-unstable.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Install Kodi build dependencies for Debian unstable (October 2018). 4 | # 5 | 6 | # Install build tools (alphabetical order) 7 | apt install \ 8 | build-essential \ 9 | autoconf \ 10 | automake \ 11 | autopoint \ 12 | autotools-dev \ 13 | ccache \ 14 | clang-format \ 15 | cmake \ 16 | curl \ 17 | debhelper \ 18 | default-jre \ 19 | doxygen \ 20 | gawk \ 21 | gdc \ 22 | gettext \ 23 | gperf \ 24 | libtool \ 25 | lsb-release \ 26 | nasm \ 27 | swig \ 28 | unzip \ 29 | yasm \ 30 | zip 31 | 32 | # Python 3 stuff (Matrix) 33 | apt install python3-dev python3-pil python3-pip 34 | 35 | # Install build libraries (alphabetical order) 36 | # libavahi-compat-libdnssd-dev -> MDNS -> dns_sd.h (currently does not work, MDNS not found) 37 | apt install \ 38 | libasound2-dev \ 39 | libass-dev \ 40 | libavahi-client-dev \ 41 | libavahi-common-dev \ 42 | libavahi-compat-libdnssd-dev \ 43 | libavahi-core-dev \ 44 | libbluetooth-dev \ 45 | libbluray-dev \ 46 | libbz2-dev \ 47 | libcap-dev \ 48 | libcdio-dev \ 49 | libcec-dev \ 50 | libcrossguid-dev \ 51 | libcurl4-openssl-dev \ 52 | libcwiid-dev \ 53 | libdav1d-dev \ 54 | libdbus-1-dev \ 55 | libegl1-mesa-dev \ 56 | libenca-dev \ 57 | libflac-dev \ 58 | libflatbuffers-dev \ 59 | libfontconfig-dev \ 60 | libfreetype6-dev \ 61 | libfribidi-dev \ 62 | libfstrcmp-dev \ 63 | libfmt-dev \ 64 | libgcrypt20-dev \ 65 | libgif-dev \ 66 | libgles2-mesa-dev \ 67 | libgl1-mesa-dev \ 68 | libglu1-mesa-dev \ 69 | libgnutls28-dev \ 70 | libgpg-error-dev \ 71 | libgtest-dev \ 72 | libiso9660-dev \ 73 | libiso9660++-dev \ 74 | libjpeg-dev \ 75 | liblcms2-dev \ 76 | liblirc-dev \ 77 | libltdl-dev \ 78 | liblzo2-dev \ 79 | libmicrohttpd-dev \ 80 | libmariadb-dev-compat \ 81 | libmariadb-dev \ 82 | libnfs-dev \ 83 | libogg-dev \ 84 | libpcre3-dev \ 85 | libplist-dev \ 86 | libpng-dev \ 87 | libpulse-dev \ 88 | libp8-platform-dev \ 89 | libsmbclient-dev \ 90 | libspdlog-dev \ 91 | libsqlite3-dev \ 92 | libssl-dev \ 93 | libtag1-dev \ 94 | libtiff5-dev \ 95 | libtinyxml-dev \ 96 | libudev-dev \ 97 | libudfread-dev \ 98 | libunistring-dev \ 99 | libva-dev \ 100 | libvdpau-dev \ 101 | libvorbis-dev \ 102 | libxmu-dev \ 103 | libxrandr-dev \ 104 | libxslt1-dev \ 105 | libxt-dev \ 106 | rapidjson-dev \ 107 | uuid-dev \ 108 | waylandpp-dev \ 109 | wayland-protocols \ 110 | zlib1g-dev 111 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Compile and install Kodi on Debian/Ubuntu distributions # 2 | 3 | ## Table of Contents 4 | 5 | * **[Readme me first](#readme-me-first)** 6 | * **[Cloning this repository](#cloning-this-repository)** 7 | * **[Clone and prepare Kodi source code](#clone-and-prepare-kodi-source-code)** 8 | * **[Compile and installing Kodi for the first time](#compile-and-installing-kodi-for-the-first-time)** 9 | * **[Compiling the Kodi binary addons](#compiling-the-kodi-binary-addons)** 10 | * **[Update Kodi](#update-kodi)** 11 | * **[Notes](#notes)** 12 | * **[Current bugs](#current-bugs)** 13 | 14 | ## WARNING 15 | 16 | Currently there is a problem when building the binary addons for Kodi Matrix with the scripts `build-binary-addons-*.sh`. I am investigating the issue and will publish a fix when ready. 17 | 18 | ## Readme me first ## 19 | 20 | The **Kodi source directory**, the **Kodi build directory**, the **Kodi Install directory** and the **Kodi build tag**, AKA the version you want to compile, can be configured in the file `configuration.sh`. 21 | ``` 22 | # Kodi install configuration file. No trailing / in these variables. 23 | 24 | # Kodi source directory. 25 | KODI_SOURCE_DIR=/home/kodi/kodi-source 26 | KODI_SOURCE_TAG=18.9-Leia 27 | KODI_BUILD_DIR=/home/kodi/kodi-build 28 | KODI_INSTALL_DIR=/home/kodi/kodi-bin 29 | ``` 30 | 31 | For the time being do not use spaces in the directory names and do not include a tralining `/` in the directory names. The above example is for a Linux user name `kodi` whose home directory is `/home/kodi`. Following with the example: 32 | 33 | * Kodi source code is located in `/home/kodi/kodi-source/`. 34 | 35 | * Kodi temporary build directory is `/home/kodi/kodi-build/`. You can safely 36 | delete it once Kodi has been compiled and installed. 37 | 38 | * Kodi will be installed in the directory `/home/kodi/kodi-bin/`. 39 | 40 | * Kodi user data directory is `/home/kodi/.kodi/` by default. This directory will be created automatically the first time you execute Kodi. 41 | 42 | Once compiled and installed, you can execute Kodi in several ways: 43 | ``` 44 | $ /home/kodi/kodi-bin/bin/kodi 45 | $ /home/kodi/kodi-bin/bin/kodi-standalone 46 | $ /home/kodi/kodi-bin/lib/kodi/kodi-x11 47 | ``` 48 | 49 | The actual Kodi executable is `/home/kodi/kodi-bin/lib/kodi/kodi-x11`. The first two files are shell scripts that call the actual Kodi executable `kodi-x11`. 50 | 51 | ## Cloning this repository ## 52 | 53 | If you don't have `git` installed then execute as `root` user: 54 | ``` 55 | # apt-get install git 56 | ``` 57 | 58 | To clone this repository: 59 | ``` 60 | $ cd /home/kodi/ 61 | $ git clone https://github.com/Wintermute0110/Kodi-Install.git 62 | ``` 63 | 64 | The Kodi compilation tools will be cloned into the directory 65 | `/home/kodi/Kodi-Install/`. 66 | 67 | 68 | ## Clone and prepare Kodi source code ## 69 | 70 | As the `kodi` user clone the Kodi source code. This will take a while: 71 | ``` 72 | $ cd /home/kodi/ 73 | $ git clone https://github.com/xbmc/xbmc.git kodi-source 74 | ``` 75 | 76 | If you want to compile a particular version of Kodi first have a look at the tags in the repository: 77 | ``` 78 | $ cd /home/kodi/kodi-source/ 79 | $ git tag 80 | ... 81 | 16.0-Jarvis 82 | 17.0-Krypton 83 | 17.6-Krypton 84 | 18.0-Leia 85 | 18.9-Leia 86 | 19.0-Matrix 87 | 19.1-Matrix 88 | ... 89 | $ 90 | ``` 91 | 92 | Each tag corresponds to a released version of Kodi. Now, tell `git` to set the Kodi source code to the version you want: 93 | ``` 94 | $ cd /home/kodi/kodi-source/ 95 | $ git checkout 19.1-Matrix 96 | ``` 97 | 98 | The Kodi source code is now ready for compilation. 99 | 100 | 101 | ## Compile and installing Kodi for the first time ## 102 | 103 | First you need to install the build dependencies required to compile Kodi. As `root` execute: 104 | ``` 105 | # cd /home/kodi/Kodi-Install/ 106 | # ./install-build-dependencies-debian.sh 107 | ``` 108 | 109 | As the `kodi` user, the Kodi build directory needs to be configured before compilation: 110 | ``` 111 | $ cd /home/kodi/Kodi-Install/ 112 | $ ./configure-kodi.sh 113 | ``` 114 | 115 | Now it's time to compile Kodi. This will take a while (about 15 minutes on a fast computer): 116 | ``` 117 | $ ./build-kodi-x11.sh 118 | ``` 119 | 120 | Finally, to install Kodi, the Kodi binary addons and the required runtime files like the default skin execute: 121 | ``` 122 | $ ./install-kodi.sh 123 | ``` 124 | 125 | The first time you execute Kodi the userdata directory `/home/.kodi/` will be created. 126 | 127 | Now that Kodi is installed you can safely delete the Kodi build directory to save disk space: 128 | ``` 129 | $ ./purge-build-directory.sh 130 | ``` 131 | 132 | Do not purge the build directory before compiling the binary addons. 133 | 134 | 135 | ## Compiling the Kodi binary addons 136 | 137 | To compile all the binary addons: 138 | ``` 139 | $ cd /home/kodi/Kodi-Install/ 140 | $ ./build-binary-addons-all.sh 141 | ``` 142 | 143 | or instead execute this if you are not going to use Kodi personal video 144 | recorder (PVR) features. This command compiles all binary addons except 145 | the PVR addons: 146 | ``` 147 | $ cd /home/kodi/Kodi-Install/ 148 | $ ./build-binary-addons-no-pvr.sh 149 | ``` 150 | 151 | the binary addons are automatically installed in `/home/kodi/bin-kodi/` after compilation. 152 | 153 | 154 | To compile the Libretro cores (Kodi addons that let you play games) first edit the file 155 | `/home/kodi/KodiInstall/build-binary-addons-libretro-cores.sh` and comment/uncomment 156 | the Libretro cores you want to build. Note that building **all** the cores takes about 5/6 157 | hours on a fast machine. Each MAME core takes 1 hour! Build only the cores you plan to use. 158 | ``` 159 | # --- Build the addons --- 160 | # --- Uncomment the cores you want to build. Cores are shorted alphabetically. 161 | # --- For a list of all cores see http://mirrors.kodi.tv/addons/leia/ 162 | # --- and look for the game.libretro.* addons. 163 | # compile_core game.libretro.2048 164 | # compile_core game.libretro.4do 165 | compile_core game.libretro.beetle-bsnes 166 | # compile_core game.libretro.beetle-gba 167 | ... 168 | ``` 169 | 170 | Finally, compile the Libretro cores: 171 | ``` 172 | $ cd /home/kodi/Kodi-Install/ 173 | $ ./build-binary-addons-libretro-cores.sh 174 | ``` 175 | 176 | the Libretro cores addons are automatically installed in `/home/kodi/bin-kodi/` after compilation. 177 | 178 | ## Update Kodi ## 179 | 180 | Update Kodi source code: 181 | ``` 182 | $ cd /home/kodi/kodi-source/ 183 | $ git checkout master 184 | $ git pull 185 | ``` 186 | 187 | If you wish to set a specific version: 188 | ``` 189 | $ git checkout 18.1-Leia 190 | ``` 191 | 192 | Then configure, compile and install Kodi again: 193 | ``` 194 | $ cd /home/kodi/Kodi-Install/ 195 | $ ./configure-kodi.sh 196 | $ ./build-kodi-x11.sh 197 | $ ./install-kodi.sh 198 | $ ./build-binary-addons-no-pvr.sh 199 | $ ./build-binary-addons-libretro-cores.sh 200 | ``` 201 | 202 | * If you plan to update Kodi frequently then do not execute `purge-build-directory.sh` to save 203 | compilation time (only files changed will be recompiled). 204 | 205 | * If you experience problems executing `configure-kodi.sh` when re-compiling try to execute 206 | `purge-build-directory.sh`. 207 | 208 | ## Notes ## 209 | 210 | * Compiling the binary addons with `build-binary-addons-no-pvr.sh` installs them in `/home/kodi/bin-kodi/` even if Kodi has not been installed before. 211 | 212 | * The addons `game.controller.*` are not binary addons. They can be downloaded with the Kodi addon manager. 213 | 214 | * Kodi is built out-of-source but the binary addons are build inside the Kodi source. 215 | 216 | * Executing `build-binary-addons-no-pvr.sh` or `build-binary-addons-libretro-cores.sh` updates the binary addons source code if it has been changed? 217 | 218 | * After a fresh installation all the binary addons are **disabled**. They must be enabled in `Settings` -> `Addons` -> `My addons`. 219 | 220 | * If a Libretro core is not installed the extensions it supports are not shown in the Games source filesystem browser. Libretro core addons must installed/enabled first. 221 | 222 | 223 | ## Current bugs ## 224 | 225 | * If I execute any ROM I get the following dialog window "Add-on is incompatible due to unmet dependencies. Missing: game.controller.genesis.6button, game.controller.genesis.mouse" 226 | 227 | Kodi does not install `game.controller.*` addons automatically. Manually installing the addons solves the problem. 228 | 229 | * If there is no joystick plugged in then emulation does not start. 230 | 231 | * In the Kodi Wiki `https://kodi.wiki/view/Game_add-ons` the following `You will need to place them into the System Directory (linux example for pcsx bios files: ~/.kodi/userdata/addon_data/game.libretro.pcsx-rearmed/system/ ).` is wrong. The correct directory is `~/.kodi/userdata/addon_data/game.libretro.pcsx-rearmed/resources/system/` 232 | 233 | * If joystick is hot unplugged Kodi correctly detects that is has been unplugged and emulation does not start anymore. Interestingly, in Windows emulation starts when there is no gamepad, only keyboard. 234 | 235 | ``` 236 | 22:46:37.511 T:140428854687488 ERROR: AddOnLog: Joystick Support: ScanEvents: failed to read joystick "Xbox 360 Wireless Receiver" on /dev/input/js0 - 19 (No such device) 237 | 22:46:38.921 T:140429205022464 ERROR: Previous line repeats 86 times. 238 | 22:46:38.921 T:140429205022464 NOTICE: UnregisterRemovedDevices - device removed from joystick/peripheral.joystick/0: Xbox 360 Wireless Receiver (0000:0000) 239 | ``` 240 | 241 | * If joystick is hot plugged Kodi detects it OK. Emulation starts when a ROM is clicked. Interestingly, whenever a joystick is plugged emulation starts correctly even if controlling Kodi with the keyboard. 242 | 243 | ``` 244 | 22:48:47.805 T:140429205022464 NOTICE: Register - new joystick device registered on addon->peripheral.joystick/1: Xbox 360 Wireless Receiver 245 | ``` 246 | 247 | * Aspect ratio in core `beetle_psx` is wrong in Stretch mode Normal. Stretch mode 4:3 seems to work OK. 248 | 249 | * I cannot use the gamepad at all in `beetle_psx`, not even after remapping the controllers `PlayStation Dual Analog` and `PlayStation Dual Shock`. 250 | 251 | * Core `prboom` crashes if `prboom.wad` is not found. Kodi crashes as well. 252 | 253 | * Speed of `prboom` core is totally wrong. Core must be run at 35 FPS, otherwise speed is wrong. This problem also happens in Retroarch. A core that does frame interpolation like **Crispy Doom** or **PrBoom+** is required. 254 | --------------------------------------------------------------------------------