Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

package request: Ryujinx #85684

Closed
evertedsphere opened this issue Apr 21, 2020 · 3 comments · Fixed by #94329
Closed

package request: Ryujinx #85684

evertedsphere opened this issue Apr 21, 2020 · 3 comments · Fixed by #94329

Comments

@evertedsphere
Copy link

evertedsphere commented Apr 21, 2020

Project description
"Experimental Nintendo Switch Emulator written in C#"

Metadata

I've tried to package it myself (building with dotnet publish -r linux-x64 then autoPatchelf-ing the resulting binaries) and it loads a GUI just fine, but I'm getting runtime errors when I try to play a game that I don't know how to fix. There's prebuilt versions available as well, but I run into the same errors whether I use that or compile on my own. The latest one I got is this:

00:00:00.143 | Application LoadApplication: Loading as XCI.
00:00:00.400 | ServiceTime InitializeLocationNameCache: TimeZoneBinary system title not found! TimeZone conversions will not work, provide the system archive to fix this error. (See https://github.com/Ryujinx/Ryujinx#requirements for more information)
00:00:00.450 | Loader LoadExeFs: Loading rtld...
00:00:00.452 | Loader LoadExeFs: Loading main...
00:00:00.913 | Loader LoadExeFs: Loading subsdk0...
00:00:01.039 | Loader LoadExeFs: Loading sdk...
00:00:01.089 | ServiceTime InitializeLocationNameCache: TimeZoneBinary system title not found! TimeZone conversions will not work, provide the system archive to fix this error. (See https://github.com/Ryujinx/Ryujinx#requirements for more information)
00:00:01.201 | Loader LoadStaticObjects: Loading image 0 at 0x0000000008000000...
00:00:01.202 | Loader LoadStaticObjects: Loading image 1 at 0x0000000008004000...
00:00:01.246 | Loader LoadStaticObjects: Loading image 2 at 0x000000000babb000...
00:00:01.253 | Loader LoadStaticObjects: Loading image 3 at 0x000000000c1c8000...
00:00:01.278 | Application EnsureSaveData: Ensuring required savedata exists.
00:00:01.385 | Loader LoadNca: Application Loaded: Animal Crossing: New Horizons v1.0.0 [01006f8002326000] [64-bit]
00:00:01.389 | GUI.WindowThread Hid InitController: Connected ControllerType Handheld to PlayerIndex Handheld
00:00:01.565 | Application Glib_UnhandledException: Unhandled exception caught: System.InvalidCastException: Unable to cast object of type 'OpenTK.Platform.X11.X11WindowInfo' to type 'OpenTK.Platform.Linux.LinuxWindowInfo'.
   at OpenTK.Platform.Linux.LinuxFactory.CreateGLContext(GraphicsMode mode, IWindowInfo window, IGraphicsContext shareContext, Boolean directRendering, Int32 major, Int32 minor, GraphicsContextFlags flags)
   at OpenTK.Graphics.GraphicsContext..ctor(GraphicsMode mode, IWindowInfo window, IGraphicsContext shareContext, Int32 major, Int32 minor, GraphicsContextFlags flags)
   at OpenTK.Graphics.GraphicsContext..ctor(GraphicsMode mode, IWindowInfo window, Int32 major, Int32 minor, GraphicsContextFlags flags)
   at OpenTK.GLWidget.Initialize()
   at OpenTK.GLWidget.OnDrawn(Context cr)
   at Gtk.Widget.Drawn_cb(IntPtr inst, IntPtr cr)

which I believe has something to do with OpenGL.

@JoshuaFern
Copy link
Member

I gave running this emulator in steam-run a shot, no luck. The emulator GUI appears and mostly works, but launching a game will eventually result in a crash:

00:00:35.495 | Emulation CurrentDomain_UnhandledException: Unhandled exception caught: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.NotImplementedException: android.gui.IGraphicBufferProducer 2
   at Ryujinx.HLE.HOS.Services.SurfaceFlinger.NvFlinger.ProcessParcelRequest(ServiceCtx context, Byte[] parcelData, Int32 code) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Services\SurfaceFlinger\NvFlinger.cs:line 88
   at Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService.IHOSBinderDriver.TransactParcelAuto(ServiceCtx context) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Services\Vi\RootService\ApplicationDisplayService\IHOSBinderDriver.cs:line 83
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Ryujinx.HLE.HOS.Services.IpcService.CallMethod(ServiceCtx context) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Services\IpcService.cs:line 121
   at Ryujinx.HLE.HOS.Ipc.IpcHandler.IpcCall(Switch device, KProcess process, MemoryManager memory, KThread thread, KClientSession session, IpcMessage request, Int64 cmdPtr) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Ipc\IpcHandler.cs:line 50
   at Ryujinx.HLE.HOS.Kernel.SupervisorCall.SvcHandler.ProcessIpcRequest(Object state) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Kernel\SupervisorCall\SvcIpc.cs:line 157
   at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Unhandled exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.NotImplementedException: android.gui.IGraphicBufferProducer 2
   at Ryujinx.HLE.HOS.Services.SurfaceFlinger.NvFlinger.ProcessParcelRequest(ServiceCtx context, Byte[] parcelData, Int32 code) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Services\SurfaceFlinger\NvFlinger.cs:line 88
   at Ryujinx.HLE.HOS.Services.Vi.RootService.ApplicationDisplayService.IHOSBinderDriver.TransactParcelAuto(ServiceCtx context) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Services\Vi\RootService\ApplicationDisplayService\IHOSBinderDriver.cs:line 83
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Ryujinx.HLE.HOS.Services.IpcService.CallMethod(ServiceCtx context) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Services\IpcService.cs:line 121
   at Ryujinx.HLE.HOS.Ipc.IpcHandler.IpcCall(Switch device, KProcess process, MemoryManager memory, KThread thread, KClientSession session, IpcMessage request, Int64 cmdPtr) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Ipc\IpcHandler.cs:line 50
   at Ryujinx.HLE.HOS.Kernel.SupervisorCall.SvcHandler.ProcessIpcRequest(Object state) in C:\projects\ryujinx\Ryujinx.HLE\HOS\Kernel\SupervisorCall\SvcIpc.cs:line 157
   at System.Threading.QueueUserWorkItemCallbackDefaultContext.Execute()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
/home/jdf/.local/bin/ryujinx_run: line 1: 18879 Aborted                 (core dumped) steam-run /home/jdf/.local/bin/ryujinx/Ryujinx

I have Yuzu packaged on my NUR repo for testing if you want to give that a try. The current Yuzu PR in nixpkgs needs some work. nur.repos.joshuafern.yuzu-mainline

@dmitryrn
Copy link

dmitryrn commented Jul 7, 2020

Tried in Ubuntu 20.04 inside VMware fusion with MacOS as root OS. When I trying to launch a game:

00:00:00.022 | Application Main: Ryujinx Version: 1.0.4864
00:00:00.026 | Application Main: Operating System: Linux 5.4.0-40-generic #44-Ubuntu SMP Tue Jun 23 00:01:04 UTC 2020 (X64)
00:00:00.026 | Application Main: CPU: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
00:00:00.026 | Application Main: Total RAM: 11954 MB
00:00:00.128 | Application LoadApplication: Using Firmware Version: 10.0.0
00:00:00.128 | Application LoadApplication: Loading as XCI.
00:00:00.164 | Application AddAocData: Found AddOnContent with TitleId 01006F800232712D
00:00:00.164 | Application AddAocData: Found AddOnContent with TitleId 01006F800232712C
00:00:00.183 | Loader LoadExeFs: Loading rtld...
00:00:00.187 | Loader LoadExeFs: Loading main...
00:00:00.713 | Loader LoadExeFs: Loading subsdk0...
00:00:00.751 | Loader LoadExeFs: Loading sdk...
00:00:00.874 | Ptc Initialize: Initializing Profiled Persistent Translation Cache (enabled: False).
00:00:00.989 | Loader LoadNsos: Loading image 0 at 0x0000000008000000...
00:00:00.990 | Loader LoadNsos: Loading image 1 at 0x0000000008004000...
00:00:01.135 | Loader LoadNsos: Loading image 2 at 0x000000000bc39000...
00:00:01.185 | Loader LoadNsos: Loading image 3 at 0x000000000c346000...
00:00:01.320 | Application EnsureSaveData: Ensuring required savedata exists.
00:00:01.373 | Loader LoadNca: Application Loaded: Animal Crossing: New Horizons v1.1.0 [01006f8002326000] [64-bit]
00:00:01.384 | GUI.WindowThread Hid InitController: Connected ControllerType JoyconPair to PlayerIndex Player1
00:00:01.686 | Application Glib_UnhandledException: Unhandled exception caught: System.InvalidCastException: Unable to cast object of type 'OpenTK.Platform.X11.X11WindowInfo' to type 'OpenTK.Platform.Linux.LinuxWindowInfo'.
   at OpenTK.Platform.Linux.LinuxFactory.CreateGLContext(GraphicsMode mode, IWindowInfo window, IGraphicsContext shareContext, Boolean directRendering, Int32 major, Int32 minor, GraphicsContextFlags flags)
   at OpenTK.Graphics.GraphicsContext..ctor(GraphicsMode mode, IWindowInfo window, IGraphicsContext shareContext, Int32 major, Int32 minor, GraphicsContextFlags flags)
   at OpenTK.Graphics.GraphicsContext..ctor(GraphicsMode mode, IWindowInfo window, Int32 major, Int32 minor, GraphicsContextFlags flags)
   at OpenTK.GLWidget.Initialize()
   at OpenTK.GLWidget.OnDrawn(Context cr)
   at Gtk.Widget.Drawn_cb(IntPtr inst, IntPtr cr)

@IvarWithoutBones
Copy link
Member

IvarWithoutBones commented Jul 31, 2020

I've packaged Ryujinx with #94329.
Was able to fix the
00:00:01.686 | Application Glib_UnhandledException: Unhandled exception caught: System.InvalidCastException: Unable to cast object of type 'OpenTK.Platform.X11.X11WindowInfo' to type 'OpenTK.Platform.Linux.LinuxWindowInfo'.
problem by providing libX11. This also builds it from source, rather than using something like steam-run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants