diff --git a/emulators/ppsspp/sdl/Makefile b/emulators/ppsspp/sdl/Makefile new file mode 100644 index 00000000000..b0dd4f9c21e --- /dev/null +++ b/emulators/ppsspp/sdl/Makefile @@ -0,0 +1,20 @@ +COMMENT = Sony PlayStation Portable emulator + +PKGNAME = ppsspp-$V +REVISION = 0 + +PPSSPP_SUBDIR_LIB_DEPENDS = devel/sdl2-ttf + +WANTLIB += ${COMPILER_LIBCXX} +WANTLIB += GL GLEW GLU ICE SDL2 SDL2_ttf SM X11 Xext avcodec avformat +WANTLIB += avutil c fontconfig m miniupnpc png snappy swresample +WANTLIB += swscale z zip zstd + +RUN_DEPENDS = devel/desktop-file-utils \ + misc/shared-mime-info \ + x11/gtk+4,-guic + +pre-configure: + ${SUBST_CMD} ${WRKSRC}/UI/NativeApp.cpp + +.include diff --git a/emulators/ppsspp/sdl/distinfo b/emulators/ppsspp/sdl/distinfo new file mode 100644 index 00000000000..06337ae9cde --- /dev/null +++ b/emulators/ppsspp/sdl/distinfo @@ -0,0 +1,2 @@ +SHA256 (ppsspp-1.19.3.tar.xz) = BUQB+n//vZm3/YDpiilR1vDD3oPLS1RxmJnJi/rZlhQ= +SIZE (ppsspp-1.19.3.tar.xz) = 58131440 diff --git a/emulators/ppsspp/sdl/patches/patch-CMakeLists_txt b/emulators/ppsspp/sdl/patches/patch-CMakeLists_txt new file mode 100644 index 00000000000..2323477372e --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-CMakeLists_txt @@ -0,0 +1,32 @@ +- Honor CFLAGS and DEBUG +- Use system libpng on arm platforms + +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -1080,16 +1080,6 @@ add_library(cityhash STATIC + ) + target_include_directories(cityhash PRIVATE ext/cityhash) + +-if(NOT MSVC) +- # These can be fast even for debug. +- target_compile_options(udis86 PRIVATE "-O2") +- target_compile_options(cityhash PRIVATE "-O2") +- if(NOT ZLIB_FOUND) +- target_compile_options(zlib PRIVATE "-O2") +- endif() +-endif() +- +- + find_package(LIBZIP) + if(LIBZIP_FOUND AND USE_SYSTEM_LIBZIP) + include_directories(${LIBZIP_INCLUDE_DIRS}) +@@ -1233,7 +1223,7 @@ else() + endif() + + # Arm platforms require at least libpng17. +-if(ANDROID OR ARMV7 OR ARM64 OR ARM OR IOS) ++if(ANDROID OR IOS) + set(PNG_REQUIRED_VERSION 1.7) + else() + set(PNG_REQUIRED_VERSION 1.6) diff --git a/emulators/ppsspp/sdl/patches/patch-Core_AVIDump_cpp b/emulators/ppsspp/sdl/patches/patch-Core_AVIDump_cpp new file mode 100644 index 00000000000..ffd02195f84 --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-Core_AVIDump_cpp @@ -0,0 +1,14 @@ +Build with newer FFmpeg + +Index: Core/AVIDump.cpp +--- Core/AVIDump.cpp.orig ++++ Core/AVIDump.cpp +@@ -94,7 +94,7 @@ bool AVIDump::Start(int w, int h) + + bool AVIDump::CreateAVI() { + #ifdef USE_FFMPEG +- AVCodec *codec = nullptr; ++ const AVCodec *codec = nullptr; + + // Use gameID_EmulatedTimestamp for filename + std::string discID = g_paramSFO.GetDiscID(); diff --git a/emulators/ppsspp/sdl/patches/patch-Core_HLE_sceMpeg_cpp b/emulators/ppsspp/sdl/patches/patch-Core_HLE_sceMpeg_cpp new file mode 100644 index 00000000000..e41a6af09fc --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-Core_HLE_sceMpeg_cpp @@ -0,0 +1,23 @@ +Build with newer FFmpeg + +Index: Core/HLE/sceMpeg.cpp +--- Core/HLE/sceMpeg.cpp.orig ++++ Core/HLE/sceMpeg.cpp +@@ -719,7 +719,7 @@ static bool InitPmp(MpegContext * ctx){ + pmp_want_pix_fmt = AV_PIX_FMT_RGBA; + + // Create H264 video codec +- AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264); ++ const AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264); + if (pmp_Codec == NULL){ + ERROR_LOG(Log::Mpeg, "Can not find H264 codec, please update ffmpeg"); + return false; +@@ -928,7 +928,7 @@ static bool decodePmpVideo(PSPPointerpkt_size; ++ len = packet.size; + got_picture = 1; + } else if (len == AVERROR(EAGAIN)) { + len = 0; diff --git a/emulators/ppsspp/sdl/patches/patch-Core_HW_MediaEngine_cpp b/emulators/ppsspp/sdl/patches/patch-Core_HW_MediaEngine_cpp new file mode 100644 index 00000000000..e64e0322704 --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-Core_HW_MediaEngine_cpp @@ -0,0 +1,50 @@ +Build with newer FFmpeg + +Index: Core/HW/MediaEngine.cpp +--- Core/HW/MediaEngine.cpp.orig ++++ Core/HW/MediaEngine.cpp +@@ -365,7 +365,7 @@ void MediaEngine::closeContext() { + m_pCodecCtxs.clear(); + // These are streams allocated from avformat_new_stream. + for (auto &it : m_codecsToClose) { +- avcodec_close(it); ++ avcodec_free_context(&it); + } + m_codecsToClose.clear(); + if (m_pFormatCtx) +@@ -406,7 +406,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st + // no need to add an existing stream. + if ((u32)streamNum < m_pFormatCtx->nb_streams) + return true; +- AVCodec *h264_codec = avcodec_find_decoder(AV_CODEC_ID_H264); ++ const AVCodec *h264_codec = avcodec_find_decoder(AV_CODEC_ID_H264); + if (!h264_codec) + return false; + AVStream *stream = avformat_new_stream(m_pFormatCtx, h264_codec); +@@ -429,7 +429,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st + } + + #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100) +- AVCodec *codec = avcodec_find_decoder(stream->codecpar->codec_id); ++ const AVCodec *codec = avcodec_find_decoder(stream->codecpar->codec_id); + AVCodecContext *codecCtx = avcodec_alloc_context3(codec); + #else + AVCodecContext *codecCtx = stream->codec; +@@ -517,7 +517,7 @@ bool MediaEngine::setVideoStream(int streamNum, bool f + + AVStream *stream = m_pFormatCtx->streams[streamNum]; + #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 33, 100) +- AVCodec *pCodec = avcodec_find_decoder(stream->codecpar->codec_id); ++ const AVCodec *pCodec = avcodec_find_decoder(stream->codecpar->codec_id); + if (!pCodec) { + WARN_LOG_REPORT(Log::ME, "Could not find decoder for %d", (int)stream->codecpar->codec_id); + return false; +@@ -683,7 +683,7 @@ bool MediaEngine::stepVideo(int videoPixelMode, bool s + avcodec_send_packet(m_pCodecCtx, &packet); + int result = avcodec_receive_frame(m_pCodecCtx, m_pFrame); + if (result == 0) { +- result = m_pFrame->pkt_size; ++ result = packet.size; + frameFinished = 1; + } else if (result == AVERROR(EAGAIN)) { + result = 0; diff --git a/emulators/ppsspp/sdl/patches/patch-Core_HW_SimpleAudioDec_cpp b/emulators/ppsspp/sdl/patches/patch-Core_HW_SimpleAudioDec_cpp new file mode 100644 index 00000000000..10b2efd562a --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-Core_HW_SimpleAudioDec_cpp @@ -0,0 +1,41 @@ +Build with newer FFmpeg + +Index: Core/HW/SimpleAudioDec.cpp +--- Core/HW/SimpleAudioDec.cpp.orig ++++ Core/HW/SimpleAudioDec.cpp +@@ -133,7 +133,7 @@ class FFmpegAudioDecoder : public AudioDecoder { (priv + int channels_; + + AVFrame *frame_ = nullptr; +- AVCodec *codec_ = nullptr; ++ const AVCodec *codec_ = nullptr; + AVCodecContext *codecCtx_ = nullptr; + SwrContext *swrCtx_ = nullptr; + +@@ -286,7 +286,7 @@ FFmpegAudioDecoder::~FFmpegAudioDecoder() { + avcodec_free_context(&codecCtx_); + #else + // Future versions may add other things to free, but avcodec_free_context didn't exist yet here. +- avcodec_close(codecCtx_); ++ avcodec_free_context(&codecCtx_); + av_freep(&codecCtx_->extradata); + av_freep(&codecCtx_->subtitle_header); + av_freep(&codecCtx_); +@@ -327,7 +327,7 @@ bool FFmpegAudioDecoder::Decode(const uint8_t *inbuf, + int err = avcodec_receive_frame(codecCtx_, frame_); + int len = 0; + if (err >= 0) { +- len = frame_->pkt_size; ++ len = packet.size; + got_frame = 1; + } else if (err != AVERROR(EAGAIN)) { + len = err; +@@ -392,7 +392,7 @@ bool FFmpegAudioDecoder::Decode(const uint8_t *inbuf, + + if (!swrCtx_ || swr_init(swrCtx_) < 0) { + ERROR_LOG(Log::ME, "swr_init: Failed to initialize the resampling context"); +- avcodec_close(codecCtx_); ++ avcodec_free_context(&codecCtx_); + codec_ = 0; + return false; + } diff --git a/emulators/ppsspp/sdl/patches/patch-UI_NativeApp_cpp b/emulators/ppsspp/sdl/patches/patch-UI_NativeApp_cpp new file mode 100644 index 00000000000..5284aeaa0fd --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-UI_NativeApp_cpp @@ -0,0 +1,17 @@ +Index: UI/NativeApp.cpp +--- UI/NativeApp.cpp.orig ++++ UI/NativeApp.cpp +@@ -383,12 +383,7 @@ void NativeInit(int argc, const char *argv[], const ch + g_VFS.Register("", new DirectoryReader(Path(ASSETS_DIR))); + #endif + #if !defined(MOBILE_DEVICE) && !defined(_WIN32) && !PPSSPP_PLATFORM(SWITCH) +- g_VFS.Register("", new DirectoryReader(File::GetExeDirectory() / "assets")); +- g_VFS.Register("", new DirectoryReader(File::GetExeDirectory())); +- g_VFS.Register("", new DirectoryReader(Path("/usr/local/share/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(Path("/usr/local/share/games/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(Path("/usr/share/ppsspp/assets"))); +- g_VFS.Register("", new DirectoryReader(Path("/usr/share/games/ppsspp/assets"))); ++ g_VFS.Register("", new DirectoryReader(Path("${PREFIX}/share/ppsspp/assets"))); + #endif + + #if PPSSPP_PLATFORM(SWITCH) diff --git a/emulators/ppsspp/sdl/patches/patch-cmake_Modules_FindFFmpeg_cmake b/emulators/ppsspp/sdl/patches/patch-cmake_Modules_FindFFmpeg_cmake new file mode 100644 index 00000000000..95d1c2497b2 --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-cmake_Modules_FindFFmpeg_cmake @@ -0,0 +1,27 @@ +Index: cmake/Modules/FindFFmpeg.cmake +--- cmake/Modules/FindFFmpeg.cmake.orig ++++ cmake/Modules/FindFFmpeg.cmake +@@ -33,7 +33,6 @@ set(_FFmpeg_ALL_COMPONENTS + avfilter + avformat + avutil +- postproc + swresample + swscale + ) +@@ -42,7 +41,6 @@ set(_FFmpeg_DEPS_avcodec avutil) + set(_FFmpeg_DEPS_avdevice avcodec avformat avutil) + set(_FFmpeg_DEPS_avfilter avutil) + set(_FFmpeg_DEPS_avformat avcodec avutil) +-set(_FFmpeg_DEPS_postproc avutil) + set(_FFmpeg_DEPS_swresample avutil) + set(_FFmpeg_DEPS_swscale avutil) + +@@ -51,7 +49,6 @@ set(_FFmpeg_HEADER_avdevice avdevice) + set(_FFmpeg_HEADER_avfilter avfilter) + set(_FFmpeg_HEADER_avformat avformat) + set(_FFmpeg_HEADER_avutil avutil) +-set(_FFmpeg_HEADER_postproc postprocess) + set(_FFmpeg_HEADER_swresample swresample) + set(_FFmpeg_HEADER_swscale swscale) + diff --git a/emulators/ppsspp/sdl/patches/patch-ext_cpu_features_include_cpu_features_macros_h b/emulators/ppsspp/sdl/patches/patch-ext_cpu_features_include_cpu_features_macros_h new file mode 100644 index 00000000000..7dbcf598598 --- /dev/null +++ b/emulators/ppsspp/sdl/patches/patch-ext_cpu_features_include_cpu_features_macros_h @@ -0,0 +1,14 @@ +hijack FreeBSD codepaths + +Index: ext/cpu_features/include/cpu_features_macros.h +--- ext/cpu_features/include/cpu_features_macros.h.orig ++++ ext/cpu_features/include/cpu_features_macros.h +@@ -91,7 +91,7 @@ + // Os + //////////////////////////////////////////////////////////////////////////////// + +-#if (defined(__freebsd__) || defined(__FreeBSD__)) ++#if (defined(__freebsd__) || defined(__FreeBSD__) || defined(__OpenBSD__)) + #define CPU_FEATURES_OS_FREEBSD + #endif + diff --git a/emulators/ppsspp/sdl/pkg/DESCR b/emulators/ppsspp/sdl/pkg/DESCR new file mode 100644 index 00000000000..1ac5678ae78 --- /dev/null +++ b/emulators/ppsspp/sdl/pkg/DESCR @@ -0,0 +1 @@ +PPSSPP is a Sony PlayStation Portable emulator. diff --git a/emulators/ppsspp/sdl/pkg/PLIST b/emulators/ppsspp/sdl/pkg/PLIST new file mode 100644 index 00000000000..dc02786a931 --- /dev/null +++ b/emulators/ppsspp/sdl/pkg/PLIST @@ -0,0 +1,191 @@ +@pkgpath emulators/ppsspp +@bin bin/PPSSPPSDL +share/applications/PPSSPPSDL.desktop +share/icons/hicolor/128x128/apps/ppsspp.png +share/icons/hicolor/16x16/apps/ppsspp.png +share/icons/hicolor/24x24/apps/ppsspp.png +share/icons/hicolor/256x256/apps/ppsspp.png +share/icons/hicolor/32x32/apps/ppsspp.png +share/icons/hicolor/48x48/apps/ppsspp.png +share/icons/hicolor/512x512/apps/ppsspp.png +share/icons/hicolor/64x64/apps/ppsspp.png +share/icons/hicolor/96x96/apps/ppsspp.png +share/icons/hicolor/scalable/apps/ppsspp.svg +share/mime/packages/ppsspp.xml +share/ppsspp/ +share/ppsspp/assets/ +share/ppsspp/assets/7z.png +share/ppsspp/assets/Roboto-Condensed.ttf +share/ppsspp/assets/asciifont_atlas.meta +share/ppsspp/assets/asciifont_atlas.zim +share/ppsspp/assets/compat.ini +share/ppsspp/assets/debugger/ +share/ppsspp/assets/debugger/.nojekyll +share/ppsspp/assets/debugger/asset-manifest.json +share/ppsspp/assets/debugger/favicon.ico +share/ppsspp/assets/debugger/index.html +share/ppsspp/assets/debugger/manifest.json +share/ppsspp/assets/debugger/static/ +share/ppsspp/assets/debugger/static/css/ +share/ppsspp/assets/debugger/static/css/main.3eab8a01.css +share/ppsspp/assets/debugger/static/css/main.3eab8a01.css.map +share/ppsspp/assets/debugger/static/js/ +share/ppsspp/assets/debugger/static/js/main.fe87e942.js +share/ppsspp/assets/debugger/static/js/main.fe87e942.js.LICENSE.txt +share/ppsspp/assets/debugger/static/js/main.fe87e942.js.map +share/ppsspp/assets/debugger/static/media/ +share/ppsspp/assets/debugger/static/media/logo.94f885ce93dfb6d29a122402a15cccca.svg +share/ppsspp/assets/flash0/ +share/ppsspp/assets/flash0/font/ +share/ppsspp/assets/flash0/font/jpn0.pgf +share/ppsspp/assets/flash0/font/kr0.pgf +share/ppsspp/assets/flash0/font/ltn0.pgf +share/ppsspp/assets/flash0/font/ltn1.pgf +share/ppsspp/assets/flash0/font/ltn10.pgf +share/ppsspp/assets/flash0/font/ltn11.pgf +share/ppsspp/assets/flash0/font/ltn12.pgf +share/ppsspp/assets/flash0/font/ltn13.pgf +share/ppsspp/assets/flash0/font/ltn14.pgf +share/ppsspp/assets/flash0/font/ltn15.pgf +share/ppsspp/assets/flash0/font/ltn2.pgf +share/ppsspp/assets/flash0/font/ltn3.pgf +share/ppsspp/assets/flash0/font/ltn4.pgf +share/ppsspp/assets/flash0/font/ltn5.pgf +share/ppsspp/assets/flash0/font/ltn6.pgf +share/ppsspp/assets/flash0/font/ltn7.pgf +share/ppsspp/assets/flash0/font/ltn8.pgf +share/ppsspp/assets/flash0/font/ltn9.pgf +share/ppsspp/assets/font_atlas.meta +share/ppsspp/assets/font_atlas.zim +share/ppsspp/assets/gamecontrollerdb.txt +share/ppsspp/assets/icon_regular_72.png +share/ppsspp/assets/infra-dns.json +share/ppsspp/assets/lang/ +share/ppsspp/assets/lang/ar_AE.ini +share/ppsspp/assets/lang/az_AZ.ini +share/ppsspp/assets/lang/be_BY.ini +share/ppsspp/assets/lang/bg_BG.ini +share/ppsspp/assets/lang/ca_ES.ini +share/ppsspp/assets/lang/cz_CZ.ini +share/ppsspp/assets/lang/da_DK.ini +share/ppsspp/assets/lang/de_DE.ini +share/ppsspp/assets/lang/dr_ID.ini +share/ppsspp/assets/lang/en_US.ini +share/ppsspp/assets/lang/es_ES.ini +share/ppsspp/assets/lang/es_LA.ini +share/ppsspp/assets/lang/fa_IR.ini +share/ppsspp/assets/lang/fi_FI.ini +share/ppsspp/assets/lang/fr_FR.ini +share/ppsspp/assets/lang/gl_ES.ini +share/ppsspp/assets/lang/gr_EL.ini +share/ppsspp/assets/lang/he_IL.ini +share/ppsspp/assets/lang/he_IL_invert.ini +share/ppsspp/assets/lang/hr_HR.ini +share/ppsspp/assets/lang/hu_HU.ini +share/ppsspp/assets/lang/id_ID.ini +share/ppsspp/assets/lang/it_IT.ini +share/ppsspp/assets/lang/ja_JP.ini +share/ppsspp/assets/lang/jv_ID.ini +share/ppsspp/assets/lang/ko_KR.ini +share/ppsspp/assets/lang/ku_SO.ini +share/ppsspp/assets/lang/lo_LA.ini +share/ppsspp/assets/lang/lt-LT.ini +share/ppsspp/assets/lang/ms_MY.ini +share/ppsspp/assets/lang/nl_NL.ini +share/ppsspp/assets/lang/no_NO.ini +share/ppsspp/assets/lang/pl_PL.ini +share/ppsspp/assets/lang/pt_BR.ini +share/ppsspp/assets/lang/pt_PT.ini +share/ppsspp/assets/lang/ro_RO.ini +share/ppsspp/assets/lang/ru_RU.ini +share/ppsspp/assets/lang/sv_SE.ini +share/ppsspp/assets/lang/tg_PH.ini +share/ppsspp/assets/lang/th_TH.ini +share/ppsspp/assets/lang/tr_TR.ini +share/ppsspp/assets/lang/uk_UA.ini +share/ppsspp/assets/lang/vi_VN.ini +share/ppsspp/assets/lang/zh_CN.ini +share/ppsspp/assets/lang/zh_TW.ini +share/ppsspp/assets/langregion.ini +share/ppsspp/assets/logo.png +share/ppsspp/assets/ppge_atlas.meta +share/ppsspp/assets/ppge_atlas.zim +share/ppsspp/assets/rargray.png +share/ppsspp/assets/sfx_achievement_unlocked.wav +share/ppsspp/assets/sfx_back.wav +share/ppsspp/assets/sfx_confirm.wav +share/ppsspp/assets/sfx_leaderbord_submitted.wav +share/ppsspp/assets/sfx_select.wav +share/ppsspp/assets/sfx_toggle_off.wav +share/ppsspp/assets/sfx_toggle_on.wav +share/ppsspp/assets/shaders/ +share/ppsspp/assets/shaders/4xhqglsl.fsh +share/ppsspp/assets/shaders/4xhqglsl.vsh +share/ppsspp/assets/shaders/5xBR-lv2.fsh +share/ppsspp/assets/shaders/5xBR.fsh +share/ppsspp/assets/shaders/5xBR.vsh +share/ppsspp/assets/shaders/GaussianDownscale.fsh +share/ppsspp/assets/shaders/aacolor.fsh +share/ppsspp/assets/shaders/aacolor.vsh +share/ppsspp/assets/shaders/bloom.fsh +share/ppsspp/assets/shaders/bloomnoblur.fsh +share/ppsspp/assets/shaders/cartoon.fsh +share/ppsspp/assets/shaders/cartoon.vsh +share/ppsspp/assets/shaders/checkers.fsh +share/ppsspp/assets/shaders/colorcorrection.fsh +share/ppsspp/assets/shaders/crt.fsh +share/ppsspp/assets/shaders/defaultshaders.ini +share/ppsspp/assets/shaders/fakereflections.fsh +share/ppsspp/assets/shaders/fxaa.fsh +share/ppsspp/assets/shaders/fxaa.vsh +share/ppsspp/assets/shaders/natural.fsh +share/ppsspp/assets/shaders/natural.vsh +share/ppsspp/assets/shaders/naturalA.fsh +share/ppsspp/assets/shaders/naturalA.vsh +share/ppsspp/assets/shaders/persistence.fsh +share/ppsspp/assets/shaders/psp_color.fsh +share/ppsspp/assets/shaders/scanlines.fsh +share/ppsspp/assets/shaders/sharpen.fsh +share/ppsspp/assets/shaders/stereo_red_blue.fsh +share/ppsspp/assets/shaders/stereo_sbs.fsh +share/ppsspp/assets/shaders/tex_2xbrz.csh +share/ppsspp/assets/shaders/tex_4xbrz.csh +share/ppsspp/assets/shaders/tex_mmpx.csh +share/ppsspp/assets/shaders/upscale_bicubic.fsh +share/ppsspp/assets/shaders/upscale_bicubic.vsh +share/ppsspp/assets/shaders/upscale_sharp_bilinear.fsh +share/ppsspp/assets/shaders/upscale_sharp_bilinear.vsh +share/ppsspp/assets/shaders/upscale_spline36.fsh +share/ppsspp/assets/shaders/upscale_spline36.vsh +share/ppsspp/assets/shaders/videoAA.fsh +share/ppsspp/assets/shaders/vignette.fsh +share/ppsspp/assets/themes/ +share/ppsspp/assets/themes/1995.ini +share/ppsspp/assets/themes/alpine.ini +share/ppsspp/assets/themes/defaultthemes.ini +share/ppsspp/assets/themes/slateforest.ini +share/ppsspp/assets/themes/strawberry.ini +share/ppsspp/assets/themes/vinewood.ini +share/ppsspp/assets/ui_atlas.meta +share/ppsspp/assets/ui_atlas.zim +share/ppsspp/assets/unknown.png +share/ppsspp/assets/vfpu/ +share/ppsspp/assets/vfpu/vfpu_asin_lut65536.dat +share/ppsspp/assets/vfpu/vfpu_asin_lut_deltas.dat +share/ppsspp/assets/vfpu/vfpu_asin_lut_indices.dat +share/ppsspp/assets/vfpu/vfpu_exp2_lut.dat +share/ppsspp/assets/vfpu/vfpu_exp2_lut65536.dat +share/ppsspp/assets/vfpu/vfpu_log2_lut.dat +share/ppsspp/assets/vfpu/vfpu_log2_lut65536.dat +share/ppsspp/assets/vfpu/vfpu_log2_lut65536_quadratic.dat +share/ppsspp/assets/vfpu/vfpu_rcp_lut.dat +share/ppsspp/assets/vfpu/vfpu_rsqrt_lut.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut8192.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut_delta.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut_exceptions.dat +share/ppsspp/assets/vfpu/vfpu_sin_lut_interval_delta.dat +share/ppsspp/assets/vfpu/vfpu_sqrt_lut.dat +share/ppsspp/assets/zip.png +@tag update-mime-database +@tag update-desktop-database +@tag gtk-update-icon-cache %D/share/icons/hicolor