Nintendo Switch Emulator Already Running Games

rgMekanic

[H]ard|News
Joined
May 13, 2013
Messages
6,943
Earlier this month a Nintendo Switch emulator called RyujiNX surfaced, and today according to a report on DSOGaming, it is already running some games. Right now the emulator can only run two titles, Binding Of Isaac and Cave Story+, and both have unplayable performance currently, however it is still impressive that they could get games up and running on a Nintendo Switch emulator so quickly.

RyujiNX is a Nintendo Switch Emulator programmed in C#, aiming to offer good performance, a friendly interface, and consistent builds. And while last week the emulator could only boot some games, this week we have some videos showing it running and going in-game in two titles.
 
.NET isn't meant for gaming with managed memory unless you use a ton of unsafes.
 
Can't wait to be ported to the Mac. LOL!

-mac-gaming-master-race-single-monitor-mods-medium-settings-no-lag-because-its-a-mac-it-cant-lag.jpg
 
.NET isn't meant for gaming with managed memory unless you use a ton of unsafes.

.NET is a tad slower then managed C++, but the difference is minimal nowadays. Remember at the end of the day you care about one frame every 16ms, which is an eternity by CPU standards. The overhead of .NET is minimal when compared next to that 16ms refresh window.
 
C#.NET has been shown to to run as fast and faster than C++ when enabling optimizations. The .NET language is not nearly as bloated as many like to believe.
Generally speaking the performance differences when optimizing both code sets falls very closely to almost negate the speed increase when using C++.

https://insights.dice.com/2015/12/09/can-c-ever-match-c-for-speed/
.NET is a tad slower then managed C++, but the difference is minimal nowadays. Remember at the end of the day you care about one frame every 16ms, which is an eternity by CPU standards. The overhead of .NET is minimal when compared next to that 16ms refresh window.

First of the reason .net is fast when you usenative function calls is because most of it's hand optimized outside managed memory. But also because the .net optimizer pre optimizes the native libraries when you call them similiar to how Android lollypop precompiles your apps before you run them.

That said when you write your own code large memory maps and arrays are horrendously slow on .net. And those are very common structures in game programming. Luckliy DX is still COM but manipulating resources is painfully slow till you let COM take over.

Hand optimizing a simple draw call the best I could achieve was 20fps 1920x1080 on 2D. And this was a simple composite rendered image with reused resources.

Moving to device contact (DC) draws under C++ unmanaged put me well into hundreds of fps.

You can unsafe/lock everything but then garbage collection becomes an issue and memory becomes quickly fragmented.
 
First of the reason .net is fast when you usenative function calls is because most of it's hand optimized outside managed memory. But also because the .net optimizer pre optimizes the native libraries when you call them similiar to how Android lollypop precompiles your apps before you run them.

That said when you write your own code large memory maps and arrays are horrendously slow on .net. And those are very common structures in game programming. Luckliy DX is still COM but manipulating resources is painfully slow till you let COM take over.

Hand optimizing a simple draw call the best I could achieve was 20fps 1920x1080 on 2D. And this was a simple composite rendered image with reused resources.

Moving to device contact (DC) draws under C++ unmanaged put me well into hundreds of fps.

You can unsafe/lock everything but then garbage collection becomes an issue and memory becomes quickly fragmented.

Array and Mapping performance was addressed in .Net 4.0 back in 2009, there is something like a 6% average difference between them now. C++ is the king of game development because of its existing libraries and its flexibility. C# at this point is the master for tools virtualization and emulation making it a far more suitable choice for this job.

Additionally most switch games were developed in the unity engine which is C# only for the switch.
 
Array and Mapping performance was addressed in .Net 4.0 back in 2009, there is something like a 6% average difference between them now. C++ is the king of game development because of its existing libraries and its flexibility. C# at this point is the master for tools virtualization and emulation making it a far more suitable choice for this job.

Additionally most switch games were developed in the unity engine which is C# only for the switch.

As a general rule: I prefer C# when I need something made quickly. I still tend to use C++ for performance based applications. But the performance difference between the two these days is minimal.
 
Back
Top