Temporary downstream fork of Ryujinx
Go to file
gdkchan 00579927e4
Better process implementation (#491)
* Initial implementation of KProcess

* Some improvements to the memory manager, implement back guest stack trace printing

* Better GetInfo implementation, improve checking in some places with information from process capabilities

* Allow the cpu to read/write from the correct memory locations for accesses crossing a page boundary

* Change long -> ulong for address/size on memory related methods to avoid unnecessary casts

* Attempt at implementing ldr:ro with new KProcess

* Allow BSS with size 0 on ldr:ro

* Add checking for memory block slab heap usage, return errors if full, exit gracefully

* Use KMemoryBlockSize const from KMemoryManager

* Allow all methods to read from non-contiguous locations

* Fix for TransactParcelAuto

* Address PR feedback, additionally fix some small issues related to the KIP loader and implement SVCs GetProcessId, GetProcessList, GetSystemInfo, CreatePort and ManageNamedPort

* Fix wrong check for source pages count from page list on MapPhysicalMemory

* Fix some issues with UnloadNro on ldr:ro
2018-11-28 20:18:09 -02:00
ChocolArm64 Better process implementation (#491) 2018-11-28 20:18:09 -02:00
Ryujinx Better process implementation (#491) 2018-11-28 20:18:09 -02:00
Ryujinx.Audio Audio: Track and Call ReleaseCallbacks in the Dummy Audio Output (#508) 2018-11-19 02:24:15 +01:00
Ryujinx.Common Better process implementation (#491) 2018-11-28 20:18:09 -02:00
Ryujinx.Graphics Better process implementation (#491) 2018-11-28 20:18:09 -02:00
Ryujinx.HLE Better process implementation (#491) 2018-11-28 20:18:09 -02:00
Ryujinx.LLE Add Sqdmulh_S, Sqdmulh_V, Sqrdmulh_S, Sqrdmulh_V instructions; add 6 Tests. Now all saturating methods are on ASoftFallback. (#334) 2018-08-10 14:27:15 -03:00
Ryujinx.ShaderTools Add Sqdmulh_S, Sqdmulh_V, Sqrdmulh_S, Sqrdmulh_V instructions; add 6 Tests. Now all saturating methods are on ASoftFallback. (#334) 2018-08-10 14:27:15 -03:00
Ryujinx.Tests Add Sse Opt. for S/Umax_V, S/Umin_V, S/Uaddw_V, S/Usubw_V, Fabs_S/V, Fneg_S/V Inst.; for Fcvtl_V, Fcvtn_V Inst.; and for Fcmp_S Inst.. Add/Improve other Sse Opt.. Add Tests. (#496) 2018-11-18 00:41:16 -02:00
Ryujinx.Tests.Unicorn Remove unnecessary usings (#463) 2018-10-17 14:55:10 -03:00
.gitattributes aloha 2018-02-04 20:08:20 -03:00
.gitignore Implement ContentManager and related services (#438) 2018-11-18 17:37:41 -02:00
.travis.yml Add some tests (#18) 2018-02-15 21:04:38 -03:00
appveyor.yml fix extra space 2018-07-19 18:53:49 +00:00
CONFIG.md Add Controller Support (#196) 2018-07-02 19:08:54 -03:00
KEYS.md Add XCI, NSP and NCA loading support (#404) 2018-09-08 15:33:27 -03:00
LICENSE.txt aloha 2018-02-04 20:08:20 -03:00
README.md Get rid of the link to Ryujinx-Settings (#501) 2018-11-17 04:33:38 +01:00
Ryujinx.sln Move logging to Ryujinx.Common and make it a static class (#413) 2018-10-17 14:15:50 -03:00

Ryujinx Build status

Experimental Switch emulator written in C#

Don't expect much from this. Some homebrew apps work, Puyo Puyo Tetris shows the intro logo (sometimes), and a handful of games boot / work; but that's about it for now. Contributions are always welcome.

Building

To build this emulator, you will need the .NET Core 2.1 (RC1) (or higher) SDK. https://www.microsoft.com/net/download/ In release builds, memory checks are disabled to improve performances.

Or just drag'n'drop the *.NRO / *.NSO or the game folder on the executable if you have a pre-build version.

Features

  • Audio is partially supported (glitched) on Windows but you need to install the OpenAL Core SDK. https://openal.org/downloads/OpenAL11CoreSDK.zip

  • Keyboard Input is partially supported:

    • Left Joycon:

      • Stick Up = W
      • Stick Down = S
      • Stick Left = A
      • Stick Right = D
      • Stick Button = F
      • DPad Up = Up
      • DPad Down = Down
      • DPad Left = Left
      • DPad Right = Right
      • Minus = -
      • L = E
      • ZL = Q
    • Right Joycon:

      • Stick Up = I
      • Stick Down = K
      • Stick Left = J
      • Stick Right = L
      • Stick Button = H
      • A = Z
      • B = X
      • X = C
      • Y = V
      • Plus = +
      • R = U
      • ZR = O
    • For more information on how to configure these buttons see CONFIG.md

  • Controller Input is partially supported:

    • Left Joycon:

      • Analog Stick = Left Analog Stick
      • DPad Up = DPad Up
      • DPad Down = DPad Down
      • DPad Left = DPad Left
      • DPad Right = DPad Right
      • Minus = Select / Back / Share
      • L = Left Shoulder Button
      • ZL = Left Trigger
    • Right Joycon:

      • Analog Stick = Right Analog Stick
      • A = B / Circle
      • B = A / Cross
      • X = Y / Triangle
      • Y = X / Square
      • Plus = Start / Options
      • R = Right Shoulder Button
      • ZR = Right Trigger
    • For more information on how to configure these buttons see CONFIG.md

  • Config File: Ryujinx.conf should be present in executable folder. For more information you can go here.

Help

If you have some homebrew that currently doesn't work within the emulator, you can contact us through our Discord with the compiled NRO/NSO (and source code if possible) and then we'll make changes in order to make the requested app / game work.

Contact

For help, support, suggestions, or if you just want to get in touch with the team; join our Discord server!
https://discord.gg/VkQYXAZ

For donation support, please take a look at our Patreon: https://www.patreon.com/ryujinx

Running

To run this emulator, you need the .NET Core 2.1 (or higher) SDK and the OpenAL 11 Core SDK.
Run dotnet run -c Release -- path\to\homebrew.nro inside the Ryujinx solution folder to run homebrew apps.
Run dotnet run -c Release -- path\to\game_exefs_and_romfs_folder to run official games (they need to be decrypted and extracted first!)

Compatibility

You can check out the compatibility list within the Wiki. Only a handful of games actually work.

Latest build

These builds are compiled automatically for each commit on the master branch. They may be unstable or might not work at all.
The latest automatic build for Windows (64-bit) can be found on the official website.