Explorar o código

More stubs (#47)

* Stubs implementations

Services Bsd, Nifm & SSL stubs implementations
Objects IGeneralService, IRequest stubs implementations.
Fake-Fix GetAvailableLanguageCodes stub too ^^!

* More stubs

- Fix SvcGetInfo loops by gdkchan.
- Implement stub for Sfdnsres service.
- Add more stubs for Bsd service.

* Update ServiceSfdnsres.cs
Ac_K %!s(int64=8) %!d(string=hai) anos
pai
achega
424e045940

+ 1 - 1
Ryujinx.Core/OsHle/MemoryRegions.cs

@@ -7,7 +7,7 @@ namespace Ryujinx.Core.OsHle
         public const long AddrSpaceStart = 0x08000000;
         public const long AddrSpaceStart = 0x08000000;
 
 
         public const long MapRegionAddress = 0x10000000;
         public const long MapRegionAddress = 0x10000000;
-        public const long MapRegionSize    = 0x40000000;
+        public const long MapRegionSize    = 0x10000000;
 
 
         public const long MainStackSize = 0x100000;
         public const long MainStackSize = 0x100000;
 
 

+ 38 - 2
Ryujinx.Core/OsHle/Services/Bsd/ServiceBsd.cs

@@ -13,8 +13,11 @@ namespace Ryujinx.Core.OsHle.IpcServices.Bsd
         {
         {
             m_Commands = new Dictionary<int, ServiceProcessRequest>()
             m_Commands = new Dictionary<int, ServiceProcessRequest>()
             {
             {
-                { 0, Initialize      },
-                { 1, StartMonitoring }
+                {  0, Initialize      },
+                {  1, StartMonitoring },
+                {  2, Socket          },
+                { 10, Send            },
+                { 14, Connect         }
             };
             };
         }
         }
 
 
@@ -56,5 +59,38 @@ namespace Ryujinx.Core.OsHle.IpcServices.Bsd
 
 
             return 0;
             return 0;
         }
         }
+
+        //Socket(u32 domain, u32 type, u32 protocol) -> (i32 ret, u32 bsd_errno)
+        public long Socket(ServiceCtx Context)
+        {
+            Context.ResponseData.Write(0);
+            Context.ResponseData.Write(0);
+
+            //Todo: Stub
+
+            return 0;
+        }
+
+        //Connect(u32 socket, buffer<sockaddr, 0x21, 0>) -> (i32 ret, u32 bsd_errno)
+        public long Connect(ServiceCtx Context)
+        {
+            Context.ResponseData.Write(0);
+            Context.ResponseData.Write(0);
+
+            //Todo: Stub
+
+            return 0;
+        }
+
+        //Send(u32 socket, u32 flags, buffer<i8, 0x21, 0>) -> (i32 ret, u32 bsd_errno)
+        public long Send(ServiceCtx Context)
+        {
+            Context.ResponseData.Write(0);
+            Context.ResponseData.Write(0);
+
+            //Todo: Stub
+
+            return 0;
+        }
     }
     }
 }
 }

+ 2 - 0
Ryujinx.Core/OsHle/Services/ServiceFactory.cs

@@ -13,6 +13,7 @@ using Ryujinx.Core.OsHle.IpcServices.NvServices;
 using Ryujinx.Core.OsHle.IpcServices.Pctl;
 using Ryujinx.Core.OsHle.IpcServices.Pctl;
 using Ryujinx.Core.OsHle.IpcServices.Pl;
 using Ryujinx.Core.OsHle.IpcServices.Pl;
 using Ryujinx.Core.OsHle.IpcServices.Set;
 using Ryujinx.Core.OsHle.IpcServices.Set;
+using Ryujinx.Core.OsHle.IpcServices.Sfdnsres;
 using Ryujinx.Core.OsHle.IpcServices.Sm;
 using Ryujinx.Core.OsHle.IpcServices.Sm;
 using Ryujinx.Core.OsHle.IpcServices.Ssl;
 using Ryujinx.Core.OsHle.IpcServices.Ssl;
 using Ryujinx.Core.OsHle.IpcServices.Time;
 using Ryujinx.Core.OsHle.IpcServices.Time;
@@ -45,6 +46,7 @@ namespace Ryujinx.Core.OsHle.IpcServices
                 case "pctl:a":   return new ServicePctl();
                 case "pctl:a":   return new ServicePctl();
                 case "pl:u":     return new ServicePl();
                 case "pl:u":     return new ServicePl();
                 case "set":      return new ServiceSet();
                 case "set":      return new ServiceSet();
+                case "sfdnsres": return new ServiceSfdnsres();
                 case "sm:":      return new ServiceSm();
                 case "sm:":      return new ServiceSm();
                 case "ssl":      return new ServiceSsl();
                 case "ssl":      return new ServiceSsl();
                 case "time:s":   return new ServiceTime();
                 case "time:s":   return new ServiceTime();

+ 20 - 0
Ryujinx.Core/OsHle/Services/Sfdnsres/ServiceSfdnsres.cs

@@ -0,0 +1,20 @@
+using Ryujinx.Core.OsHle.Ipc;
+using System.Collections.Generic;
+
+namespace Ryujinx.Core.OsHle.IpcServices.Sfdnsres
+{
+    class ServiceSfdnsres : IIpcService
+    {
+        private Dictionary<int, ServiceProcessRequest> m_Commands;
+
+        public IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
+
+        public ServiceSfdnsres()
+        {
+            m_Commands = new Dictionary<int, ServiceProcessRequest>()
+            {
+                //{ 0, Function }
+            };
+        }
+    }
+}