diff --git a/blackberry-qnx/bb10/.cproject b/blackberry-qnx/bb10/.cproject
new file mode 100644
index 0000000000..39b4c35d4b
--- /dev/null
+++ b/blackberry-qnx/bb10/.cproject
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blackberry-qnx/bb10/.project b/blackberry-qnx/bb10/.project
new file mode 100644
index 0000000000..2ac321a0db
--- /dev/null
+++ b/blackberry-qnx/bb10/.project
@@ -0,0 +1,91 @@
+
+
+ RetroArch-Cascades
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+
+
+ ?name?
+
+
+
+ org.eclipse.cdt.make.core.append_environment
+ true
+
+
+ org.eclipse.cdt.make.core.autoBuildTarget
+ Device-Debug
+
+
+ org.eclipse.cdt.make.core.buildArguments
+
+
+
+ org.eclipse.cdt.make.core.buildCommand
+ make
+
+
+ org.eclipse.cdt.make.core.cleanBuildTarget
+ clean
+
+
+ org.eclipse.cdt.make.core.contents
+ org.eclipse.cdt.make.core.activeConfigSettings
+
+
+ org.eclipse.cdt.make.core.enableAutoBuild
+ true
+
+
+ org.eclipse.cdt.make.core.enableCleanBuild
+ true
+
+
+ org.eclipse.cdt.make.core.enableFullBuild
+ true
+
+
+ org.eclipse.cdt.make.core.fullBuildTarget
+ Device-Debug
+
+
+ org.eclipse.cdt.make.core.stopOnError
+ true
+
+
+ org.eclipse.cdt.make.core.useDefaultBuildCmd
+ true
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+ com.rim.tad.tools.qml.core.qmlFileBuilder
+
+
+
+
+ com.qnx.tools.bbt.xml.core.bbtXMLValidationBuilder
+
+
+
+
+
+ com.rim.tad.tools.wst.jsdt.core.jsNature
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+ com.qnx.tools.ide.bbt.core.bbtnature
+ org.eclipse.cdt.core.ccnature
+ com.rim.tad.tools.qml.core.qmlNature
+
+
diff --git a/blackberry-qnx/bb10/Makefile b/blackberry-qnx/bb10/Makefile
new file mode 100644
index 0000000000..ce6a86aa05
--- /dev/null
+++ b/blackberry-qnx/bb10/Makefile
@@ -0,0 +1,6 @@
+QMAKE_TARGET = RetroArch-Cascades
+PROJECT_DIR := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
+I18N_DIR := $(PROJECT_DIR)/translations
+
+include mk/cs-base.mk
+
diff --git a/blackberry-qnx/bb10/RetroArch-Cascades.pro b/blackberry-qnx/bb10/RetroArch-Cascades.pro
new file mode 100644
index 0000000000..414a4f47ad
--- /dev/null
+++ b/blackberry-qnx/bb10/RetroArch-Cascades.pro
@@ -0,0 +1,7 @@
+APP_NAME = RetroArch-Cascades
+
+CONFIG += qt warn_on cascades10
+
+LIBS += -lscreen
+
+include(config.pri)
diff --git a/blackberry-qnx/bb10/assets/mainPage.qml b/blackberry-qnx/bb10/assets/mainPage.qml
new file mode 100644
index 0000000000..1405ae4dde
--- /dev/null
+++ b/blackberry-qnx/bb10/assets/mainPage.qml
@@ -0,0 +1,32 @@
+/* Copyright (c) 2012 Research In Motion Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import bb.cascades 1.0
+
+TabbedPane {
+ Tab {
+ Page {
+ Container {
+
+ }
+ }
+ }
+ Tab {
+ Page {
+ Container {
+
+ }
+ }
+ }
+}
diff --git a/blackberry-qnx/bb10/bar-descriptor.xml b/blackberry-qnx/bb10/bar-descriptor.xml
new file mode 100644
index 0000000000..cef7222445
--- /dev/null
+++ b/blackberry-qnx/bb10/bar-descriptor.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+ com.example.helloforeignwindow
+
+
+ RetroArch
+
+
+ 1.0.0
+
+
+ 1
+
+
+
+
+
+
+ landscape
+ false
+ none
+ false
+
+
+
+ core.games
+
+ armle-v7
+ RetroArch-Cascades
+
+
+ Qnx/Cascades
+ armle-v7
+ RetroArch-Cascades.so
+
+
+ armle-v7
+ RetroArch-Cascades
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ assets
+
+
+
+ bright
+
+
+ run_native
+ access_shared
+
+
+
+
diff --git a/blackberry-qnx/bb10/config.pri b/blackberry-qnx/bb10/config.pri
new file mode 100644
index 0000000000..4abec4b0da
--- /dev/null
+++ b/blackberry-qnx/bb10/config.pri
@@ -0,0 +1,46 @@
+# Auto-generated by IDE. Changes by user will be lost!
+BASEDIR = $$quote($$_PRO_FILE_PWD_)
+
+device {
+ CONFIG(debug, debug|release) {
+ SOURCES += $$quote($$BASEDIR/src/RetroArch-Cascades.cpp) \
+ $$quote($$BASEDIR/src/main.cpp)
+
+ HEADERS += $$quote($$BASEDIR/src/RetroArch-Cascades.h)
+
+ }
+
+ CONFIG(release, debug|release) {
+ SOURCES += $$quote($$BASEDIR/src/RetroArch-Cascades.cpp) \
+ $$quote($$BASEDIR/src/main.cpp)
+
+ HEADERS += $$quote($$BASEDIR/src/RetroArch-Cascades.h)
+
+ }
+
+}
+
+simulator {
+ CONFIG(debug, debug|release) {
+ SOURCES += $$quote($$BASEDIR/src/RetroArch-Cascades.cpp) \
+ $$quote($$BASEDIR/src/main.cpp)
+
+ HEADERS += $$quote($$BASEDIR/src/RetroArch-Cascades.h)
+
+ }
+
+}
+
+INCLUDEPATH += $$quote($$BASEDIR/src)
+
+CONFIG += precompile_header
+
+PRECOMPILED_HEADER = $$quote($$BASEDIR/precompiled.h)
+
+lupdate_inclusion {
+ SOURCES += $$quote($$BASEDIR/../assets/*.qml)
+
+}
+
+TRANSLATIONS = $$quote($${TARGET}.ts)
+
diff --git a/blackberry-qnx/bb10/precompiled.h b/blackberry-qnx/bb10/precompiled.h
new file mode 100644
index 0000000000..6213dc4ba7
--- /dev/null
+++ b/blackberry-qnx/bb10/precompiled.h
@@ -0,0 +1,2 @@
+// This file is used to store precompiled headers.
+// It is intentionally left blank. It is up to you to decide which headers should be included here.
diff --git a/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp
new file mode 100644
index 0000000000..086b9aca7b
--- /dev/null
+++ b/blackberry-qnx/bb10/src/RetroArch-Cascades.cpp
@@ -0,0 +1,63 @@
+/* Copyright (c) 2012 Research In Motion Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "RetroArch-Cascades.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+using namespace bb::cascades;
+
+RetroArch::RetroArch()
+{
+ // Create a QML document and load the main UI QML file, using build patterns.
+ QmlDocument *qml = QmlDocument::create("asset:///mainPage.qml");
+
+ if (!qml->hasErrors()) {
+
+ // Set the context property we want to use from inside the QML document. Functions exposed
+ // via Q_INVOKABLE will be found with this property and the name of the function.
+ qml->setContextProperty("RetroArch", this);
+
+ // The application Page is created from QML.
+ AbstractPane *mAppPane = qml->createRootObject();
+
+ if (mAppPane) {
+
+ Application::instance()->setScene(mAppPane);
+
+ // Start the thread in which we render to the custom window.
+ start();
+ }
+ }
+}
+
+RetroArch::~RetroArch()
+{
+ // Stop the thread.
+ terminate();
+ wait();
+}
+
+void RetroArch::run()
+{
+ while (true) {
+
+ }
+}
diff --git a/blackberry-qnx/bb10/src/RetroArch-Cascades.h b/blackberry-qnx/bb10/src/RetroArch-Cascades.h
new file mode 100644
index 0000000000..6030771ad8
--- /dev/null
+++ b/blackberry-qnx/bb10/src/RetroArch-Cascades.h
@@ -0,0 +1,49 @@
+/* Copyright (c) 2012 Research In Motion Limited.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef _HELLOFOREIGNWINDOW_H_
+#define _HELLOFOREIGNWINDOW_H_
+
+#include
+#include
+#include
+
+using namespace bb::cascades;
+
+namespace bb
+{
+ namespace cascades
+ {
+ class Page;
+ }
+}
+
+class RetroArch: public QThread
+{
+ Q_OBJECT
+
+public:
+ RetroArch();
+ ~ RetroArch();
+
+private:
+ /**
+ * This QThread-run function runs the custom window rendering in a separate thread to avoid lag
+ * in the rest of the Cascades UI.
+ */
+ void run();
+
+};
+
+#endif // ifndef _HELLOFOREIGNWINDOW_H_
diff --git a/blackberry-qnx/bb10/src/main.cpp b/blackberry-qnx/bb10/src/main.cpp
new file mode 100644
index 0000000000..072343c469
--- /dev/null
+++ b/blackberry-qnx/bb10/src/main.cpp
@@ -0,0 +1,35 @@
+/* Copyright (c) 2012 Research In Motion Limited.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+#include "RetroArch-Cascades.h"
+#include
+
+using ::bb::cascades::Application;
+
+Q_DECL_EXPORT int main(int argc, char **argv)
+{
+ // Instantiate the main application constructor.
+ Application app(argc, argv);
+
+ // Initialize our application.
+ RetroArch mainApp;
+
+ // We complete the transaction started in the main application constructor and start the
+ // client event loop here. When loop is exited the Application deletes the scene which
+ // deletes all its children.
+ return Application::exec();
+}
+
diff --git a/blackberry-qnx/bb10/translations/Makefile b/blackberry-qnx/bb10/translations/Makefile
new file mode 100644
index 0000000000..0678149585
--- /dev/null
+++ b/blackberry-qnx/bb10/translations/Makefile
@@ -0,0 +1,12 @@
+QMAKE_TARGET = RetroArch-Cascades
+LUPDATE = $(QNX_HOST)/usr/bin/lupdate
+LRELEASE = $(QNX_HOST)/usr/bin/lrelease
+
+update: $(QMAKE_TARGET).pro FORCE
+ $(LUPDATE) $(QMAKE_TARGET).pro
+
+release: $(QMAKE_TARGET).pro $(QMAKE_TARGET).ts
+ $(LRELEASE) $(QMAKE_TARGET).pro
+
+FORCE:
+
diff --git a/blackberry-qnx/bb10/translations/RetroArch-Cascades.pro b/blackberry-qnx/bb10/translations/RetroArch-Cascades.pro
new file mode 100644
index 0000000000..d79bf91ecd
--- /dev/null
+++ b/blackberry-qnx/bb10/translations/RetroArch-Cascades.pro
@@ -0,0 +1 @@
+include (../RetroArch-Cascades.pro)
diff --git a/blackberry-qnx/bb10/translations/RetroArch-Cascades.ts b/blackberry-qnx/bb10/translations/RetroArch-Cascades.ts
new file mode 100644
index 0000000000..07a7469f10
--- /dev/null
+++ b/blackberry-qnx/bb10/translations/RetroArch-Cascades.ts
@@ -0,0 +1,4 @@
+
+
+
+