diff --git a/metadata/com.retroarch.txt b/metadata/com.retroarch.txt
new file mode 100644
index 0000000000..14ff8accfa
--- /dev/null
+++ b/metadata/com.retroarch.txt
@@ -0,0 +1,143 @@
+Categories:Games
+License:GPLv3+
+# See also:
+# http://mednafen.sourceforge.net/documentation/psx.html
+# http://notaz.gp2x.de/pcsx_rearmed.php
+# http://byuu.org/higan
+Web Site:http://www.libretro.com
+Source Code:https://github.com/libretro/RetroArch
+Issue Tracker:https://github.com/libretro/RetroArch/issues
+
+Name:RetroArch
+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:
+
+* Play Station 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
+.
+
+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)
+.
+
+Repo Type:git
+Repo:https://github.com/libretro/RetroArch.git
+
+# removed Play Services, fixed build and tackled intro dialog
+Build:1.0.0.2,37
+ commit=9a66975589c5d2544bdfdae2e965b3a27e7149a5
+ patch=fdroid-rarch.patch
+ target=android-21
+ subdir=android/phoenix
+ forcevercode=yes
+ update=.,libs/appcompat
+ scanignore=libs/appcompat/libs
+ scandelete=.,..
+ srclibs=libretro-super@9c8997ecc,libretro-overlays@fc92b86be,rarch-common-shaders@cd3175237,pcsx_rearmed@9c79adfd3,bSNES@033e25b1b,vba-m@9a3b3f36a,nxengine@3ad46418b,stella-libretro@618c90ecc
+ 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
+ buildjni=no
+
+Build:1.0.0.2,38
+ commit=9a66975589c5d2544bdfdae2e965b3a27e7149a5
+ patch=fdroid-rarch.patch
+ target=android-21
+ subdir=android/phoenix
+ forcevercode=yes
+ update=.,libs/appcompat
+ scanignore=libs/appcompat/libs
+ scandelete=.,..
+ srclibs=libretro-super@9c8997ecc,libretro-overlays@fc92b86be,rarch-common-shaders@cd3175237,vba-m@9a3b3f36a,nxengine@3ad46418b,stella-libretro@618c90ecc,mednafen-psx@af0ce6574
+ 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
+ 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
+ buildjni=no
+
+Build:1.0.0.2,39
+ commit=9a66975589c5d2544bdfdae2e965b3a27e7149a5
+ patch=fdroid-rarch.patch
+ target=android-21
+ subdir=android/phoenix
+ forcevercode=yes
+ update=.,libs/appcompat
+ scanignore=libs/appcompat/libs
+ scandelete=.,..
+ srclibs=libretro-super@9c8997ecc,libretro-overlays@fc92b86be,rarch-common-shaders@cd3175237,vba-m@9a3b3f36a,nxengine@3ad46418b,stella-libretro@618c90ecc,mednafen-psx@af0ce6574,bSNES@033e25b1b
+ 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=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
+ buildjni=no
+
+Auto Update Mode:None
+Archive Policy:6 versions
+Update Check Mode:None
+Current Version:1.0.0.2
+Vercode Operation:%c + 3
+Current Version Code:37
+
diff --git a/metadata/com.retroarch/fdroid-rarch.patch b/metadata/com.retroarch/fdroid-rarch.patch
new file mode 100644
index 0000000000..62bb1f4fba
--- /dev/null
+++ b/metadata/com.retroarch/fdroid-rarch.patch
@@ -0,0 +1,402 @@
+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
index db4e7b5707..097e5e11df 100644
--- a/metadata/org.retroarch.txt
+++ b/metadata/org.retroarch.txt
@@ -7,7 +7,7 @@ Web Site:http://www.libretro.com
Source Code:https://github.com/libretro/RetroArch
Issue Tracker:https://github.com/libretro/RetroArch/issues
-Name:RetroArch
+Name:RetroArch (obsolete)
Auto Name:RetroArch
Summary:Modular multi-system emulator
Description:
@@ -16,10 +16,13 @@ lightweight, and portable. It allows emulator developers to implement their emul
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:
+This build supports following systems:
* Play Station 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.
.
diff --git a/srclibs/libretro-overlays.txt b/srclibs/libretro-overlays.txt
new file mode 100644
index 0000000000..621e38a797
--- /dev/null
+++ b/srclibs/libretro-overlays.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/common-overlays.git
diff --git a/srclibs/libretro-super.txt b/srclibs/libretro-super.txt
new file mode 100644
index 0000000000..95af828e60
--- /dev/null
+++ b/srclibs/libretro-super.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/libretro-super.git
diff --git a/srclibs/mednafen-psx.txt b/srclibs/mednafen-psx.txt
new file mode 100644
index 0000000000..62996a1381
--- /dev/null
+++ b/srclibs/mednafen-psx.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/beetle-psx-libretro.git
diff --git a/srclibs/nxengine.txt b/srclibs/nxengine.txt
new file mode 100644
index 0000000000..7718b09d38
--- /dev/null
+++ b/srclibs/nxengine.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/nxengine-libretro.git
diff --git a/srclibs/rarch-common-shaders.txt b/srclibs/rarch-common-shaders.txt
new file mode 100644
index 0000000000..07a3fc83da
--- /dev/null
+++ b/srclibs/rarch-common-shaders.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/common-shaders.git
diff --git a/srclibs/stella-libretro.txt b/srclibs/stella-libretro.txt
new file mode 100644
index 0000000000..0d95315a68
--- /dev/null
+++ b/srclibs/stella-libretro.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/stella-libretro.git
diff --git a/srclibs/vba-m.txt b/srclibs/vba-m.txt
new file mode 100644
index 0000000000..71d082ba2d
--- /dev/null
+++ b/srclibs/vba-m.txt
@@ -0,0 +1,2 @@
+Repo Type:git
+Repo:git://github.com/libretro/vbam-libretro.git