How did Ryujinx start?

How did Ryujinx start?

Hey, it's been a while since you've heard from us.

Although, let's have a history lesson about how Ryujinx started:

Ryujinx was started by gdkchan around November 2017 and the first version was released on GitHub February 5th 2018. The emulator was able to run a few homebrew apps and just one commercial game; Puyo Puyo Tetris at a screaming fast 15fps. I know, doesn't everyone want to play at 15fps!?

The main difference from other emulators is that Ryujinx is written in C#; instead of other languages, like C++, which is what most emulators are usually written in. It translates the ARM64 machine code of the title, into the .NET intermediate language (MSIL); which in turn is transformed by the .NET JIT (RyuJIT) into x86 machine code.

Also, this is how the project name was choosen; It's a mix of Ryūjin, RyuJIT (RyuJIT was named after Ryujin (the dragon god), a reference to a compiler design book usually called "the dragon book", because it has a dragon on the cover.) and the Nintendo Switch codename, NX.


Dr.Hacknik contacted gdkchan and helped create a Discord server and basic website the first day Ryujinx was publically available; which helped to grow the community and developers surrounding the project. Ac_K joined the project a few days after and implemented some basic audio, logging, configurations and HID support. While gdkchan was focused on implementing CPU instructions with the help of MerryMage.

Things grew faster after Emmaus joined the project to help work on some HLE parts. LDj3SNuD and MS-DOS1999 joined the project too and helped with the CPU part while gdkchan was focused on GPU emulation.

Also, more homebrew apps started working, along with the Homebrew menu and some games started to boot to menus:

Thog joined the team, and helped with the HLE part, fixing bugs and implementing new functionality.
Rodrigo helped us temporarily on some GPU instructions, and improved some rendering with the emulator.
»jD« joined the team and improved Logging and Audio, among other things.
Moosehunter joined the team and included his own .NET Switch filesystem library named LibHac into Ryujinx, it now handles most of the filesystem service functionality, in addition to ROM loading on the emulator.

After more hard work from the team, more games started working, here's some examples:

To this day, a considerable amount of games booting on Ryujinx, some of them are playable, while others are still running very slow or have major bugs. You can find the list in the Game List Repository.
We still have a lot of work to do, including fixes and optimizations. The project is almost 2 years old, and it was written from the ground up, and we believe it's one of the most ambitious emulation projects written in C# to date. We do all this on our free time out of passion.

Stay posted for some more amazing updates in the future. You surely won't be unsatisfied, there's plenty more to come!

If our work inspires you or if you want to support us; feel free to donate to our Patreon.

That's a wrap, feel free to share this blog post with your friends.