diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
index 8c053670c6..d114bd53d7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt
@@ -11,6 +11,7 @@ import java.io.File
 import org.yuzu.yuzu_emu.utils.DirectoryInitialization
 import org.yuzu.yuzu_emu.utils.DocumentsTree
 import org.yuzu.yuzu_emu.utils.GpuDriverHelper
+import org.yuzu.yuzu_emu.utils.Log
 
 fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
 
@@ -49,6 +50,7 @@ class YuzuApplication : Application() {
         DirectoryInitialization.start()
         GpuDriverHelper.initializeDriverParameters()
         NativeLibrary.logDeviceInfo()
+        Log.logDeviceInfo()
 
         createNotificationChannels()
     }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index da98d4ef50..054e4b7558 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -107,7 +107,7 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
 
         val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
         if (!preferences.getBoolean(Settings.PREF_MEMORY_WARNING_SHOWN, false)) {
-            if (MemoryUtil.isLessThan(MemoryUtil.REQUIRED_MEMORY, MemoryUtil.Gb)) {
+            if (MemoryUtil.isLessThan(MemoryUtil.REQUIRED_MEMORY, MemoryUtil.totalMemory)) {
                 Toast.makeText(
                     this,
                     getString(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
index fb682c3446..aebe84b0f1 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/Log.kt
@@ -3,6 +3,8 @@
 
 package org.yuzu.yuzu_emu.utils
 
+import android.os.Build
+
 object Log {
     // Tracks whether we should share the old log or the current log
     var gameLaunched = false
@@ -16,4 +18,14 @@ object Log {
     external fun error(message: String)
 
     external fun critical(message: String)
+
+    fun logDeviceInfo() {
+        info("Device Manufacturer - ${Build.MANUFACTURER}")
+        info("Device Model - ${Build.MODEL}")
+        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R) {
+            info("SoC Manufacturer - ${Build.SOC_MANUFACTURER}")
+            info("SoC Model - ${Build.SOC_MODEL}")
+        }
+        info("Total System Memory - ${MemoryUtil.getDeviceRAM()}")
+    }
 }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
index aa4a5539a6..9076a86c41 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
@@ -27,7 +27,7 @@ object MemoryUtil {
     const val Pb = Tb * 1024
     const val Eb = Pb * 1024
 
-    private fun bytesToSizeUnit(size: Float): String =
+    private fun bytesToSizeUnit(size: Float, roundUp: Boolean = false): String =
         when {
             size < Kb -> {
                 context.getString(
@@ -39,63 +39,59 @@ object MemoryUtil {
             size < Mb -> {
                 context.getString(
                     R.string.memory_formatted,
-                    (size / Kb).hundredths,
+                    if (roundUp) ceil(size / Kb) else (size / Kb).hundredths,
                     context.getString(R.string.memory_kilobyte)
                 )
             }
             size < Gb -> {
                 context.getString(
                     R.string.memory_formatted,
-                    (size / Mb).hundredths,
+                    if (roundUp) ceil(size / Mb) else (size / Mb).hundredths,
                     context.getString(R.string.memory_megabyte)
                 )
             }
             size < Tb -> {
                 context.getString(
                     R.string.memory_formatted,
-                    (size / Gb).hundredths,
+                    if (roundUp) ceil(size / Gb) else (size / Gb).hundredths,
                     context.getString(R.string.memory_gigabyte)
                 )
             }
             size < Pb -> {
                 context.getString(
                     R.string.memory_formatted,
-                    (size / Tb).hundredths,
+                    if (roundUp) ceil(size / Tb) else (size / Tb).hundredths,
                     context.getString(R.string.memory_terabyte)
                 )
             }
             size < Eb -> {
                 context.getString(
                     R.string.memory_formatted,
-                    (size / Pb).hundredths,
+                    if (roundUp) ceil(size / Pb) else (size / Pb).hundredths,
                     context.getString(R.string.memory_petabyte)
                 )
             }
             else -> {
                 context.getString(
                     R.string.memory_formatted,
-                    (size / Eb).hundredths,
+                    if (roundUp) ceil(size / Eb) else (size / Eb).hundredths,
                     context.getString(R.string.memory_exabyte)
                 )
             }
         }
 
-    // Devices are unlikely to have 0.5GB increments of memory so we'll just round up to account for
-    // the potential error created by memInfo.totalMem
-    private val totalMemory: Float
+    val totalMemory: Float
         get() {
             val memInfo = ActivityManager.MemoryInfo()
             with(context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager) {
                 getMemoryInfo(memInfo)
             }
 
-            return ceil(
-                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
-                    memInfo.advertisedMem.toFloat()
-                } else {
-                    memInfo.totalMem.toFloat()
-                }
-            )
+            return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
+                memInfo.advertisedMem.toFloat()
+            } else {
+                memInfo.totalMem.toFloat()
+            }
         }
 
     fun isLessThan(minimum: Int, size: Float): Boolean =
@@ -109,5 +105,7 @@ object MemoryUtil {
             else -> totalMemory < Kb && totalMemory < minimum
         }
 
-    fun getDeviceRAM(): String = bytesToSizeUnit(totalMemory)
+    // Devices are unlikely to have 0.5GB increments of memory so we'll just round up to account for
+    // the potential error created by memInfo.totalMem
+    fun getDeviceRAM(): String = bytesToSizeUnit(totalMemory, true)
 }