diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp
index 0310ce8832..7055ea93e7 100644
--- a/src/core/hle/service/nifm/nifm.cpp
+++ b/src/core/hle/service/nifm/nifm.cpp
@@ -30,6 +30,19 @@ enum class RequestState : u32 {
     Connected = 3,
 };
 
+enum class InternetConnectionType : u8 {
+    WiFi = 1,
+    Ethernet = 2,
+};
+
+enum class InternetConnectionStatus : u8 {
+    ConnectingUnknown1,
+    ConnectingUnknown2,
+    ConnectingUnknown3,
+    ConnectingUnknown4,
+    Connected,
+};
+
 struct IpAddressSetting {
     bool is_automatic{};
     Network::IPv4Address current_address{};
@@ -271,6 +284,7 @@ private:
         rb.Push(ResultSuccess);
         rb.Push<u64>(client_id); // Client ID needs to be non zero otherwise it's considered invalid
     }
+
     void CreateScanRequest(Kernel::HLERequestContext& ctx) {
         LOG_DEBUG(Service_NIFM, "called");
 
@@ -279,6 +293,7 @@ private:
         rb.Push(ResultSuccess);
         rb.PushIpcInterface<IScanRequest>(system);
     }
+
     void CreateRequest(Kernel::HLERequestContext& ctx) {
         LOG_DEBUG(Service_NIFM, "called");
 
@@ -287,6 +302,7 @@ private:
         rb.Push(ResultSuccess);
         rb.PushIpcInterface<IRequest>(system);
     }
+
     void GetCurrentNetworkProfile(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
@@ -335,12 +351,14 @@ private:
         IPC::ResponseBuilder rb{ctx, 2};
         rb.Push(ResultSuccess);
     }
+
     void RemoveNetworkProfile(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
         IPC::ResponseBuilder rb{ctx, 2};
         rb.Push(ResultSuccess);
     }
+
     void GetCurrentIpAddress(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
@@ -354,6 +372,7 @@ private:
         rb.Push(ResultSuccess);
         rb.PushRaw(*ipv4);
     }
+
     void CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx) {
         LOG_DEBUG(Service_NIFM, "called");
 
@@ -369,6 +388,7 @@ private:
         rb.PushIpcInterface<INetworkProfile>(system);
         rb.PushRaw<u128>(uuid);
     }
+
     void GetCurrentIpConfigInfo(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
@@ -405,6 +425,7 @@ private:
         rb.Push(ResultSuccess);
         rb.PushRaw<IpConfigInfo>(ip_config_info);
     }
+
     void IsWirelessCommunicationEnabled(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
@@ -412,6 +433,24 @@ private:
         rb.Push(ResultSuccess);
         rb.Push<u8>(0);
     }
+
+    void GetInternetConnectionStatus(Kernel::HLERequestContext& ctx) {
+        LOG_WARNING(Service_NIFM, "(STUBBED) called");
+
+        struct Output {
+            InternetConnectionType type{InternetConnectionType::WiFi};
+            u8 wifi_strength{3};
+            InternetConnectionStatus state{InternetConnectionStatus::Connected};
+        };
+        static_assert(sizeof(Output) == 0x3, "Output has incorrect size.");
+
+        constexpr Output out{};
+
+        IPC::ResponseBuilder rb{ctx, 3};
+        rb.Push(ResultSuccess);
+        rb.PushRaw(out);
+    }
+
     void IsEthernetCommunicationEnabled(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
@@ -423,6 +462,7 @@ private:
             rb.Push<u8>(0);
         }
     }
+
     void IsAnyInternetRequestAccepted(Kernel::HLERequestContext& ctx) {
         LOG_WARNING(Service_NIFM, "(STUBBED) called");
 
@@ -456,7 +496,7 @@ IGeneralService::IGeneralService(Core::System& system_)
         {15, &IGeneralService::GetCurrentIpConfigInfo, "GetCurrentIpConfigInfo"},
         {16, nullptr, "SetWirelessCommunicationEnabled"},
         {17, &IGeneralService::IsWirelessCommunicationEnabled, "IsWirelessCommunicationEnabled"},
-        {18, nullptr, "GetInternetConnectionStatus"},
+        {18, &IGeneralService::GetInternetConnectionStatus, "GetInternetConnectionStatus"},
         {19, nullptr, "SetEthernetCommunicationEnabled"},
         {20, &IGeneralService::IsEthernetCommunicationEnabled, "IsEthernetCommunicationEnabled"},
         {21, &IGeneralService::IsAnyInternetRequestAccepted, "IsAnyInternetRequestAccepted"},