summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2018-08-14 12:55:41 +0000
committernia <nia@pkgsrc.org>2018-08-14 12:55:41 +0000
commit1190ca544473b6bd81c0fdf9c67fb58b52b81a4c (patch)
tree8e6ba3704534af7a4037779a82f868099df64625 /emulators
parent8f8eefbe3e2585fc774a5974225a23cca25eb755 (diff)
downloadpkgsrc-1190ca544473b6bd81c0fdf9c67fb58b52b81a4c.tar.gz
libretro-ppsspp: add version 1.6.3.
Libretro is a simple but powerful development interface that allows for the easy creation of emulators, games and multimedia applications that can plug straight into any libretro-compatible frontend. This development interface is open to others so that they can run these pluggable emulator and game cores also in their own programs or devices. PPSSPP is a PlayStation Portable (PSP) video game system emulator that can be used as a libretro core.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/Makefile3
-rw-r--r--emulators/libretro-ppsspp/DESCR8
-rw-r--r--emulators/libretro-ppsspp/MESSAGE16
-rw-r--r--emulators/libretro-ppsspp/Makefile70
-rw-r--r--emulators/libretro-ppsspp/PLIST2
-rw-r--r--emulators/libretro-ppsspp/distinfo20
-rw-r--r--emulators/libretro-ppsspp/options.mk41
-rw-r--r--emulators/libretro-ppsspp/patches/patch-libretro_Makefile25
-rw-r--r--emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common16
9 files changed, 200 insertions, 1 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index f383305b953..fcfe9e66e44 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.278 2018/08/13 18:35:14 nia Exp $
+# $NetBSD: Makefile,v 1.279 2018/08/14 12:55:41 nia Exp $
#
COMMENT= Emulators for other operating systems
@@ -114,6 +114,7 @@ SUBDIR+= libretro-nestopia
SUBDIR+= libretro-o2em
SUBDIR+= libretro-pcsx-rearmed
SUBDIR+= libretro-picodrive
+SUBDIR+= libretro-ppsspp
SUBDIR+= libretro-prosystem
SUBDIR+= libretro-snes9x
SUBDIR+= libretro-snes9x2005
diff --git a/emulators/libretro-ppsspp/DESCR b/emulators/libretro-ppsspp/DESCR
new file mode 100644
index 00000000000..18a6b53c433
--- /dev/null
+++ b/emulators/libretro-ppsspp/DESCR
@@ -0,0 +1,8 @@
+Libretro is a simple but powerful development interface that allows for
+the easy creation of emulators, games and multimedia applications that
+can plug straight into any libretro-compatible frontend. This development
+interface is open to others so that they can run these pluggable emulator
+and game cores also in their own programs or devices.
+
+PPSSPP is a PlayStation Portable (PSP) video game system emulator that
+can be used as a libretro core.
diff --git a/emulators/libretro-ppsspp/MESSAGE b/emulators/libretro-ppsspp/MESSAGE
new file mode 100644
index 00000000000..2d946327021
--- /dev/null
+++ b/emulators/libretro-ppsspp/MESSAGE
@@ -0,0 +1,16 @@
+===========================================================================
+$NetBSD: MESSAGE,v 1.1 2018/08/14 12:55:41 nia Exp $
+
+This package is not PaX MPROTECT-safe, because of its just-in-time
+compiler.
+
+MPROTECT must be disabled for RetroArch for this core to be usable.
+
+Prior to using libretro-ppsspp:
+
+1. cd to RetroArch's System (where your BIOS files are) or RetroArch's
+Content directory (where your PSP ROMs are).
+2. git clone https://github.com/hrydgard/ppsspp ppsspp-master
+3. cp -R ppsspp-master/assets PPSSPP
+
+===========================================================================
diff --git a/emulators/libretro-ppsspp/Makefile b/emulators/libretro-ppsspp/Makefile
new file mode 100644
index 00000000000..6ce6ae50ac8
--- /dev/null
+++ b/emulators/libretro-ppsspp/Makefile
@@ -0,0 +1,70 @@
+# $NetBSD: Makefile,v 1.1 2018/08/14 12:55:41 nia Exp $
+
+PKGNAME= libretro-ppsspp-1.6.3
+CATEGORIES= emulators
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://docs.libretro.com/library/ppsspp/
+COMMENT= Libretro core based on the PPSSPP PlayStation Portable emulator
+LICENSE= gnu-gpl-v2
+
+DIST_SUBDIR= ppsspp-${PKGVERSION_NOREV}
+DISTFILES+= ppsspp.tar.gz
+DISTFILES+= ppsspp-armips.tar.gz
+DISTFILES+= ppsspp-glslang.tar.gz
+DISTFILES+= ppsspp-spriv.tar.gz
+
+# Submodules
+ARMIPS_TAG= 8b4cadaf62d7de42d374056fc6aafc555f2bc7dc
+GLSLANG_TAG= 2edde6665d9a56ead5ea0e55b4e64d9a803e6164
+SPRIV_TAG= 90966d50f57608587bafd95b4e345b02b814754a
+
+SITES.ppsspp.tar.gz= \
+ -https://github.com/hrydgard/ppsspp/archive/v${PKGVERSION_NOREV}.tar.gz
+
+SITES.ppsspp-armips.tar.gz= \
+ -https://github.com/Kingcom/armips/archive/${ARMIPS_TAG}.tar.gz
+
+SITES.ppsspp-glslang.tar.gz= \
+ -https://github.com/hrydgard/glslang/archive/${GLSLANG_TAG}.tar.gz
+
+SITES.ppsspp-spriv.tar.gz= \
+ -https://github.com/KhronosGroup/SPIRV-Cross/archive/${SPRIV_TAG}.tar.gz
+
+EXTRACT_USING= bsdtar
+WRKSRC= ${WRKDIR}/ppsspp-${PKGVERSION_NOREV}
+BUILD_DIRS= libretro
+
+USE_TOOLS+= gmake
+USE_LANGUAGES= c c++11
+
+.include "../../mk/bsd.prefs.mk"
+
+ONLY_FOR_PLATFORM= *-*-*arm* *-*-x86_64 *-*-i386
+
+.if !empty(MACHINE_ARCH:M*arm*)
+CFLAGS+= -marm
+MAKE_FLAGS+= TARGET_ARCH=arm
+.elif ${MACHINE_ARCH} == "x86_64"
+MAKE_FLAGS+= TARGET_ARCH=x86_64
+.elif ${MACHINE_ARCH} == "i386"
+MAKE_FLAGS+= TARGET_ARCH=x86
+.endif
+
+INSTALLATION_DIRS+= ${PREFIX}/lib/libretro
+
+post-extract:
+ ${MV} ${WRKDIR}/armips-${ARMIPS_TAG}/* ${WRKSRC}/ext/armips
+ ${MV} ${WRKDIR}/glslang-${GLSLANG_TAG}/* ${WRKSRC}/ext/glslang
+ ${MV} ${WRKDIR}/SPIRV-Cross-${SPRIV_TAG}/* ${WRKSRC}/ext/SPIRV-Cross
+
+do-install:
+ ${INSTALL_LIB} ${WRKSRC}/libretro/ppsspp_libretro.so \
+ ${DESTDIR}${PREFIX}/lib/libretro/ppsspp_libretro.so
+
+.include "options.mk"
+.include "../../multimedia/ffmpeg4/buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/dlopen.buildlink3.mk"
+BUILDLINK_TRANSFORM+= opt:-ldl:${BUILDLINK_LDADD.dl:Q}
+.include "../../mk/bsd.pkg.mk"
diff --git a/emulators/libretro-ppsspp/PLIST b/emulators/libretro-ppsspp/PLIST
new file mode 100644
index 00000000000..76fc70df11c
--- /dev/null
+++ b/emulators/libretro-ppsspp/PLIST
@@ -0,0 +1,2 @@
+@comment $NetBSD: PLIST,v 1.1 2018/08/14 12:55:41 nia Exp $
+lib/libretro/ppsspp_libretro.so
diff --git a/emulators/libretro-ppsspp/distinfo b/emulators/libretro-ppsspp/distinfo
new file mode 100644
index 00000000000..d73d4364261
--- /dev/null
+++ b/emulators/libretro-ppsspp/distinfo
@@ -0,0 +1,20 @@
+$NetBSD: distinfo,v 1.1 2018/08/14 12:55:41 nia Exp $
+
+SHA1 (ppsspp-1.6.3/ppsspp-armips.tar.gz) = 51e8fcf70e64e64c9c3d04aa3c795dfe6f7f5f26
+RMD160 (ppsspp-1.6.3/ppsspp-armips.tar.gz) = d8c321256c9e58fbfcbf1529f61930274ecc6d15
+SHA512 (ppsspp-1.6.3/ppsspp-armips.tar.gz) = 9ab376b928fadcbff7256ff10d6581e4960e00e48a93f47f7e90b1998022a8d03cadef20880aa020fe6b62e4fa43cf28fc68dc5b10e93b1212fd6788ae493dba
+Size (ppsspp-1.6.3/ppsspp-armips.tar.gz) = 191245 bytes
+SHA1 (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = bc70bf9850f187ecff189adf8d46a39930380928
+RMD160 (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = d1c248f9f01f10b2f3d3bbbf6a5e6a431413702a
+SHA512 (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = 333a93707e067ac1d98c69533c2d206675d75aa54195326accf33e8401ac2fb412d2e2525b0ee1313f141872aa6ea430ae5424e8712483c59f77dc3adbcb4f59
+Size (ppsspp-1.6.3/ppsspp-glslang.tar.gz) = 1944927 bytes
+SHA1 (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 729bff5fa8a51af90519fb51b64a5781acce03e2
+RMD160 (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 32346af6c24f9f30ae435381f7c30e6f427c0e39
+SHA512 (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 5fe2f772b571da0627fb9d9c424bea2b4ea1c0563e36ff455ddaf1b92ea3d5ee636e039a0619e0971478ce10e163b45258e9b03d2610c573f74d1cfd08549bb8
+Size (ppsspp-1.6.3/ppsspp-spriv.tar.gz) = 228943 bytes
+SHA1 (ppsspp-1.6.3/ppsspp.tar.gz) = 5a4ec3f99dcb50840d26a2c738ff1ce4a37e7433
+RMD160 (ppsspp-1.6.3/ppsspp.tar.gz) = 0b0ea6c86aad60a7d9d176332ea62a88d23411fa
+SHA512 (ppsspp-1.6.3/ppsspp.tar.gz) = fe592c81a3b22ba0fff3dbd403ad2f6b9639c39d036db31132147a91a25793acb8698174a1c139b7dced01a9101777b5c53a1e5db6b5da0b7727f480ef597b8e
+Size (ppsspp-1.6.3/ppsspp.tar.gz) = 19477643 bytes
+SHA1 (patch-libretro_Makefile) = ff14d98bb21d87b5a27f40b180d73beef7ab2f74
+SHA1 (patch-libretro_Makefile.common) = 5bce7657a4b6703903b71e7d33317dcb284e2759
diff --git a/emulators/libretro-ppsspp/options.mk b/emulators/libretro-ppsspp/options.mk
new file mode 100644
index 00000000000..37ef8343894
--- /dev/null
+++ b/emulators/libretro-ppsspp/options.mk
@@ -0,0 +1,41 @@
+# $NetBSD: options.mk,v 1.1 2018/08/14 12:55:41 nia Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.libretro-ppsspp
+PKG_OPTIONS_REQUIRED_GROUPS= graphics
+PKG_OPTIONS_GROUP.graphics= opengl
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+.if !empty(MACHINE_ARCH:Mearm*)
+PKG_OPTIONS_GROUP.graphics+= rpi
+.endif
+
+.if !empty(MACHINE_ARCH:Mearm*) && ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= rpi
+.else
+PKG_SUGGESTED_OPTIONS+= opengl
+.endif
+
+.if ${MACHINE_ARCH} == "earmv7hf" || ${MACHINE_ARCH} == "earmv7hfeb"
+PKG_SUPPORTED_OPTIONS+= simd
+PKG_SUGGESTED_OPTIONS+= simd
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Msimd)
+CFLAGS+= -mfpu=neon -D__NEON_OPT
+MAKE_FLAGS+= HAVE_NEON=1
+.endif
+
+.if !empty(PKG_OPTIONS:Mrpi)
+BUILD_MAKE_FLAGS+= platform=rpi
+SUBST_CLASSES+= vc
+SUBST_STAGE.vc= pre-configure
+SUBST_MESSAGE.vc= Fixing path to VideoCore libraries.
+SUBST_FILES.vc= libretro/Makefile
+SUBST_SED.vc+= -e 's;/opt/vc;${PREFIX};g'
+.include "../../misc/raspberrypi-userland/buildlink3.mk"
+.elif !empty(PKG_OPTIONS:Mopengl)
+.include "../../graphics/MesaLib/buildlink3.mk"
+.endif
diff --git a/emulators/libretro-ppsspp/patches/patch-libretro_Makefile b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile
new file mode 100644
index 00000000000..773cbf0395a
--- /dev/null
+++ b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile
@@ -0,0 +1,25 @@
+$NetBSD: patch-libretro_Makefile,v 1.1 2018/08/14 12:55:41 nia Exp $
+
+Use ffmpeg from pkgsrc.
+
+--- libretro/Makefile.orig 2018-06-05 17:58:41.000000000 +0000
++++ libretro/Makefile
+@@ -40,7 +40,6 @@ endif
+
+ # Dirs
+ CORE_DIR = ..
+-FFMPEGDIR = $(CORE_DIR)/ffmpeg
+ LIBRETRODIR = $(CORE_DIR)/libretro
+ COREDIR = $(CORE_DIR)/Core
+ COMMONDIR = $(CORE_DIR)/Common
+@@ -60,9 +59,7 @@ ifneq (,$(findstring unix,$(platform)))
+ TARGET := $(TARGET_NAME)_libretro.so
+ LDFLAGS += -shared -Wl,--version-script=link.T -Wl,--no-undefined
+
+- FFMPEGINCFLAGS += -I$(FFMPEGDIR)/linux/$(TARGET_ARCH)/include
+- FFMPEGLIBDIR := $(FFMPEGDIR)/linux/$(TARGET_ARCH)/lib
+- FFMPEGLDFLAGS += -L$(FFMPEGLIBDIR) -lavformat -lavcodec -lavutil -lswresample -lswscale
++ FFMPEGLDFLAGS += -lavformat -lavcodec -lavutil -lswresample -lswscale
+ fpic = -fPIC
+ ifneq (,$(findstring gles,$(platform)))
+ GLES = 1
diff --git a/emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common
new file mode 100644
index 00000000000..4f7c343c817
--- /dev/null
+++ b/emulators/libretro-ppsspp/patches/patch-libretro_Makefile.common
@@ -0,0 +1,16 @@
+$NetBSD: patch-libretro_Makefile.common,v 1.1 2018/08/14 12:55:41 nia Exp $
+
+Fix "Build error: undefined references".
+
+https://github.com/libretro/ppsspp/commit/68634705b9d6b5bc8db2232bc92b6ae06f0b31d8
+
+--- libretro/Makefile.common.orig 2018-05-30 17:47:20.000000000 +0000
++++ libretro/Makefile.common
+@@ -452,6 +452,7 @@ SOURCES_CXX += $(NATIVEDIR)/math/datacon
+ $(COREDIR)/MemMap.cpp \
+ $(COREDIR)/MemMapFunctions.cpp \
+ $(COREDIR)/PSPLoaders.cpp \
++ $(COREDIR)/Replay.cpp \
+ $(COREDIR)/Reporting.cpp \
+ $(COREDIR)/SaveState.cpp \
+ $(COREDIR)/Screenshot.cpp \