ryubing-ryujinx/docs/README.md
spl::kirakira e1b66399c9 Touchscreen failsafe, add LibraryAppletMyPage to Actions -> Tools, add a ton of HLE services, LDN monitor service
## Touchscreen Fix
- Added `GetScreenPositionNullable` for touch coordinate validation
- Returns `null` when touch is outside the rendered screen area
- Files: src/Ryujinx.Input/IMouse.cs, src/Ryujinx.Input/HLE/TouchScreenManager.cs

## LibraryAppletMyPage (User Page)
- Added Actions → Tools → User Page menu item
- Launches the MyPage system applet (program ID 0x0100000000001013)
- Files: src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml, MainMenuBarView.axaml.cs

## HLE Services Implementation

### HID System Server
- 850: SetTouchScreenDefaultConfiguration
- 851: GetTouchScreenDefaultConfiguration
- 1200: AcquireConnectionTriggerTimeoutEvent
- 1201: SendConnectionTrigger
- 1202: AcquireDeviceRegisteredEventForControllerSupport
- 1203: GetAllowedBluetoothLinksCount

### acc:aa (IBaasAccessTokenAccessor)
- 0: EnsureCacheAsync
- 1: LoadCache
- 2: GetDeviceAccountId
- 50: RegisterNotificationTokenAsync
- 51: UnregisterNotificationTokenAsync

### nim (IShopServiceAsync)
- Commands 0-5: Cancel, GetSize, Read, GetErrorCode, Request, Prepare

### LDN Monitor Service (NEW)
- IMonitorServiceCreator: Added CreateMonitorService (command 0)
- IMonitorService: GetStateForMonitor, GetNetworkInfoForMonitor, GetIpv4AddressForMonitor,
  GetDisconnectReasonForMonitor, GetSecurityParameterForMonitor, GetNetworkConfigForMonitor,
  AttachStateChangeEvent, InitializeMonitor, FinalizeMonitor

## Applet Infrastructure
- ILibraryAppletSelfAccessor: Rewrite to support MiiEdit, MyPage applets
- AppletStateMgr: Complete rewrite with proper state machine and focus handling
- ICommonStateGetter: Updated ReceiveMessage and RequestToAcquireSleepLock
2026-01-30 19:45:01 +08:00

35 lines
1.5 KiB
Markdown

# Documents Index
This repo includes several documents that explain both high-level and low-level concepts about Ryujinx and its functions. These are very useful for contributors, to get context that can be very difficult to acquire from just reading code.
Intro to Ryujinx
==================
Ryujinx is an open-source Nintendo Switch emulator, created by gdkchan, written in C#.
* The CPU emulator, ARMeilleure, emulates an ARMv8 CPU and currently has support for most 64-bit ARMv8 and some of the ARMv7 (and older) instructions.
* The GPU emulator emulates the Switch's Maxwell GPU using either the OpenGL (version 4.5 minimum), Vulkan, or Metal (via MoltenVK) APIs through a custom build of OpenTK or Silk.NET respectively.
* Audio output is entirely supported via C# wrappers for SDL3, with OpenAL & libsoundio as fallbacks.
Getting Started
===============
- [Installing the .NET SDK](https://dotnet.microsoft.com/download)
- [Official .NET Docs](https://docs.microsoft.com/dotnet/core/)
Contributing (Building, testing, benchmarking, profiling, etc.)
===============
If you want to contribute a code change to this repo, start here.
- [Contributor Guide](../CONTRIBUTING.md)
Coding Guidelines
=================
- [C# coding style](coding-guidelines/coding-style.md)
- [Service Implementation Guidelines - WIP](https://gist.github.com/gdkchan/84ba88cd50efbe58d1babfaa7cd7c455)
Project Docs
=================
To be added. Many project files will contain basic XML docs for key functions and classes in the meantime.