diff --git a/metadata/com.retroarch.txt b/metadata/com.retroarch.txt
deleted file mode 100644
index b8592c2e6e..0000000000
--- a/metadata/com.retroarch.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-Categories:Games
-License:GPL-3.0-or-later
-Web Site:http://www.libretro.com
-Source Code:https://github.com/libretro/RetroArch
-Issue Tracker:https://github.com/libretro/RetroArch/issues
-
-Auto Name:RetroArch
-Summary:Modular multi-system emulator
-Description:
-RetroArch is a modular multi-system game/emulator system that is designed to be
-fast, lightweight, and portable. It allows emulator developers to implement
-their emulators as special libraries (RetroArch cores) to target wide range of
-platforms, including game consoles and mobile devices, without writing any
-platform-specific code.
-
-Latest F-Droid build supports following systems:
-
-* PlayStation 1 via Mednafen PSX (x86/MIPS) and PCSX ReARMed (ARM)
-* Super Nintendo Entertainment System with bSNES (x86/ARM only)
-* VisualBoyAdvance with VBA-M
-* Atari 2600 with Stella
-* Cave Story aka DÅkutsu Monogatari pseudo-system with NxEngine
-.
-
-Repo Type:git
-Repo:https://github.com/libretro/RetroArch.git
-
-Build:1.0.0.2,37
- disable=crash
- commit=9a66975589c5d2544bdfdae2e965b3a27e7149a5
- subdir=android/phoenix
- patch=fdroid-rarch.patch
- srclibs=libretro-super@9c8997ecc,libretro-overlays@fc92b86be,rarch-common-shaders@cd3175237,pcsx_rearmed@9c79adfd3,bSNES@033e25b1b,vba-m@9a3b3f36a,nxengine@3ad46418b,stella-libretro@618c90ecc
- forcevercode=yes
- prebuild=mkdir -p assets/{cores,overlays,shaders_glsl} && \
- cp -R $$libretro-overlays$$/* assets/overlays/ && \
- cp -R $$libretro-super$$/dist/info assets/ && \
- ../../tools/cg2glsl.py $$rarch-common-shaders$$ assets/shaders_glsl && \
- sed 's/\$(SRCDIR)/..\/../' -i $$bSNES$$/target-libretro/jni/Android.mk && \
- sed -i "s|RARCH_DIR := ../../..|RARCH_DIR := $(realpath ../../)|" jni/Android.mk && \
- build=CFLAGS="-D_ANDROID_KEYCODES_H" $$NDK$$/ndk-build -C . APP_ABI=armeabi-v7a && \
- $$NDK$$/ndk-build -C $$stella-libretro$$/jni APP_ABI=armeabi-v7a && \
- mv $$stella-libretro$$/libs/armeabi-v7a/* assets/cores/stella_libretro_android.so && \
- $$NDK$$/ndk-build -C $$vba-m$$/src/libretro/jni APP_ABI=armeabi-v7a && \
- mv $$vba-m$$/src/libretro/libs/armeabi-v7a/* assets/cores/vbam_libretro_android.so && \
- $$NDK$$/ndk-build -C $$nxengine$$/jni APP_ABI=armeabi-v7a && \
- mv $$nxengine$$/libs/armeabi-v7a/* assets/cores/nxengine_libretro_android.so && \
- $$NDK$$/ndk-build -C $$pcsx_rearmed$$ APP_ABI=armeabi-v7a && \
- mv $$pcsx_rearmed$$/libs/armeabi-v7a/* assets/cores/pcsx_rearmed_libretro_neon_android.so && \
- $$NDK$$/ndk-build -C $$bSNES$$/target-libretro APP_ABI=armeabi-v7a && \
- mv $$bSNES$$/target-libretro/libs/armeabi-v7a/* assets/cores/bsnes_performance_libretro_android.so
- update=.,libs/appcompat
- target=android-21
- scanignore=libs/appcompat/libs
- scandelete=.,..
-
-Build:1.0.0.2,38
- disable=crash
- commit=9a66975589c5d2544bdfdae2e965b3a27e7149a5
- subdir=android/phoenix
- patch=fdroid-rarch.patch
- srclibs=libretro-super@9c8997ecc,libretro-overlays@fc92b86be,rarch-common-shaders@cd3175237,vba-m@9a3b3f36a,nxengine@3ad46418b,stella-libretro@618c90ecc,mednafen-psx@af0ce6574
- forcevercode=yes
- prebuild=mkdir -p assets/{cores,overlays,shaders_glsl} && \
- cp -R $$libretro-overlays$$/* assets/overlays/ && \
- cp -R $$libretro-super$$/dist/info assets/ && \
- ../../tools/cg2glsl.py $$rarch-common-shaders$$ assets/shaders_glsl && \
- sed -i "s|RARCH_DIR := ../../..|RARCH_DIR := $(realpath ../../)|" jni/Android.mk
- update=.,libs/appcompat
- target=android-21
- scanignore=libs/appcompat/libs
- scandelete=.,..
- build=CFLAGS="-D_ANDROID_KEYCODES_H" $$NDK$$/ndk-build -C . APP_ABI=mips && \
- $$NDK$$/ndk-build -C $$stella-libretro$$/jni APP_ABI=mips && \
- mv $$stella-libretro$$/libs/mips/* assets/cores/stella_libretro_android.so && \
- $$NDK$$/ndk-build -C $$vba-m$$/src/libretro/jni APP_ABI=mips && \
- mv $$vba-m$$/src/libretro/libs/mips/* assets/cores/vbam_libretro_android.so && \
- $$NDK$$/ndk-build -C $$nxengine$$/jni APP_ABI=mips && \
- mv $$nxengine$$/libs/mips/* assets/cores/nxengine_libretro_android.so && \
- $$NDK$$/ndk-build -C $$mednafen-psx$$/jni APP_ABI=mips && \
- mv $$mednafen-psx$$/libs/mips/* assets/cores/mednafen_psx_libretro_android.so
-
-Build:1.0.0.2,39
- disable=crash
- commit=9a66975589c5d2544bdfdae2e965b3a27e7149a5
- subdir=android/phoenix
- patch=fdroid-rarch.patch
- srclibs=libretro-super@9c8997ecc,libretro-overlays@fc92b86be,rarch-common-shaders@cd3175237,vba-m@9a3b3f36a,nxengine@3ad46418b,stella-libretro@618c90ecc,mednafen-psx@af0ce6574,bSNES@033e25b1b
- forcevercode=yes
- prebuild=mkdir -p assets/{cores,overlays,shaders_glsl} && \
- cp -R $$libretro-overlays$$/* assets/overlays/ && \
- cp -R $$libretro-super$$/dist/info assets/ && \
- ../../tools/cg2glsl.py $$rarch-common-shaders$$ assets/shaders_glsl && \
- sed 's/\$(SRCDIR)/..\/../' -i $$bSNES$$/target-libretro/jni/Android.mk && \
- sed -i "s|RARCH_DIR := ../../..|RARCH_DIR := $(realpath ../../)|" jni/Android.mk
- update=.,libs/appcompat
- target=android-21
- scanignore=libs/appcompat/libs
- scandelete=.,..
- build=CFLAGS="-D_ANDROID_KEYCODES_H" $$NDK$$/ndk-build -C . APP_ABI=x86 && \
- $$NDK$$/ndk-build -C $$stella-libretro$$/jni APP_ABI=x86 && \
- mv $$stella-libretro$$/libs/x86/* assets/cores/stella_libretro_android.so && \
- $$NDK$$/ndk-build -C $$vba-m$$/src/libretro/jni APP_ABI=x86 && \
- mv $$vba-m$$/src/libretro/libs/x86/* assets/cores/vbam_libretro_android.so && \
- $$NDK$$/ndk-build -C $$nxengine$$/jni APP_ABI=x86 && \
- mv $$nxengine$$/libs/x86/* assets/cores/nxengine_libretro_android.so && \
- $$NDK$$/ndk-build -C $$bSNES$$/target-libretro APP_ABI=x86 && \
- mv $$bSNES$$/target-libretro/libs/x86/* assets/cores/bsnes_performance_libretro_android.so && \
- $$NDK$$/ndk-build -C $$mednafen-psx$$/jni APP_ABI=x86 && \
- mv $$mednafen-psx$$/libs/x86/* assets/cores/mednafen_psx_libretro_android.so
-
-Maintainer Notes:
-
-Releases are hard to pinpoint. Tags currently make sense for desktop version only.
-See http://www.libretro.com/index.php/downloads/ for exact release dates. Some
-modules have to be built from commits published after upstream release to fix
-compilation issues, everything else comes from commits as close to apk publishing
-date as possible.
-
-See also:
-https://github.com/libretro/RetroArch/wiki/Compilation-guide-(Android-from-Linux)
-https://github.com/libretro/libretro-super/blob/HEAD/libretro-fetch.sh
-https://github.com/libretro/libretro-super/blob/HEAD/libretro-build-android-mk.sh
-
-Version codes:
- +0: - (upstream)
- +1: armv7
- +2: mips
- +3: x86 (CV)
-.
-
-Archive Policy:6 versions
-Auto Update Mode:None
-Update Check Mode:None
-Vercode Operation:%c + 3
-Current Version:1.0.0.2
-Current Version Code:39
diff --git a/metadata/com.retroarch/fdroid-rarch.patch b/metadata/com.retroarch/fdroid-rarch.patch
deleted file mode 100644
index 62bb1f4fba..0000000000
--- a/metadata/com.retroarch/fdroid-rarch.patch
+++ /dev/null
@@ -1,402 +0,0 @@
-diff --git a/android/phoenix/AndroidManifest.xml b/android/phoenix/AndroidManifest.xml
-index b686f73..f45cb74 100644
---- a/android/phoenix/AndroidManifest.xml
-+++ b/android/phoenix/AndroidManifest.xml
-@@ -19,7 +19,6 @@
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:hasCode="true">
--
-
-
-
-diff --git a/android/phoenix/project.properties b/android/phoenix/project.properties
-index 164426b..f984037 100644
---- a/android/phoenix/project.properties
-+++ b/android/phoenix/project.properties
-@@ -14,4 +14,3 @@
- target=android-17
- android.library.reference.1=libs/appcompat
- android.library=false
--android.library.reference.2=libs/googleplay
-diff --git a/android/phoenix/res/values/strings.xml b/android/phoenix/res/values/strings.xml
-index b6e064e..04db4f8 100644
---- a/android/phoenix/res/values/strings.xml
-+++ b/android/phoenix/res/values/strings.xml
-@@ -76,7 +76,7 @@
- Asset Extraction
-
-
-- Keep cores
-+ Good for me
- Remove non-GPL cores
-
-
-diff --git a/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java b/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java
-index 12b5cc0..41e5604 100644
---- a/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java
-+++ b/android/phoenix/src/com/retroarch/browser/mainmenu/gplwaiver/GPLWaiverDialogFragment.java
-@@ -36,28 +36,6 @@ public final class GPLWaiverDialogFragment extends DialogFragment
- gplDialog.setTitle(R.string.gpl_waiver);
- gplDialog.setMessage(R.string.gpl_waiver_desc);
- gplDialog.setPositiveButton(R.string.keep_cores, null);
-- gplDialog.setNegativeButton(R.string.remove_cores, new DialogInterface.OnClickListener()
-- {
-- @Override
-- public void onClick(DialogInterface dialog, int which)
-- {
-- final File[] libs = new File(getActivity().getApplicationInfo().dataDir, "/cores").listFiles();
-- for (final File lib : libs)
-- {
-- ModuleWrapper module = new ModuleWrapper(getActivity(), lib);
--
-- boolean gplv3 = module.getCoreLicense().equals("GPLv3");
-- boolean gplv2 = module.getCoreLicense().equals("GPLv2");
--
-- if (!gplv3 && !gplv2)
-- {
-- String libName = lib.getName();
-- Log.i("GPL WAIVER", "Deleting non-GPL core " + libName + "...");
-- lib.delete();
-- }
-- }
-- }
-- });
-
- return gplDialog.create();
- }
-diff --git a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java
-index 7b6e499..56ea6a0 100644
---- a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java
-+++ b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityCommon.java
-@@ -5,7 +5,7 @@ import com.retroarch.browser.preferences.util.UserPreferences;
- /**
- * Class which provides common methods for RetroActivity related classes.
- */
--public class RetroActivityCommon extends RetroActivityLocation
-+public class RetroActivityCommon extends android.app.NativeActivity
- {
- @Override
- public void onDestroy()
-diff --git a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityLocation.java b/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityLocation.java
-deleted file mode 100644
-index 5d590f9..0000000
---- a/android/phoenix/src/com/retroarch/browser/retroactivity/RetroActivityLocation.java
-+++ /dev/null
-@@ -1,316 +0,0 @@
--package com.retroarch.browser.retroactivity;
--
--import com.google.android.gms.common.ConnectionResult;
--import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks;
--import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener;
--import com.google.android.gms.location.LocationClient;
--import com.google.android.gms.location.LocationListener;
--import com.google.android.gms.location.LocationRequest;
--import com.retroarch.browser.preferences.util.UserPreferences;
--
--import android.app.NativeActivity;
--import android.content.IntentSender;
--import android.content.SharedPreferences;
--import android.location.Location;
--import android.os.Bundle;
--import android.util.Log;
--import android.widget.Toast;
--
--/**
-- * Class that implements location-based functionality for
-- * the {@link RetroActivityFuture} and {@link RetroActivityPast}
-- * activities.
-- */
--public class RetroActivityLocation extends NativeActivity
--implements ConnectionCallbacks, OnConnectionFailedListener, LocationListener
--{
-- /* LOCATION VARIABLES */
-- private static int CONNECTION_FAILURE_RESOLUTION_REQUEST = 0;
-- private LocationClient mLocationClient = null;
-- private Location mCurrentLocation;
--
-- // Define an object that holds accuracy and frequency parameters
-- LocationRequest mLocationRequest = null;
-- boolean mUpdatesRequested = false;
-- boolean locationChanged = false;
-- boolean location_service_running = false;
--
-- /**
-- * Called by Location Services when the request to connect the
-- * client finishes successfully. At this point, you can
-- * request the current location or start periodic updates
-- */
-- @Override
-- public void onConnected(Bundle dataBundle)
-- {
-- if (mLocationClient == null)
-- return;
--
-- // Display the connection status
-- Toast.makeText(this, "Connected", Toast.LENGTH_SHORT).show();
-- location_service_running = true;
--
-- // If already requested, start periodic updates
-- if (mUpdatesRequested)
-- {
-- mLocationClient.requestLocationUpdates(mLocationRequest, this, null);
-- }
-- else
-- {
-- // Get last known location
-- mCurrentLocation = mLocationClient.getLastLocation();
-- locationChanged = true;
-- }
-- }
--
-- /**
-- * Called by Location Services if the connection to the
-- * location client drops because of an error.
-- */
-- @Override
-- public void onDisconnected()
-- {
-- if (mLocationClient == null)
-- return;
--
-- // Display the connection status
-- Toast.makeText(this, "Disconnected. Please re-connect.", Toast.LENGTH_SHORT).show();
--
-- // If the client is connected
-- if (mLocationClient.isConnected())
-- {
-- /*
-- * Remove location updates for a listener.
-- * The current Activity is the listener, so
-- * the argument is "this".
-- */
-- mLocationClient.removeLocationUpdates(this);
-- }
--
-- location_service_running = false;
-- }
--
-- /**
-- * Called by Location Services if the attempt to
-- * Location Services fails.
-- */
-- @Override
-- public void onConnectionFailed(ConnectionResult connectionResult)
-- {
-- /*
-- * Google Play services can resolve some errors it detects.
-- * If the error has a resolution, try sending an Intent to
-- * start a Google Play services activity that can resolve
-- * error.
-- */
-- if (connectionResult.hasResolution())
-- {
-- try
-- {
-- // Start an Activity that tries to resolve the error
-- connectionResult.startResolutionForResult(this, CONNECTION_FAILURE_RESOLUTION_REQUEST);
-- }
-- catch (IntentSender.SendIntentException e)
-- {
-- // Thrown if Google Play services cancelled the original PendingIntent
-- e.printStackTrace();
-- }
-- }
-- else
-- {
-- /*
-- * If no resolution is available, display a dialog to the
-- * user with the error.
-- */
-- Log.e("Connection failed", "error code: " + connectionResult.getErrorCode());
-- }
-- }
--
-- /**
-- * Sets the update interval at which location-based updates
-- * should occur
-- */
-- public void onLocationSetInterval(int update_interval_in_ms, int distance_interval)
-- {
-- // Use high accuracy
-- if (mLocationRequest == null)
-- return;
--
-- mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
--
-- if (update_interval_in_ms == 0)
-- mLocationRequest.setInterval(5 * 1000); // 5 seconds
-- else
-- mLocationRequest.setInterval(update_interval_in_ms);
--
-- // Set the fastest update interval to 1 second
-- mLocationRequest.setFastestInterval(1000);
-- }
--
-- /**
-- * Initializing methods for location based functionality.
-- */
-- public void onLocationInit()
-- {
-- /*
-- * Create a new location client, using the enclosing class to
-- * handle callbacks.
-- */
-- if (mLocationClient == null)
-- mLocationClient = new LocationClient(this, this, this);
--
-- // Start with updates turned off
-- mUpdatesRequested = false;
--
-- // Create the LocationRequest object
-- if (mLocationRequest == null)
-- mLocationRequest = LocationRequest.create();
--
-- onLocationSetInterval(0, 0);
-- }
--
--
-- /**
-- * Executed upon starting the {@link LocationClient}.
-- */
-- public void onLocationStart()
-- {
-- if (mLocationClient == null)
-- return;
--
-- mUpdatesRequested = true;
--
-- // Connect the client.
-- mLocationClient.connect();
-- }
--
-- /**
-- * Free up location services resources.
-- */
-- public void onLocationFree()
-- {
-- /* TODO/FIXME */
-- }
--
-- /**
-- * Executed upon stopping the location client.
-- * Does nothing if called when the client is not started.
-- */
-- public void onLocationStop()
-- {
-- // Disconnecting the client invalidates it.
-- if (mLocationClient != null && mUpdatesRequested)
-- mLocationClient.disconnect();
-- }
--
-- /**
-- * Gets the latitude at the current location in degrees.
-- *
-- * @return the latitude at the current location.
-- */
-- public double onLocationGetLatitude()
-- {
-- return mCurrentLocation.getLatitude();
-- }
--
-- /**
-- * Gets the longitude at the current location in degrees.
-- *
-- * @return the longitude at the current location.
-- */
-- public double onLocationGetLongitude()
-- {
-- return mCurrentLocation.getLongitude();
-- }
--
-- /**
-- * Gets the horizontal accuracy of the current location
-- * in meters. (NOTE: There seems to be no vertical accuracy
-- * for a given location with the Android location API)
-- *
-- * @return the horizontal accuracy of the current position.
-- */
-- public double onLocationGetHorizontalAccuracy()
-- {
-- return mCurrentLocation.getAccuracy();
-- }
--
-- /**
-- * Tells us whether the location listener callback has
-- * updated the current location since the last time
-- * we polled.
-- *
-- * @return true if location has changed, false if location has not changed.
-- */
-- public boolean onLocationHasChanged()
-- {
-- boolean hasChanged = locationChanged;
--
-- // Reset flag
-- if (hasChanged)
-- locationChanged = false;
--
-- return hasChanged;
-- }
--
-- // Define the callback method that receives location updates
-- @Override
-- public void onLocationChanged(Location location)
-- {
-- if (!location_service_running)
-- return;
--
-- locationChanged = true;
-- mCurrentLocation = location;
--
-- // Report to the UI that the location was updated
-- String msg = "Updated Location: " + location.getLatitude() + ", " + location.getLongitude();
-- Log.i("RetroArch GPS", msg);
-- //Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
-- }
--
-- @Override
-- public void onPause()
-- {
-- // Save the current setting for updates
-- SharedPreferences prefs = UserPreferences.getPreferences(this);
-- SharedPreferences.Editor edit = prefs.edit();
-- edit.putBoolean("LOCATION_UPDATES_ON", mUpdatesRequested);
-- edit.commit();
--
-- super.onPause();
-- }
--
-- @Override
-- public void onResume()
-- {
-- SharedPreferences prefs = UserPreferences.getPreferences(this);
-- SharedPreferences.Editor edit = prefs.edit();
--
-- /*
-- * Get any previous setting for location updates
-- * Gets "false" if an error occurs
-- */
-- if (prefs.contains("LOCATION_UPDATES_ON"))
-- {
-- mUpdatesRequested = prefs.getBoolean("LOCATION_UPDATES_ON", false);
-- if (mUpdatesRequested)
-- location_service_running = true;
-- }
-- else // Otherwise, turn off location updates
-- {
-- edit.putBoolean("LOCATION_UPDATES_ON", false);
-- edit.commit();
-- location_service_running = false;
-- }
--
-- super.onResume();
-- }
--
-- @Override
-- public void onStop()
-- {
-- onLocationStop();
-- super.onStop();
-- }
--}
diff --git a/metadata/org.retroarch.txt b/metadata/org.retroarch.txt
deleted file mode 100644
index 13defd858d..0000000000
--- a/metadata/org.retroarch.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-Categories:Games
-License:GPL-3.0-or-later
-Web Site:http://www.libretro.com
-Source Code:https://github.com/libretro/RetroArch
-Issue Tracker:https://github.com/libretro/RetroArch/issues
-Changelog:https://github.com/libretro/RetroArch/blob/HEAD/CHANGES.md
-
-Name:RetroArch (obsolete)
-Auto Name:RetroArch
-Summary:Modular multi-system emulator
-Description:
-RetroArch is a modular multi-system game/emulator system that is designed to be
-fast, lightweight, and portable. It allows emulator developers to implement
-their emulators as special libraries (RetroArch cores) to target wide range of
-platforms, including game consoles and mobile devices, without writing any
-platform-specific code.
-
-This build supports following systems:
-
-* PlayStation 1 with PCSX ReARMed core (ARMv7 only)
-
-Note: upstream developer have changed package id, new package is at
-[[com.retroarch]].
-
-Anti-features: Addons. This build does not include non-free components, but
-majority of cores, included in official .apk, have non-free licenses or contain
-proprietary parts.
-.
-
-Repo Type:git
-Repo:https://github.com/libretro/RetroArch.git
-
-Build:0.9.9.6,22
- commit=7d25e64fb446af37ccc50693e5662d8d48b655e5
- subdir=android/phoenix
- srclibs=pcsx_rearmed@c6c27ccd79,bSNES@2b89497415
- prebuild=cp -R ../../media/overlays/ assets/
- build=$$NDK$$/ndk-build -C ../native && \
- mv ../native/libs/ . && \
- $$NDK$$/ndk-build -C $$pcsx_rearmed$$ APP_ABI=armeabi-v7a && \
- mv $$pcsx_rearmed$$/libs/armeabi-v7a/libretro.so libs/armeabi-v7a/libretro_pcsx_rearmed-neon.so && \
- $$NDK$$/ndk-build -C $$pcsx_rearmed$$ clean APP_ABI=armeabi-v7a && \
- $$NDK$$/ndk-build -C $$pcsx_rearmed$$ NO_NEON=1 APP_ABI=armeabi-v7a && \
- mv $$pcsx_rearmed$$/libs/armeabi-v7a/libretro-noneon.so libs/armeabi-v7a/libretro_pcsx_rearmed.so
-
-Archive Policy:0 versions
-Auto Update Mode:None
-Update Check Mode:None
-Current Version:0.9.9.6
-Current Version Code:22
diff --git a/metadata/org.retroarch.yml b/metadata/org.retroarch.yml
new file mode 100644
index 0000000000..48520fa4b3
--- /dev/null
+++ b/metadata/org.retroarch.yml
@@ -0,0 +1,52 @@
+Categories:
+ - Games
+License: GPL-3.0-or-later
+WebSite: http://www.libretro.com
+SourceCode: https://github.com/libretro/RetroArch
+IssueTracker: https://github.com/libretro/RetroArch/issues
+Changelog: https://github.com/libretro/RetroArch/blob/HEAD/CHANGES.md
+
+Name: RetroArch (obsolete)
+AutoName: RetroArch
+Summary: Modular multi-system emulator
+Description: |-
+ RetroArch is a modular multi-system game/emulator system that is designed to be
+ fast, lightweight, and portable. It allows emulator developers to implement
+ their emulators as special libraries (RetroArch cores) to target wide range of
+ platforms, including game consoles and mobile devices, without writing any
+ platform-specific code.
+
+ This build supports following systems:
+
+ * PlayStation 1 with PCSX ReARMed core (ARMv7 only)
+
+ Anti-features: Addons. This build does not include non-free components, but
+ majority of cores, included in official .apk, have non-free licenses or contain
+ proprietary parts.
+
+RepoType: git
+Repo: https://github.com/libretro/RetroArch.git
+
+Builds:
+ - versionName: 0.9.9.6
+ versionCode: 22
+ commit: 7d25e64fb446af37ccc50693e5662d8d48b655e5
+ subdir: android/phoenix
+ srclibs:
+ - pcsx_rearmed@c6c27ccd79
+ - bSNES@2b89497415
+ prebuild: cp -R ../../media/overlays/ assets/
+ build:
+ - $$NDK$$/ndk-build -C ../native
+ - mv ../native/libs/ .
+ - $$NDK$$/ndk-build -C $$pcsx_rearmed$$ APP_ABI=armeabi-v7a
+ - mv $$pcsx_rearmed$$/libs/armeabi-v7a/libretro.so libs/armeabi-v7a/libretro_pcsx_rearmed-neon.so
+ - $$NDK$$/ndk-build -C $$pcsx_rearmed$$ clean APP_ABI=armeabi-v7a
+ - $$NDK$$/ndk-build -C $$pcsx_rearmed$$ NO_NEON=1 APP_ABI=armeabi-v7a
+ - mv $$pcsx_rearmed$$/libs/armeabi-v7a/libretro-noneon.so libs/armeabi-v7a/libretro_pcsx_rearmed.so
+
+ArchivePolicy: 0 versions
+AutoUpdateMode: None
+UpdateCheckMode: None
+CurrentVersion: 0.9.9.6
+CurrentVersionCode: 22