diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml
index 143ad8982e70c8430e7a7f4122da04916bdec845..39bbbdf2c6478cb7e69bd7bb6341579473ed0529 100644
--- a/.forgejo/workflows/ci.yml
+++ b/.forgejo/workflows/ci.yml
@@ -29,7 +29,8 @@ jobs:
 #           TX_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }}
 
   reuse:
-    runs-on: ubuntu-latest
+    name: Check REUSE Specification
+    runs-on: verify
     if: ${{ github.repository == 'suyu/suyu' }}
     steps:
     - uses: https://code.forgejo.org/actions/checkout@v3
diff --git a/.forgejo/workflows/codespell.yml b/.forgejo/workflows/codespell.yml
index bf6d35d1e86157b0c59e79ff4bc7820483cb2bfb..d711137d3a9119e0ba6de6818b9e62d7098d7bdc 100644
--- a/.forgejo/workflows/codespell.yml
+++ b/.forgejo/workflows/codespell.yml
@@ -20,7 +20,7 @@ permissions: {}
 jobs:
   codespell:
     name: Check for spelling errors
-    runs-on: ubuntu-latest
+    runs-on: verify
     steps:
       - uses: https://code.forgejo.org/actions/checkout@v3
         with:
diff --git a/.gitea/ISSUE_TEMPLATE/blank_issue_template.yml b/.gitea/ISSUE_TEMPLATE/blank_issue_template.yml
new file mode 100644
index 0000000000000000000000000000000000000000..49b7f38228c3d11a0b8c4974379732aab5f50af7
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/blank_issue_template.yml
@@ -0,0 +1,10 @@
+name: New Issue (Developers Only)
+description: A blank issue template for developers only. If you are not a developer, do not use this issue template. Your issue WILL BE CLOSED if you do not use the appropriate issue template.
+body:
+  - type: markdown
+    attributes:
+      value: |
+        **If you are not a developer, do not use this issue template. Your issue WILL BE CLOSED if you do not use the appropriate issue template.**
+  - type: textarea
+    attributes:
+      label: "Issue"
diff --git a/.gitea/ISSUE_TEMPLATE/bug_report.yml b/.gitea/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000000000000000000000000000000000..041a4ff3bfcfa1c28a6bfb1f55a7a7ca702e59aa
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,64 @@
+name: Bug Report
+description: File a bug report
+body:
+  - type: markdown
+    attributes:
+      value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with suyu.
+  - type: checkboxes
+    attributes:
+      label: Is there an existing issue for this?
+      description: Please search to see if an issue already exists for the bug you encountered.
+      options:
+      - label: I have searched the existing issues
+        required: true
+  - type: input
+    attributes:
+      label: Affected Commit or Release
+      description: List the affected commits that this issue applies to.
+      placeholder: Mainline 1234 / Early Access 1234
+    validations:
+      required: true
+  - type: textarea
+    id: issue-desc
+    attributes:
+      label: Description of Issue
+      description: A brief description of the issue encountered along with any images and/or videos.
+    validations:
+      required: true
+  - type: textarea
+    id: expected-behavior
+    attributes:
+      label: Expected Behavior
+      description: A brief description of how it is expected to work along with any images and/or videos.
+    validations:
+      required: true
+  - type: textarea
+    id: reproduction-steps
+    attributes:
+      label: Reproduction Steps
+      description: A brief explanation of how to reproduce this issue. If possible, provide a save file to aid in reproducing the issue.
+    validations:
+      required: true
+  - type: textarea
+    id: log
+    attributes:
+      label: Log File
+      description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://suyu.dev/help/reference/log-files).
+    validations:
+      required: true
+  - type: textarea
+    id: system-config
+    attributes:
+      label: System Configuration
+      placeholder: |
+        CPU: Intel i5-10400 / AMD Ryzen 5 3600
+        GPU/Driver: NVIDIA GeForce GTX 1060 (Driver 512.95)
+        RAM: 16GB DDR4-3200
+        OS: Windows 11 22H2 (Build 22621.819)
+      value: |
+        CPU:
+        GPU/Driver:
+        RAM:
+        OS:
+    validations:
+      required: true
diff --git a/.gitea/ISSUE_TEMPLATE/config.yml b/.gitea/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0be63fdb7a033ded1016db41e39c36a57d89e7aa
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+  - name: suyu Discord
+    url: https://discord.com/invite/suyu
+    about: If you are experiencing an issue with suyu, and you need tech support, or if you have a general question, try asking in the official suyu Discord linked here. Piracy is not allowed.
diff --git a/.gitea/ISSUE_TEMPLATE/feature_request.yml b/.gitea/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000000000000000000000000000000000000..c0c27fc0a687191298ae1807f5895045fa924785
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,28 @@
+name: Feature Request
+description: File a feature request
+labels: "enhancement"
+body:
+  - type: markdown
+    attributes:
+      value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make suyu better.
+  - type: checkboxes
+    attributes:
+      label: Is there an existing issue for this?
+      description: Please search to see if an issue already exists for the feature you are requesting.
+      options:
+      - label: I have searched the existing issues
+        required: true
+  - type: textarea
+    id: what-feature
+    attributes:
+      label: What feature are you suggesting?
+      description: A brief description of the requested feature.
+    validations:
+      required: true
+  - type: textarea
+    id: why-feature
+    attributes:
+      label: Why would this feature be useful?
+      description: A brief description of why this feature would make suyu better.
+    validations:
+      required: true
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index 0500bb2a4f1992b4b6e114d3fb0627ebafaada50..1bd6455b4c8fd7f0ef0f04bce9eaa8b5de0a60e3 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -142,7 +142,6 @@
         <item>@string/ratio_force_four_three</item>
         <item>@string/ratio_force_twenty_one_nine</item>
         <item>@string/ratio_force_sixteen_ten</item>
-        <item>@string/ratio_thirty_two_nine</item>
         <item>@string/ratio_stretch</item>
     </string-array>
 
@@ -152,7 +151,6 @@
         <item>2</item>
         <item>3</item>
         <item>4</item>
-        <item>5</item>
     </integer-array>
 
     <string-array name="rendererScalingFilterNames">
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 5331f2b419a7f5cde8f6830cef63eb08f716504f..a2487f4f11d31eac2c5c47e39f6a4a083d6e453e 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -601,7 +601,6 @@
     <string name="ratio_force_four_three">Force 4:3</string>
     <string name="ratio_force_twenty_one_nine">Force 21:9</string>
     <string name="ratio_force_sixteen_ten">Force 16:10</string>
-    <string name="ratio_force_thirty_two_nine">Force 32:9</string>
     <string name="ratio_stretch">Stretch to window</string>
 
     <!-- CPU Backend -->
diff --git a/src/suyu/main.cpp b/src/suyu/main.cpp
index 0d07c8d6d0b21a8fc5cdd95a709c1fe853d14569..19148fcfc3af4c5978e94b8b5dedbebc6423fa40 100644
--- a/src/suyu/main.cpp
+++ b/src/suyu/main.cpp
@@ -12,6 +12,7 @@
 #include <thread>
 #include "core/hle/service/am/applet_manager.h"
 #include "core/loader/nca.h"
+#include "core/loader/nro.h"
 #include "core/tools/renderdoc.h"
 
 #ifdef __APPLE__
@@ -1747,18 +1748,21 @@ void GMainWindow::AllowOSSleep() {
 }
 
 bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletParameters params) {
-    if (!CheckFirmwarePresence()) {
-        QMessageBox::critical(this, tr("Component Missing"), tr("Missing Firmware."));
-        return false;
-    }
+    if (Loader::AppLoader_NRO::IdentifyType(
+            Core::GetGameFileFromPath(vfs, filename.toStdString())) != Loader::FileType::NRO) {
+        if (!CheckFirmwarePresence()) {
+            QMessageBox::critical(this, tr("Component Missing"), tr("Missing Firmware."));
+            return false;
+        }
 
-    if (!ContentManager::AreKeysPresent()) {
-        QMessageBox::warning(this, tr("Derivation Components Missing"),
-                             tr("Encryption keys are missing. "
-                                "In order to use this emulator"
-                                "you need to provide your own encryption keys"
-                                "in order to play them."));
-        return false;
+        if (!ContentManager::AreKeysPresent()) {
+            QMessageBox::warning(this, tr("Derivation Components Missing"),
+                                 tr("Encryption keys are missing. "
+                                    "In order to use this emulator, "
+                                    "you need to provide your own encryption keys "
+                                    "in order to play them."));
+            return false;
+        }
     }
 
     // Shutdown previous session if the emu thread is still active...
@@ -4630,8 +4634,8 @@ void GMainWindow::OnCheckFirmwareDecryption() {
     if (!ContentManager::AreKeysPresent()) {
         QMessageBox::warning(this, tr("Derivation Components Missing"),
                              tr("Encryption keys are missing. "
-                                "In order to use this emulator"
-                                "you need to provide your own encryption keys"
+                                "In order to use this emulator, "
+                                "you need to provide your own encryption keys "
                                 "in order to play them."));
     }