summaryrefslogtreecommitdiff
path: root/games-emulation/ppsspp
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /games-emulation/ppsspp
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'games-emulation/ppsspp')
-rw-r--r--games-emulation/ppsspp/Manifest26
-rw-r--r--games-emulation/ppsspp/files/ppsspp-1.4-O2.patch32
-rw-r--r--games-emulation/ppsspp/files/ppsspp-1.4.2-assets-lookup.patch13
-rw-r--r--games-emulation/ppsspp/metadata.xml20
-rw-r--r--games-emulation/ppsspp/ppsspp-1.4.2-r1.ebuild98
-rw-r--r--games-emulation/ppsspp/ppsspp-1.4.2.ebuild107
-rw-r--r--games-emulation/ppsspp/ppsspp-1.5.4-r1.ebuild98
-rw-r--r--games-emulation/ppsspp/ppsspp-1.5.4.ebuild107
-rw-r--r--games-emulation/ppsspp/ppsspp-9999.ebuild81
9 files changed, 582 insertions, 0 deletions
diff --git a/games-emulation/ppsspp/Manifest b/games-emulation/ppsspp/Manifest
new file mode 100644
index 000000000000..0fbf1c279269
--- /dev/null
+++ b/games-emulation/ppsspp/Manifest
@@ -0,0 +1,26 @@
+AUX ppsspp-1.4-O2.patch 1576 BLAKE2B 5831befac76d1a674c0bf453043c1ac36435c76f04ec5bd95885582c9f44c283232a9dbbea629433629d9fbfd5cc1415f5e0f47c50dbbdb9e834891280e98a49 SHA512 39f18c074e56aa823b223a78b099771257b4a5672a41c6d271cee5b817a2a63d17f57ad9f936da41185dae5b4bf2a94cc62cf92596d94b6e0660f1b05bf9ac2f
+AUX ppsspp-1.4.2-assets-lookup.patch 525 BLAKE2B e0614d010e1708cfdfeba376ece25c6bb121e79dae7243988706a80d6ef022ba52286878c9e7c868bbe23aca6c5182ca1e0c6b5baaa6e4b32e2c79eb4febd10f SHA512 9963aad44ce72e9625cdf816bf58743ab8936d8f1fd3c75ac9ddbda5e179cd71fa4d23321c42ba4d56bd472cc016a62430a0c6d8b84792e2851977a5155cbdb1
+DIST ppsspp-1.4.2-assets_lang.tar.gz 273563 BLAKE2B 54ab5cabe00ec8bd24fef62bc17894e8c663141283207eaa8ec79313d4d6131c3bb32f1d07f7e191592e973831e3852eff96d9e682d294d2cdf5967f95e0cae3 SHA512 b252e3335c84bedd24764caab15909f31dd8de60578b2c32ceab200a53de5689d8e82e1853c921d8835b780cefda10ea2ebe5e98e2afb4ba44204cc2b5209a5a
+DIST ppsspp-1.4.2-dx9sdk.tar.gz 14582591 BLAKE2B 12a370e262d045bab6f85237160189921e0bc9992726bb60d241c20a5714128995cf110bb5889c530f8cc3497a34645a96ff31b7b61fb3004279f26b15287435 SHA512 2c54b441b0a31f63ecab1bd2ab14254fb2047d35d2765262d43277330a8428fbf4c8848d5f730456a033cf84258f6b60a467213f8339289b3ab83ed7e94c65b7
+DIST ppsspp-1.4.2-ext_SPIRV-Cross.tar.gz 193267 BLAKE2B d7eb87441b78f95a6d37cec9d787728a8381fc0b1368a4856f8cf34ec813f891c16b35634630714239c661508143042909df6432922d5e703967941d28ead3a9 SHA512 0b24d28c9e98b170dc4ae51269dce04c100f9116e5fb66268b23878eab4ee7bfc28d257208e094fedf23be89a488e9497bb246d369711b72bf5e39332225d7bf
+DIST ppsspp-1.4.2-ext_armips.tar.gz 163666 BLAKE2B e9ec7d5e30027315d2f8b8b634ad99854ab9609f823e250a5cc63272cb938bc9e43c2c3ed53ceceee97fff93bbf42c150103b7c24a679c2af9eb14821df2a244 SHA512 9423bdbc1428700979c13276a427975733a07908fdf021dc6ab88cec0d37e9523aacd4a2a03eef23638070293dde3f1641647c47095ef2751982b9f9893c1baa
+DIST ppsspp-1.4.2-ext_armips_ext_tinyformat.tar.gz 22284 BLAKE2B d37c35efeb42e3998603127f8758cec29103b5f7700ff465d5234e032822965e9249b6d183dba9962a76bed06abeaf0c40ab701425d1fb4d64ffd83c9987fe8d SHA512 fb063ea9b632c8a9a0203c181830cb2feed9142fcf4d69c11cc0a3e8dcbb3cea51dde6bb351df567b3f105a4da99fd2e72ba3572d3fc0e9a45364f4115d6c3d1
+DIST ppsspp-1.4.2-ext_glslang.tar.gz 1685246 BLAKE2B c5a58a40587bd93d3b3d50a636714b599eb7eab3d7f798ffbd694b00a31f00b365ec88d47a94536fb6fac77b29377bdc46092fdd3c0d67631d2a8cd4af9ed34d SHA512 3605fb8a3c5dafcab97578030be4af3703f1475c8e9fd58412a514dcaa0ea6c7bf3a279510759496ab34b979a3d260d3da3d6f00d504c9c5e0f9a7b5a61399bc
+DIST ppsspp-1.4.2-ffmpeg.tar.gz 311610961 BLAKE2B e01b203ff1f230a27b02dab0596dedbc26e049190fa1607903b70023865c50de4fb7361de33c1bd1c5de305124ea02f2ba9ac854bf2f40f3e79259663cdfa4ec SHA512 d4bdb3c5a13bc64d7b22e38b416355d302a4401a1d8f6bd57a4d8502823dc9a2987df92b8e781ddab6de8ded9b59b268ef1b33f8f43a0be7b1c57d4ffbee6871
+DIST ppsspp-1.4.2-pspautotests.tar.gz 35084214 BLAKE2B b4c1b40cd016ac6a6547fbf6421bb9cdb35dfb0705c275d07c1fdb4f26a148cece3f125b32f0b15212148570179378cb845c0f56ff5529fe76ccbefab8384d8d SHA512 d42050bbbff976c2e09815e736b416a2b29baaed8516537429e47933738ae93c8bbe762088d150fed3fb2b781b79041834c6fdab362f667b16a5697423c78449
+DIST ppsspp-1.4.2.tar.gz 18922775 BLAKE2B ce680f53f8d1e8e34b79b7af6e53b20be4c331722c3b213c0b08478035d12b379e902c7ba58f45305410fbb491a28fb324c436cb310be66904d5cf3acd076a4b SHA512 fb36e211afa83363d036fac757010c6be9d1bcb4c0984f18ddf17871b04bc2b9b89f94341f6c0ada3a2709426cda863e2da5c66d60b72220dcceba7a5deca7e5
+DIST ppsspp-1.5.4-assets_lang.tar.gz 347859 BLAKE2B 648915773856a64dafb5d159e0917b4345ff99dba7b7dae4f343ecd81e1d835cb958766ab8928118ae4768564414e3dcceba474e05e99be23d56c9447c59786b SHA512 72983f01c51900fa133ca83d226a5daec78153c9d70fc1ca6233b531f3c5d5da5e307e377560789cecccad7a98ba8f66da104cc4375f51576f90c535dc980b98
+DIST ppsspp-1.5.4-dx9sdk.tar.gz 14582591 BLAKE2B 12a370e262d045bab6f85237160189921e0bc9992726bb60d241c20a5714128995cf110bb5889c530f8cc3497a34645a96ff31b7b61fb3004279f26b15287435 SHA512 2c54b441b0a31f63ecab1bd2ab14254fb2047d35d2765262d43277330a8428fbf4c8848d5f730456a033cf84258f6b60a467213f8339289b3ab83ed7e94c65b7
+DIST ppsspp-1.5.4-ext_SPIRV-Cross.tar.gz 228943 BLAKE2B 0b4ed8a751737bf6fce9fa766f0b8dc0671b49a6adf026c369ebd3776d9d8c23acd08b6d3f41666a6e23410ffb243917a844d9de85e3eca5ce04935421aaca98 SHA512 5fe2f772b571da0627fb9d9c424bea2b4ea1c0563e36ff455ddaf1b92ea3d5ee636e039a0619e0971478ce10e163b45258e9b03d2610c573f74d1cfd08549bb8
+DIST ppsspp-1.5.4-ext_armips.tar.gz 191245 BLAKE2B 8bfeb8828bc2496c0222b22547820f00c5a695dc9469a2ce6b8fe7bc15e72af862a957e632af1829bfdd4cf663a586baa10495896971b9b138780ddc387aae9b SHA512 9ab376b928fadcbff7256ff10d6581e4960e00e48a93f47f7e90b1998022a8d03cadef20880aa020fe6b62e4fa43cf28fc68dc5b10e93b1212fd6788ae493dba
+DIST ppsspp-1.5.4-ext_armips_ext_tinyformat.tar.gz 22284 BLAKE2B d37c35efeb42e3998603127f8758cec29103b5f7700ff465d5234e032822965e9249b6d183dba9962a76bed06abeaf0c40ab701425d1fb4d64ffd83c9987fe8d SHA512 fb063ea9b632c8a9a0203c181830cb2feed9142fcf4d69c11cc0a3e8dcbb3cea51dde6bb351df567b3f105a4da99fd2e72ba3572d3fc0e9a45364f4115d6c3d1
+DIST ppsspp-1.5.4-ext_glslang.tar.gz 1944927 BLAKE2B a9bfae046335f8cba72fc92208fd0370d1808d242c00964c5507ce7d6aab2ad10ef839e8f46c46ba9ac039e11469e26877f89a51843ad035f33b434212a18317 SHA512 333a93707e067ac1d98c69533c2d206675d75aa54195326accf33e8401ac2fb412d2e2525b0ee1313f141872aa6ea430ae5424e8712483c59f77dc3adbcb4f59
+DIST ppsspp-1.5.4-ffmpeg.tar.gz 311610961 BLAKE2B e01b203ff1f230a27b02dab0596dedbc26e049190fa1607903b70023865c50de4fb7361de33c1bd1c5de305124ea02f2ba9ac854bf2f40f3e79259663cdfa4ec SHA512 d4bdb3c5a13bc64d7b22e38b416355d302a4401a1d8f6bd57a4d8502823dc9a2987df92b8e781ddab6de8ded9b59b268ef1b33f8f43a0be7b1c57d4ffbee6871
+DIST ppsspp-1.5.4-pspautotests.tar.gz 36005395 BLAKE2B fa92d1acb0adfecb23f55132c4e85843c3c04c73e4bc8cfb054cfa8e0b67fe1c03c4a83032892bc534a78a64bf190da00db91fd49df4c3838e5b8d0396cce15b SHA512 1485eace5526f53f6c41200e63d6d5d0ff217f22ec4788d58b33a33c64e344609f95bf2b73a8f35fd395914b33910b38a0348b35b488dadbdd43e24ac0bfed9f
+DIST ppsspp-1.5.4.tar.gz 19008538 BLAKE2B 10ca63a3f05757bd091a66b6563e34b3ca3c9c4df12a0b7796e42776d54997bec581582ee16706d5fb3630ebb8c0bcd1a5c0040856d94330865932b3d1ada2db SHA512 dbf4d2e9cc94a64908d5006ad562da72860fd12dadac66b0bdc6903d4cad4c81436963e24017517aa261440fd15efff6e5cab6ed7801928e107d7982d1604714
+EBUILD ppsspp-1.4.2-r1.ebuild 3149 BLAKE2B 6e5793b47694b730e8c54abf6656d32f06230dc52a12de21570d9250494fafcf91fbf0a4926180dfb5d81344dab940e18c456d19c10282a41f4c28d5d303039a SHA512 bb496040f78fe330c714ffde35cf364c961b2fddc7b20a53f857050f33529eb8a2b3d1f3e837a010d3d8ecd002723ee45a6051a8aa4853c8255e4e358a2eab38
+EBUILD ppsspp-1.4.2.ebuild 3294 BLAKE2B 70e77c3a3560aef03626b1398c4b4b37d45d57eb546e4e85b87d8e7560b0a30a2a779b24725f1329a167d8e496346d2273fa98ff32bbed1a0c56ccaf45687888 SHA512 a886a1b98c06ded0c52d2052a7f75c5cc313ef87b64997508a95c45db86df20c069aa38961ce385a127debf0757d8f3baf6ecc75482fadd5005faab8d80f7feb
+EBUILD ppsspp-1.5.4-r1.ebuild 3156 BLAKE2B daa114667318aede5fbfc1b8a02a6b8920c81dd2fda241b57a4c6011974b97d4e48c5da511eb40d5c8c661045a9189170d16e3057f1cf229acc95486a2ad09cc SHA512 8697cb9a5ba55f6ef84ac9a2896cc16ac23ab106e619324e95ff0cf2b2711cb4f24d7042977d1b7881f8f3bb6abbdac0a53654b12b6d4eb743169c2369d89e28
+EBUILD ppsspp-1.5.4.ebuild 3301 BLAKE2B 900cfb98f21129adb7fee7eac4a2b1b5dcae11e6f5f5eb6a9af8373cf428771d0ee7fe44de2732afe9fcb250ddce65f5092503849c8105e1e507120cd4eef4a8 SHA512 37281cec1fff6577fd102e449eb070d15e035ae735cba4c0e91f4d4b963af02d6c057947211cf8402537403990abc9f15650654bd282073b8f23dbedfa7a8b68
+EBUILD ppsspp-9999.ebuild 2164 BLAKE2B fbdc48fdfb6a2c963f15b13b1c0eb39ce8dca8101105ac5ac260c56007f8af1dbd8821ffad1495d1bcb79e05e42f0917b6c7145a2976e0be54b8948ae7eaa63c SHA512 538bec64d920089826856c6c19c2db352d211d2c8dd6dd74ef00f7fa082a65d5f119c0beaaca8acd49e4da48c28b59340fd78640022d9d3bebb2e883980d0bb5
+MISC metadata.xml 677 BLAKE2B b19f83bb3fa7ff9a1b6d8c9ea4caf75d6a32cd2bb78e43bae9e07c217d69108b8c6f8b00f7f81f9f2a2823cac8414b9b2022f443cdfe3e4132273617fab3f806 SHA512 57b8a912c8a000574da72dd02db7b91a3d0f9bd4d5a833afb93afe24fcd4b0e6a1f382a827f9c53e575368b8747ec62dc050da092eb1368875cb77326f2e9e74
diff --git a/games-emulation/ppsspp/files/ppsspp-1.4-O2.patch b/games-emulation/ppsspp/files/ppsspp-1.4-O2.patch
new file mode 100644
index 000000000000..55954c7c7389
--- /dev/null
+++ b/games-emulation/ppsspp/files/ppsspp-1.4-O2.patch
@@ -0,0 +1,32 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 19038c88a436..bf50f5cf52fb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -195,11 +195,11 @@ if(NOT MSVC)
+
+ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_DEBUG")
+ set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -D_NDEBUG")
+- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -D_NDEBUG")
++ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -D_NDEBUG")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG")
+ set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -D_DEBUG")
+ set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -Os -D_NDEBUG")
+- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -D_NDEBUG")
++ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2 -D_NDEBUG")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -O2 -g -D_NDEBUG")
+ #TODO: Remove this and include the file properly everywhere it makes sense
+ # First step is too use the macros everywhere
+@@ -509,10 +509,10 @@ include_directories(ext/cityhash)
+
+ if (NOT MSVC)
+ # These can be fast even for debug.
+- set_target_properties(udis86 PROPERTIES COMPILE_FLAGS "-O3")
+- set_target_properties(cityhash PROPERTIES COMPILE_FLAGS "-O3")
++ set_target_properties(udis86 PROPERTIES COMPILE_FLAGS "-O2")
++ set_target_properties(cityhash PROPERTIES COMPILE_FLAGS "-O2")
+ if(NOT ZLIB_FOUND)
+- set_target_properties(zlib PROPERTIES COMPILE_FLAGS "-O3")
++ set_target_properties(zlib PROPERTIES COMPILE_FLAGS "-O2")
+ endif()
+ endif()
+
diff --git a/games-emulation/ppsspp/files/ppsspp-1.4.2-assets-lookup.patch b/games-emulation/ppsspp/files/ppsspp-1.4.2-assets-lookup.patch
new file mode 100644
index 000000000000..2a136a39e8de
--- /dev/null
+++ b/games-emulation/ppsspp/files/ppsspp-1.4.2-assets-lookup.patch
@@ -0,0 +1,13 @@
+diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp
+index 717177ef81ff..22239782210d 100644
+--- a/UI/NativeApp.cpp
++++ b/UI/NativeApp.cpp
+@@ -317,7 +317,7 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch
+
+ // We want this to be FIRST.
+ #ifdef USING_QT_UI
+- VFSRegister("", new AssetsAssetReader());
++ VFSRegister("", new DirectoryAssetReader("/usr/share/ppsspp/assets/"));
+ #elif defined(IOS)
+ // Packed assets are included in app
+ VFSRegister("", new DirectoryAssetReader(external_dir));
diff --git a/games-emulation/ppsspp/metadata.xml b/games-emulation/ppsspp/metadata.xml
new file mode 100644
index 000000000000..69ffc51152a5
--- /dev/null
+++ b/games-emulation/ppsspp/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>fdsfgs@krutt.org</email>
+ <name>soredake</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="headless">Build headless version of the PPSSPP</flag>
+ <flag name="system-ffmpeg">Use the system-wide media-video/ffmpeg instead of bundled</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/hrydgard/ppsspp/issues</bugs-to>
+ <remote-id type="github">hrydgard/ppsspp</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-emulation/ppsspp/ppsspp-1.4.2-r1.ebuild b/games-emulation/ppsspp/ppsspp-1.4.2-r1.ebuild
new file mode 100644
index 000000000000..b50b2c98db5c
--- /dev/null
+++ b/games-emulation/ppsspp/ppsspp-1.4.2-r1.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit desktop cmake-utils
+
+DESCRIPTION="A PSP emulator written in C++."
+HOMEPAGE="https://www.ppsspp.org/"
+SRC_URI="
+ https://github.com/hrydgard/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ !system-ffmpeg? ( https://github.com/hrydgard/ppsspp-ffmpeg/archive/a2e98d7ba4c7c5cac08608732c3058cb46e3e0ef.tar.gz -> ${P}-ffmpeg.tar.gz )
+ https://github.com/hrydgard/ppsspp-lang/archive/f32328a88cbf368af90eb79bc7ad5420795d6585.tar.gz -> ${P}-assets_lang.tar.gz
+ https://github.com/hrydgard/pspautotests/archive/e18cface3db64ccb96738dc128fe769b28fff65c.tar.gz -> ${P}-pspautotests.tar.gz
+ https://github.com/hrydgard/minidx9/archive/7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93.tar.gz -> ${P}-dx9sdk.tar.gz
+ https://github.com/hrydgard/glslang/archive/b16f7e6819267e57c3c244808d1981f0ce34acbc.tar.gz -> ${P}-ext_glslang.tar.gz
+ https://github.com/Kingcom/armips/archive/770365d44df35d6e675c58bb2a774ca412278ef5.tar.gz -> ${P}-ext_armips.tar.gz
+ https://github.com/Kingcom/tinyformat/archive/b7f5a22753c81d834ab5133d655f1fd525280765.tar.gz -> ${P}-ext_armips_ext_tinyformat.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/6381b2ff9c0d975af8fd2974c97aa12a69ab6cc6.tar.gz -> ${P}-ext_SPIRV-Cross.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
+REQUIRED_USE="
+ !headless? ( || ( qt5 sdl ) )
+ ?? ( qt5 sdl )
+"
+
+RDEPEND="sys-libs/zlib
+ system-ffmpeg? (
+ !libav? ( media-video/ffmpeg:= )
+ libav? ( media-video/libav:= )
+ )
+ sdl? ( media-libs/libsdl2 )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtopengl:5
+ dev-qt/qtwidgets:5
+ )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-assets-lookup.patch
+ "${FILESDIR}"/${PN}-1.4-O2.patch
+)
+
+src_unpack() {
+ unpack "${P}.tar.gz"
+ cd "${S}" || die
+ local i list=( assets_lang pspautotests dx9sdk ext_glslang ext_armips ext_SPIRV-Cross ext_armips_ext_tinyformat )
+ if ! use system-ffmpeg; then
+ list+=( ffmpeg )
+ fi
+ for i in "${list[@]}"; do
+ tar xf "${DISTDIR}/${P}-${i}.tar.gz" --strip-components 1 -C "${i//_//}" || die "Failed to unpack ${P}-${i}.tar.gz"
+ done
+}
+
+src_prepare() {
+ if ! use system-ffmpeg; then
+ sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+ fi
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSING_QT_UI=$(usex qt5)
+ -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
+ -DHEADLESS=$(usex headless)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ use headless && dobin "${BUILD_DIR}/PPSSPPHeadless"
+ insinto /usr/share/"${PN}"
+ doins -r "${BUILD_DIR}/assets"
+ if use qt5 || use sdl ; then
+ dobin "${BUILD_DIR}/PPSSPP$(usex qt5 Qt SDL)"
+ local i
+ for i in 16 24 32 48 64 96 128 256 512 ; do
+ doicon -s ${i} "icons/hicolor/${i}x${i}/apps/${PN}.png"
+ done
+ make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex qt5 Qt SDL))" "${PN}" "Game"
+ fi
+}
+
+pkg_postinst() {
+ if use system-ffmpeg; then
+ ewarn "system-ffmpeg USE flag is enabled, some bugs might arise due to it."
+ ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for more informations."
+ fi
+}
diff --git a/games-emulation/ppsspp/ppsspp-1.4.2.ebuild b/games-emulation/ppsspp/ppsspp-1.4.2.ebuild
new file mode 100644
index 000000000000..7a5ad73a8935
--- /dev/null
+++ b/games-emulation/ppsspp/ppsspp-1.4.2.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils cmake-utils
+
+DESCRIPTION="A PSP emulator written in C++."
+HOMEPAGE="https://www.ppsspp.org/"
+SRC_URI="
+ https://github.com/hrydgard/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ !system-ffmpeg? ( https://github.com/hrydgard/ppsspp-ffmpeg/archive/a2e98d7ba4c7c5cac08608732c3058cb46e3e0ef.tar.gz -> ${P}-ffmpeg.tar.gz )
+ https://github.com/hrydgard/ppsspp-lang/archive/f32328a88cbf368af90eb79bc7ad5420795d6585.tar.gz -> ${P}-assets_lang.tar.gz
+ https://github.com/hrydgard/pspautotests/archive/e18cface3db64ccb96738dc128fe769b28fff65c.tar.gz -> ${P}-pspautotests.tar.gz
+ https://github.com/hrydgard/minidx9/archive/7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93.tar.gz -> ${P}-dx9sdk.tar.gz
+ https://github.com/hrydgard/glslang/archive/b16f7e6819267e57c3c244808d1981f0ce34acbc.tar.gz -> ${P}-ext_glslang.tar.gz
+ https://github.com/Kingcom/armips/archive/770365d44df35d6e675c58bb2a774ca412278ef5.tar.gz -> ${P}-ext_armips.tar.gz
+ https://github.com/Kingcom/tinyformat/archive/b7f5a22753c81d834ab5133d655f1fd525280765.tar.gz -> ${P}-ext_armips_ext_tinyformat.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/6381b2ff9c0d975af8fd2974c97aa12a69ab6cc6.tar.gz -> ${P}-ext_SPIRV-Cross.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
+REQUIRED_USE="
+ !headless? ( || ( qt5 sdl ) )
+ ?? ( qt5 sdl )
+"
+
+RDEPEND="sys-libs/zlib
+ system-ffmpeg? (
+ !libav? ( media-video/ffmpeg:= )
+ libav? ( media-video/libav:= )
+ )
+ sdl? (
+ media-libs/libsdl
+ media-libs/libsdl2
+ )
+ qt5? (
+ dev-db/sqlite
+ dev-qt/assistant:5
+ dev-qt/qtcore:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtmultimedia:5
+ dev-qt/qtopengl:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwebkit:5
+ dev-qt/qtwidgets:5
+ )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-assets-lookup.patch
+ "${FILESDIR}"/${PN}-1.4-O2.patch
+)
+
+src_unpack() {
+ unpack "${P}.tar.gz"
+ cd "${S}" || die
+ local i list=( assets_lang pspautotests dx9sdk ext_glslang ext_armips ext_SPIRV-Cross ext_armips_ext_tinyformat )
+ if ! use system-ffmpeg; then
+ list+=( ffmpeg )
+ fi
+ for i in "${list[@]}"; do
+ tar xf "${DISTDIR}/${P}-${i}.tar.gz" --strip-components 1 -C "${i//_//}" || die "Failed to unpack ${P}-${i}.tar.gz"
+ done
+}
+
+src_prepare() {
+ if ! use system-ffmpeg; then
+ sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+ fi
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSING_QT_UI=$(usex qt5)
+ -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
+ -DHEADLESS=$(usex headless)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ use headless && dobin "${BUILD_DIR}/PPSSPPHeadless"
+ insinto /usr/share/"${PN}"
+ doins -r "${BUILD_DIR}/assets"
+ if use qt5 || use sdl ; then
+ dobin "${BUILD_DIR}/PPSSPP$(usex qt5 Qt SDL)"
+ local i
+ for i in 16 24 32 48 64 96 128 256 512 ; do
+ doicon -s ${i} "icons/hicolor/${i}x${i}/apps/${PN}.png"
+ done
+ make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex qt5 Qt SDL))" "${PN}" "Game"
+ fi
+}
+
+pkg_postinst() {
+ if use system-ffmpeg; then
+ ewarn "system-ffmpeg USE flag is enabled, some bugs might arise due to it."
+ ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for more informations."
+ fi
+}
diff --git a/games-emulation/ppsspp/ppsspp-1.5.4-r1.ebuild b/games-emulation/ppsspp/ppsspp-1.5.4-r1.ebuild
new file mode 100644
index 000000000000..023b9217fe85
--- /dev/null
+++ b/games-emulation/ppsspp/ppsspp-1.5.4-r1.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit desktop cmake-utils
+
+DESCRIPTION="A PSP emulator written in C++."
+HOMEPAGE="https://www.ppsspp.org/"
+SRC_URI="
+ https://github.com/hrydgard/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ !system-ffmpeg? ( https://github.com/hrydgard/ppsspp-ffmpeg/archive/a2e98d7ba4c7c5cac08608732c3058cb46e3e0ef.tar.gz -> ${P}-ffmpeg.tar.gz )
+ https://github.com/hrydgard/ppsspp-lang/archive/1e3e4a0ba0ca8c0a092e027dfb7c1c4778366db5.tar.gz -> ${P}-assets_lang.tar.gz
+ https://github.com/hrydgard/pspautotests/archive/d02ba7407050f445edf9e908374ad4bf3b2f237b.tar.gz -> ${P}-pspautotests.tar.gz
+ https://github.com/hrydgard/minidx9/archive/7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93.tar.gz -> ${P}-dx9sdk.tar.gz
+ https://github.com/hrydgard/glslang/archive/2edde6665d9a56ead5ea0e55b4e64d9a803e6164.tar.gz -> ${P}-ext_glslang.tar.gz
+ https://github.com/Kingcom/armips/archive/8b4cadaf62d7de42d374056fc6aafc555f2bc7dc.tar.gz -> ${P}-ext_armips.tar.gz
+ https://github.com/Kingcom/tinyformat/archive/b7f5a22753c81d834ab5133d655f1fd525280765.tar.gz -> ${P}-ext_armips_ext_tinyformat.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/90966d50f57608587bafd95b4e345b02b814754a.tar.gz -> ${P}-ext_SPIRV-Cross.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
+REQUIRED_USE="
+ !headless? ( || ( qt5 sdl ) )
+ ?? ( qt5 sdl )
+"
+
+RDEPEND="sys-libs/zlib
+ system-ffmpeg? (
+ !libav? ( media-video/ffmpeg:= )
+ libav? ( media-video/libav:= )
+ )
+ sdl? ( media-libs/libsdl2 )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtopengl:5
+ dev-qt/qtwidgets:5
+ )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.4.2-assets-lookup.patch
+ "${FILESDIR}"/${PN}-1.4-O2.patch
+)
+
+src_unpack() {
+ unpack "${P}.tar.gz"
+ cd "${S}" || die
+ local i list=( assets_lang pspautotests dx9sdk ext_glslang ext_armips ext_SPIRV-Cross ext_armips_ext_tinyformat )
+ if ! use system-ffmpeg; then
+ list+=( ffmpeg )
+ fi
+ for i in "${list[@]}"; do
+ tar xf "${DISTDIR}/${P}-${i}.tar.gz" --strip-components 1 -C "${i//_//}" || die "Failed to unpack ${P}-${i}.tar.gz"
+ done
+}
+
+src_prepare() {
+ if ! use system-ffmpeg; then
+ sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+ fi
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSING_QT_UI=$(usex qt5)
+ -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
+ -DHEADLESS=$(usex headless)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ use headless && dobin "${BUILD_DIR}/PPSSPPHeadless"
+ insinto /usr/share/"${PN}"
+ doins -r "${BUILD_DIR}/assets"
+ if use qt5 || use sdl ; then
+ dobin "${BUILD_DIR}/PPSSPP$(usex qt5 Qt SDL)"
+ local i
+ for i in 16 24 32 48 64 96 128 256 512 ; do
+ doicon -s ${i} "icons/hicolor/${i}x${i}/apps/${PN}.png"
+ done
+ make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex qt5 Qt SDL))" "${PN}" "Game"
+ fi
+}
+
+pkg_postinst() {
+ if use system-ffmpeg; then
+ ewarn "system-ffmpeg USE flag is enabled, some bugs might arise due to it."
+ ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for more informations."
+ fi
+}
diff --git a/games-emulation/ppsspp/ppsspp-1.5.4.ebuild b/games-emulation/ppsspp/ppsspp-1.5.4.ebuild
new file mode 100644
index 000000000000..3204b52eb098
--- /dev/null
+++ b/games-emulation/ppsspp/ppsspp-1.5.4.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils cmake-utils
+
+DESCRIPTION="A PSP emulator written in C++."
+HOMEPAGE="https://www.ppsspp.org/"
+SRC_URI="
+ https://github.com/hrydgard/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ !system-ffmpeg? ( https://github.com/hrydgard/ppsspp-ffmpeg/archive/a2e98d7ba4c7c5cac08608732c3058cb46e3e0ef.tar.gz -> ${P}-ffmpeg.tar.gz )
+ https://github.com/hrydgard/ppsspp-lang/archive/1e3e4a0ba0ca8c0a092e027dfb7c1c4778366db5.tar.gz -> ${P}-assets_lang.tar.gz
+ https://github.com/hrydgard/pspautotests/archive/d02ba7407050f445edf9e908374ad4bf3b2f237b.tar.gz -> ${P}-pspautotests.tar.gz
+ https://github.com/hrydgard/minidx9/archive/7751cf73f5c06f1be21f5f31c3e2d9a7bacd3a93.tar.gz -> ${P}-dx9sdk.tar.gz
+ https://github.com/hrydgard/glslang/archive/2edde6665d9a56ead5ea0e55b4e64d9a803e6164.tar.gz -> ${P}-ext_glslang.tar.gz
+ https://github.com/Kingcom/armips/archive/8b4cadaf62d7de42d374056fc6aafc555f2bc7dc.tar.gz -> ${P}-ext_armips.tar.gz
+ https://github.com/Kingcom/tinyformat/archive/b7f5a22753c81d834ab5133d655f1fd525280765.tar.gz -> ${P}-ext_armips_ext_tinyformat.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Cross/archive/90966d50f57608587bafd95b4e345b02b814754a.tar.gz -> ${P}-ext_SPIRV-Cross.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
+REQUIRED_USE="
+ !headless? ( || ( qt5 sdl ) )
+ ?? ( qt5 sdl )
+"
+
+RDEPEND="sys-libs/zlib
+ system-ffmpeg? (
+ !libav? ( media-video/ffmpeg:= )
+ libav? ( media-video/libav:= )
+ )
+ sdl? (
+ media-libs/libsdl
+ media-libs/libsdl2
+ )
+ qt5? (
+ dev-db/sqlite
+ dev-qt/assistant:5
+ dev-qt/qtcore:5
+ dev-qt/qtdeclarative:5
+ dev-qt/qtgui:5
+ dev-qt/qtmultimedia:5
+ dev-qt/qtopengl:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwebkit:5
+ dev-qt/qtwidgets:5
+ )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.4.2-assets-lookup.patch
+ "${FILESDIR}"/${PN}-1.4-O2.patch
+)
+
+src_unpack() {
+ unpack "${P}.tar.gz"
+ cd "${S}" || die
+ local i list=( assets_lang pspautotests dx9sdk ext_glslang ext_armips ext_SPIRV-Cross ext_armips_ext_tinyformat )
+ if ! use system-ffmpeg; then
+ list+=( ffmpeg )
+ fi
+ for i in "${list[@]}"; do
+ tar xf "${DISTDIR}/${P}-${i}.tar.gz" --strip-components 1 -C "${i//_//}" || die "Failed to unpack ${P}-${i}.tar.gz"
+ done
+}
+
+src_prepare() {
+ if ! use system-ffmpeg; then
+ sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+ fi
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSING_QT_UI=$(usex qt5)
+ -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
+ -DHEADLESS=$(usex headless)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ use headless && dobin "${BUILD_DIR}/PPSSPPHeadless"
+ insinto /usr/share/"${PN}"
+ doins -r "${BUILD_DIR}/assets"
+ if use qt5 || use sdl ; then
+ dobin "${BUILD_DIR}/PPSSPP$(usex qt5 Qt SDL)"
+ local i
+ for i in 16 24 32 48 64 96 128 256 512 ; do
+ doicon -s ${i} "icons/hicolor/${i}x${i}/apps/${PN}.png"
+ done
+ make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex qt5 Qt SDL))" "${PN}" "Game"
+ fi
+}
+
+pkg_postinst() {
+ if use system-ffmpeg; then
+ ewarn "system-ffmpeg USE flag is enabled, some bugs might arise due to it."
+ ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for more informations."
+ fi
+}
diff --git a/games-emulation/ppsspp/ppsspp-9999.ebuild b/games-emulation/ppsspp/ppsspp-9999.ebuild
new file mode 100644
index 000000000000..5ece82adfcce
--- /dev/null
+++ b/games-emulation/ppsspp/ppsspp-9999.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils cmake-utils git-r3
+
+DESCRIPTION="A PSP emulator written in C++."
+HOMEPAGE="https://www.ppsspp.org/"
+EGIT_REPO_URI="https://github.com/hrydgard/${PN}.git"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+qt5 sdl headless libav +system-ffmpeg"
+REQUIRED_USE="
+ !headless? ( || ( qt5 sdl ) )
+ ?? ( qt5 sdl )
+"
+EGIT_SUBMODULES=( '*' )
+
+RDEPEND="sys-libs/zlib
+ system-ffmpeg? (
+ !libav? ( media-video/ffmpeg:= )
+ libav? ( media-video/libav:= )
+ )
+ sdl? ( media-libs/libsdl2 )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtopengl:5
+ dev-qt/qtwidgets:5
+ )"
+
+DEPEND="${RDEPEND}"
+
+src_unpack() {
+ use system-ffmpeg && EGIT_SUBMODULES+=( '-ffmpeg' )
+ git-r3_src_unpack
+}
+
+src_prepare() {
+ # https://github.com/hrydgard/ppsspp/blob/150619c5a341f372266bec86fd874ac5a1343a43/UI/NativeApp.cpp#L318
+ # patch ppsspp to use /usr/share instead of working dir to find the assets
+ sed -i 's|VFSRegister("", new AssetsAssetReader());|VFSRegister("", new DirectoryAssetReader("/usr/share/ppsspp/assets/"));|g' UI/NativeApp.cpp || die "Patching qt assets path failed"
+
+ sed -i -e "s#-O3#-O2#g;" "${S}"/CMakeLists.txt || die
+ if ! use system-ffmpeg; then
+ sed -i -e "s#-O3#-O2#g;" "${S}"/ffmpeg/linux_*.sh || die
+ fi
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSING_QT_UI=$(usex qt5)
+ -DUSE_SYSTEM_FFMPEG=$(usex system-ffmpeg)
+ -DHEADLESS=$(usex headless)
+ )
+ cmake-utils_src_configure
+}
+
+src_install() {
+ use headless && dobin "${BUILD_DIR}/PPSSPPHeadless"
+ insinto /usr/share/"${PN}"
+ doins -r "${BUILD_DIR}/assets"
+ if use qt5 || use sdl ; then
+ dobin "${BUILD_DIR}/PPSSPP$(usex qt5 Qt SDL)"
+ local i
+ for i in 16 24 32 48 64 96 128 256 512 ; do
+ doicon -s ${i} "icons/hicolor/${i}x${i}/apps/${PN}.png"
+ done
+ make_desktop_entry "PPSSPP$(usex qt5 Qt SDL)" "PPSSPP ($(usex qt5 Qt SDL))" "${PN}" "Game"
+ fi
+}
+
+pkg_postinst() {
+ if use system-ffmpeg; then
+ ewarn "system-ffmpeg USE flag is enabled, some bugs might arise due to it."
+ ewarn "See https://github.com/hrydgard/ppsspp/issues/9026 for more informations."
+ fi
+}