diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index 24c2ca601..4f64f7be6 100644
--- a/src/citra_qt/CMakeLists.txt
+++ b/src/citra_qt/CMakeLists.txt
@@ -66,6 +66,9 @@ add_executable(citra-qt
     configuration/configure_motion_touch.cpp
     configuration/configure_motion_touch.h
     configuration/configure_motion_touch.ui
+    configuration/configure_storage.cpp
+    configuration/configure_storage.h
+    configuration/configure_storage.ui
     configuration/configure_system.cpp
     configuration/configure_system.h
     configuration/configure_system.ui
diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp
index 2b5ab6cd3..28612bbd0 100644
--- a/src/citra_qt/configuration/config.cpp
+++ b/src/citra_qt/configuration/config.cpp
@@ -863,8 +863,10 @@ void Config::SaveDataStorageValues() {
 
     WriteSetting(QStringLiteral("use_virtual_sd"), Settings::values.use_virtual_sd, true);
     WriteSetting(QStringLiteral("nand_directory"),
+                 QString::fromStdString(Settings::values.nand_dir),
                  QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::NANDDir)));
     WriteSetting(QStringLiteral("sdmc_directory"),
+                 QString::fromStdString(Settings::values.sdmc_dir),
                  QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
 
     qt_config->endGroup();
diff --git a/src/citra_qt/configuration/configure.ui b/src/citra_qt/configuration/configure.ui
index efe53606e..1774ccbc1 100644
--- a/src/citra_qt/configuration/configure.ui
+++ b/src/citra_qt/configuration/configure.ui
@@ -68,6 +68,11 @@
          <string>Debug</string>
         </attribute>
        </widget>
+       <widget class="ConfigureStorage" name="storageTab">
+        <attribute name="title">
+         <string>Storage</string>
+        </attribute>
+       </widget>
        <widget class="ConfigureWeb" name="webTab">
         <attribute name="title">
          <string>Web</string>
@@ -121,6 +126,12 @@
    <extends>QWidget</extends>
    <header>configuration/configure_debug.h</header>
    <container>1</container>
+  </customwidget>
+    <customwidget>
+   <class>ConfigureStorage</class>
+   <extends>QWidget</extends>
+   <header>configuration/configure_storage.h</header>
+   <container>1</container>
   </customwidget>
   <customwidget>
    <class>ConfigureInput</class>
diff --git a/src/citra_qt/configuration/configure_dialog.cpp b/src/citra_qt/configuration/configure_dialog.cpp
index 7e84f83ad..66eb3ec83 100644
--- a/src/citra_qt/configuration/configure_dialog.cpp
+++ b/src/citra_qt/configuration/configure_dialog.cpp
@@ -51,6 +51,7 @@ void ConfigureDialog::SetConfiguration() {
     ui->debugTab->SetConfiguration();
     ui->webTab->SetConfiguration();
     ui->uiTab->SetConfiguration();
+    ui->storageTab->SetConfiguration();
 }
 
 void ConfigureDialog::ApplyConfiguration() {
@@ -66,6 +67,7 @@ void ConfigureDialog::ApplyConfiguration() {
     ui->debugTab->ApplyConfiguration();
     ui->webTab->ApplyConfiguration();
     ui->uiTab->ApplyConfiguration();
+    ui->storageTab->ApplyConfiguration();
     Settings::Apply();
     Settings::LogSettings();
 }
@@ -77,7 +79,7 @@ void ConfigureDialog::PopulateSelectionList() {
 
     const std::array<std::pair<QString, QList<QWidget*>>, 5> items{
         {{tr("General"), {ui->generalTab, ui->webTab, ui->debugTab, ui->uiTab}},
-         {tr("System"), {ui->systemTab, ui->cameraTab}},
+         {tr("System"), {ui->systemTab, ui->cameraTab, ui->storageTab}},
          {tr("Graphics"), {ui->enhancementsTab, ui->graphicsTab}},
          {tr("Audio"), {ui->audioTab}},
          {tr("Controls"), {ui->inputTab, ui->hotkeysTab}}}};
@@ -118,6 +120,7 @@ void ConfigureDialog::RetranslateUI() {
     ui->debugTab->RetranslateUI();
     ui->webTab->RetranslateUI();
     ui->uiTab->RetranslateUI();
+    ui->storageTab->RetranslateUI();
 }
 
 void ConfigureDialog::UpdateVisibleTabs() {
@@ -134,6 +137,7 @@ void ConfigureDialog::UpdateVisibleTabs() {
                                                  {ui->audioTab, tr("Audio")},
                                                  {ui->cameraTab, tr("Camera")},
                                                  {ui->debugTab, tr("Debug")},
+                                                 {ui->storageTab, tr("Storage")},
                                                  {ui->webTab, tr("Web")},
                                                  {ui->uiTab, tr("UI")}};
 
diff --git a/src/citra_qt/configuration/configure_storage.cpp b/src/citra_qt/configuration/configure_storage.cpp
new file mode 100644
index 000000000..f198f59f5
--- /dev/null
+++ b/src/citra_qt/configuration/configure_storage.cpp
@@ -0,0 +1,78 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <QDesktopServices>
+#include <QFileDialog>
+#include <QUrl>
+#include "citra_qt/configuration/configure_storage.h"
+#include "core/core.h"
+#include "core/settings.h"
+#include "ui_configure_storage.h"
+
+ConfigureStorage::ConfigureStorage(QWidget* parent)
+    : QWidget(parent), ui(std::make_unique<Ui::ConfigureStorage>()) {
+    ui->setupUi(this);
+    SetConfiguration();
+
+    connect(ui->open_nand_dir, &QPushButton::clicked, []() {
+        QString path = QString::fromStdString(Settings::values.nand_dir);
+        QDesktopServices::openUrl(QUrl::fromLocalFile(path));
+    });
+
+    connect(ui->change_nand_dir, &QPushButton::clicked, this, [this]() {
+        const QString dir_path = QFileDialog::getExistingDirectory(
+            this, tr("Select NAND Directory"), QString::fromStdString(Settings::values.nand_dir),
+            QFileDialog::ShowDirsOnly);
+        if (!dir_path.isEmpty()) {
+            Settings::values.nand_dir = dir_path.toStdString();
+            SetConfiguration();
+        }
+    });
+
+    connect(ui->open_sdmc_dir, &QPushButton::clicked, []() {
+        QString path = QString::fromStdString(Settings::values.sdmc_dir);
+        QDesktopServices::openUrl(QUrl::fromLocalFile(path));
+    });
+
+    connect(ui->change_sdmc_dir, &QPushButton::clicked, this, [this]() {
+        const QString dir_path = QFileDialog::getExistingDirectory(
+            this, tr("Select SDMC Directory"), QString::fromStdString(Settings::values.sdmc_dir),
+            QFileDialog::ShowDirsOnly);
+        if (!dir_path.isEmpty()) {
+            Settings::values.sdmc_dir = dir_path.toStdString();
+            SetConfiguration();
+        }
+    });
+
+    connect(ui->toggle_virtual_sd, &QCheckBox::clicked, this, [this]() {
+        ApplyConfiguration();
+        SetConfiguration();
+    });
+}
+
+ConfigureStorage::~ConfigureStorage() = default;
+
+void ConfigureStorage::SetConfiguration() {
+    ui->nand_group->setVisible(Settings::values.use_virtual_sd);
+    QString nand_path = QString::fromStdString(Settings::values.nand_dir);
+    ui->nand_dir_path->setText(nand_path);
+    ui->open_nand_dir->setEnabled(!Settings::values.nand_dir.empty());
+
+    ui->sdmc_group->setVisible(Settings::values.use_virtual_sd);
+    QString sdmc_path = QString::fromStdString(Settings::values.sdmc_dir);
+    ui->sdmc_dir_path->setText(sdmc_path);
+    ui->open_sdmc_dir->setEnabled(!Settings::values.sdmc_dir.empty());
+
+    ui->toggle_virtual_sd->setChecked(Settings::values.use_virtual_sd);
+
+    ui->storage_group->setEnabled(!Core::System::GetInstance().IsPoweredOn());
+}
+
+void ConfigureStorage::ApplyConfiguration() {
+    Settings::values.use_virtual_sd = ui->toggle_virtual_sd->isChecked();
+}
+
+void ConfigureStorage::RetranslateUI() {
+    ui->retranslateUi(this);
+}
\ No newline at end of file
diff --git a/src/citra_qt/configuration/configure_storage.h b/src/citra_qt/configuration/configure_storage.h
new file mode 100644
index 000000000..031ff926b
--- /dev/null
+++ b/src/citra_qt/configuration/configure_storage.h
@@ -0,0 +1,26 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <QWidget>
+
+namespace Ui {
+class ConfigureStorage;
+}
+
+class ConfigureStorage : public QWidget {
+    Q_OBJECT
+
+public:
+    explicit ConfigureStorage(QWidget* parent = nullptr);
+    ~ConfigureStorage() override;
+
+    void ApplyConfiguration();
+    void RetranslateUI();
+    void SetConfiguration();
+
+    std::unique_ptr<Ui::ConfigureStorage> ui;
+};
diff --git a/src/citra_qt/configuration/configure_storage.ui b/src/citra_qt/configuration/configure_storage.ui
new file mode 100644
index 000000000..c6f72dd5d
--- /dev/null
+++ b/src/citra_qt/configuration/configure_storage.ui
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ConfigureStorage</class>
+ <widget class="QWidget" name="ConfigureStorage">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>681</width>
+    <height>375</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_1">
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout_2">
+     <item>
+      <widget class="QGroupBox" name="storage_group">
+       <property name="title">
+        <string>Storage</string>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout_3">
+        <item>
+         <layout class="QHBoxLayout" name="horizontalLayout_1">
+          <item>
+           <widget class="QCheckBox" name="toggle_virtual_sd">
+            <property name="text">
+             <string>Use Virtual SD</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="nand_group">
+          <property name="title">
+           <string/>
+          </property>
+          <layout class="QVBoxLayout" name="verticalLayout">
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout">
+             <item>
+              <widget class="QLabel" name="label">
+               <property name="text">
+                <string>NAND Directory</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QLineEdit" name="nand_dir_path">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="open_nand_dir">
+               <property name="text">
+                <string>Open</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_2">
+             <item>
+              <widget class="QLabel" name="label_4">
+               <property name="text">
+                <string>NOTE: this does not move the contents of the previous directory to the new one</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_3">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="change_nand_dir">
+               <property name="text">
+                <string>Change</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+        <item>
+         <widget class="QGroupBox" name="sdmc_group">
+          <property name="title">
+           <string/>
+          </property>
+          <layout class="QVBoxLayout" name="verticalLayout_4">
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_3">
+             <item>
+              <widget class="QLabel" name="label_2">
+               <property name="text">
+                <string>SDMC Directory</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QLineEdit" name="sdmc_dir_path">
+               <property name="enabled">
+                <bool>false</bool>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QPushButton" name="open_sdmc_dir">
+               <property name="text">
+                <string>Open</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_4">
+             <item>
+              <widget class="QLabel" name="label_3">
+               <property name="text">
+                <string>NOTE: this does not move the contents of the previous directory to the new one</string>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="horizontalSpacer_4">
+               <property name="orientation">
+                <enum>Qt::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item>
+              <widget class="QPushButton" name="change_sdmc_dir">
+               <property name="text">
+                <string>Change</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>