aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Am
AgeCommit message (Collapse)Author
2022-08-18Removed unused usings. (#3593)Nicholas Rodine
* Removed unused usings. * Added back using, now that it's used. * Removed extra whitespace.
2022-08-15am: Stub SetWirelessPriorityMode, SetWirelessPriorityMode and ↵Ac_K
GetHdcpAuthenticationState (#3535) This PR some calls in `am` service: - ISelfController: SetWirelessPriorityMode, SaveCurrentScreenshot (Partially checked by RE). - ICommonStateGetter: GetHdcpAuthenticationState Close #1831 and close #3527
2022-07-06Fix Vi managed and stray layers open/close/destroy (#3438)gdkchan
* Fix Vi managed and stray layers open/close/destroy * OpenLayer should set the state to ManagedOpened
2022-05-08hid: Various fixes and cleanup (#3326)Ac_K
* hid: Various fix and cleanup * Add IsValidNpadIdType * remove ()
2022-05-05Enable JIT service LLE (#2959)gdkchan
* Enable JIT service LLE * Force disable PPTC when using the JIT service PPTC does not support multiple guest processes * Fix build * Make SM service registration per emulation context rather than global * Address PR feedback
2022-02-27Update LibHac to v0.16.0 (#3159)Alex Barney
2022-02-18Implement/Stub mnpp:app service and some hid calls (#3131)Ac_K
* Implement/Stub mnpp:app service and some hid calls This PR Implement/Stub the `mnpp:app` service (closes #3107) accordingly to RE, which seems to do some telemetry for China region only, so everything is stubbed. This PR fixes some inconsistencies in the hid service too and stub EnableSixAxisSensorUnalteredPassthrough, IsSixAxisSensorUnalteredPassthroughEnabled, LoadSixAxisSensorCalibrationParameter, GetSixAxisSensorIcInformation calls (closes #3123 and closes #3124). * Addresses Thog review
2022-02-09misc: Make PID unsigned long instead of long (#3043)Mary
2022-01-12Update to LibHac 0.15.0 (#2986)Alex Barney
2021-12-30am: Stub SetMediaPlaybackStateForApplication (#2952)Ac_K
This PR stub `SetMediaPlaybackStateForApplication` of the am service. Accordingly to gdkchan it's needed by the Youtube app. This is checked by RE aswell.
2021-10-28Add support for the brazilian portuguese language code (#2792)gdkchan
* Add support for the brazilian portuguese language code * Fix error applet message
2021-10-12Inline software keyboard without input pop up dialog (#2180)Caian Benedicto
* Initial implementation * Refactor dynamic text input keys out to facilitate configuration via UI * Fix code styling * Add per applet indirect layer handles * Remove static functions from SoftwareKeyboardRenderer * Remove inline keyboard reset delay * Remove inline keyboard V2 responses * Add inline keyboard soft-lock recovering * Add comments * Forward accept and cancel key names to the keyboard and add soft-lock prevention line * Add dummy window to handle paste events * Rework inline keyboard state machine and graphics * Implement IHostUiHandler interfaces on headless WindowBase class * Add inline keyboard assets * Fix coding style * Fix coding style * Change mode cycling shortcut to F6 * Fix invalid calc size error in games using extended calc * Remove unnecessary namespaces
2021-09-19vi: Unify resolutions values and accurate implementation of them. (#2640)Ac_K
* vi: Unify resolutions values and accurate implementation of them. To continue what was made in #2618, I've REd `vi` service a bit. Now values and checks related to displays are more accurate. - `am` GetDefaultDisplayResolution / GetDefaultDisplayResolutionChangeEvent have more informations on what the service does. - `vi:u/vi:m/vi:s` GetDisplayService are now accurate. - `IApplicationDisplay` GetRelayService, GetSystemDisplayService, GetManagerDisplayService, GetIndirectDisplayTransactionService, ListDisplays, OpenDisplay, OpenDefaultDisplay, CloseDisplay, GetDisplayResolution are now properly implemented. - Some other calls are cleaned or have extra checks accordingly to RE. Additionnaly, `IFriendService` have some wrong aligned things, and `pm:info` service placeholder was missing. * just use _openedDisplayInfo.Remove() * use context.Memory.Fill() * fix some casting * remove unneeded comment * cleanup * uses TryAdd * displayId > ulong * GetDisplayResolution > ulong * UL
2021-09-11Report 1080p resolution when in docked mode (#2618)gdkchan
2021-08-12Update to LibHac 0.13.1 (#2475)Alex Barney
* Update to LibHac 0.13.1 * Recreate directories for indexed saves if they're missing on emulator start
2021-07-13Revert LibHac updateMary
Users are facing save destruction on failing extra data update apparently
2021-07-13Update to LibHac 0.13.1 (#2328)Alex Barney
Update the LibHac dependency to version 0.13.1. This brings a ton of improvements and changes such as: - Refactor `FsSrv` to match the official refactoring done in FS. - Change how the `Horizon` and `HorizonClient` classes are handled. Each client created represents a different process with its own process ID and client state. - Add FS access control to handle permissions for FS service method calls. - Add FS program registry to keep track of the program ID, location and permissions of each process. - Add FS program index map info manager to track the program IDs and indexes of multi-application programs. - Add all FS IPC interfaces. - Rewrite `Fs.Fsa` code to be more accurate. - Rewrite a lot of `FsSrv` code to be more accurate. - Extend directory save data to store `SaveDataExtraData` - Extend directory save data to lock the save directory to allow only one accessor at a time. - Improve waiting and retrying when encountering access issues in `LocalFileSystem` and `DirectorySaveDataFileSystem`. - More `IFileSystemProxy` methods should work now. - Probably a bunch more stuff. On the Ryujinx side: - Forward most `IFileSystemProxy` methods to LibHac. - Register programs and program index map info when launching an application. - Remove hacks and workarounds for missing LibHac functionality. - Recreate missing save data extra data found on emulator startup. - Create system save data that wasn't indexed correctly on an older LibHac version. `FsSrv` now enforces access control for each process. When a process tries to open a save data file system, FS reads the save's extra data to determine who the save owner is and if the caller has permission to open the save data. Previously-created save data did not have extra data created when the save was created. With access control checks in place, this means that processes with no permissions (most games) wouldn't be able to access their own save data. The extra data can be partially created from data in the save data indexer, which should be enough for access control purposes.
2021-07-10am: Implement CreateApplicationAndRequestToStart (#2448)Ac_K
This PR implement `CreateApplicationAndRequestToStart` call, result code is checked by RE. Now we can restart a guest program by itself. This is needed by SSBU when you changes the game language. NOTE: This currently don't works using OpenAL backend due to another issue. Closes #2108
2021-06-29Fix disposing of IPC sessions server at emulation stop (#2334)Mary
2021-06-29aoc/am: Cleanup aoc service and stub am calls (#2414)Ac_K
* aoc/am: Cleanup aoc service and stub am calls This PR implement aoc call `GetAddOnContentListChangedEventWithProcessId` (Closes #2408) and `CreateContentsServiceManager`. Additionnally, a big cleanup (checked by RE on latest firmware) is made on the whole service. I've added `CountAddOnContent`, `ListAddOnContent` and `GetAddonContentBaseId` for games which require version `1.0.0-6.2.0` too. Am service call `ReportUserIsActive` is stubbed (checked by RE, closes #2413). Since some logic in the service (aoc) which handle the DLCs has been changed, it could be nice to have some testing to be sure there is no regression. * Remove wrong check * Addresses gdkchan feedback * Fix GetAddOnContentLostErrorCode * fix null pid in services * Add missing comment * remove leftover comment
2021-06-28no name: Mii Editor applet support (#2419)Ac_K
* no name: Mii Editor applet support * addresses gdkchan feedback * Fix comment * Bypass MountCounter of MiiDatabaseManager * Fix GetSettingsPlatformRegion * Disable Applet Menu for unsupported firmwares
2021-06-21am: Add all known AppletMessage (#2378)Ac_K
This PR add all known AppletMessage values for accuracy, nothing more. `MessageInfo` is renamed to the right `AppletMessage` name.
2021-05-16misc: Move configuration management to the Ryujinx project (#2269)Mary
* Decouple configuration from Ryujinx.HLE and Ryujinx.Input * Move Configuration to the Ryujinx project
2021-04-24HLE: Fix integer sign inconcistency accross the codebase (#2222)Mary
* Make all title id instances unsigned * Replace address and size with ulong instead of signed types Long overdue change. Also change some logics here and there to optimize with the new memory manager. * Address Ac_K's comments * Remove uneeded cast all around * Fixes some others misalignment
2021-04-14am: Stub ExtendSaveData (#2209)Ac_K
2021-04-14Initial support for the new 12.x IPC system (#2182)Mary
* Rename CommandAttribute as CommandHIpcAttribute to prepare for 12.x changes * Implement inital support for TIPC and adds SM command ids * *Ipc to *ipc * Missed a ref in last commit... * CommandAttributeTIpc to CommandAttributeTipc * Addresses comment and fixes some bugs around TIPC doesn't have any padding requirements as buffer C isn't a thing Fix for RegisterService inverting two argument only on TIPC
2021-04-13account: Adds AccountManager (#2184)Ac_K
* account: Adds Account Manager In a way to have Custom User Profiles merged in master faster, this PR adds a `AccountManager` class (based on `AccountUtils` class) and the following changes have been made: - Adds a "default profile values" which were the old hardcoded ones. - The image profile is moved to the Account service folder. - The hardcoded UserId for the savedata is now using the `AccountManager` last opened one. - The DeviceId in Mii service is changed to the right value (checked by REd sys:set call). * Fix csproj * Addresses gdkchan's comments * Fix UserProfile fields * Fix mii GetDeviceId() * Update Ryujinx.HLE.csproj
2021-04-13Surface Flinger: Fix an oversight when closing a layer (#2192)Mary
* Surface Flinger: Fix an oversight when closing a layer As the title say. I also took the liberty of changing the logic on how we select the current layer being rendered to make it more explicit when opening and creating layers. NOTE: Found by Ac_k. * check for RenderLayerId and not the dictionary size This fix a possible race condition between the time you create a layer and set the one currently used for rendering
2021-03-28am: Stub ILibraryAppletAccessor RequestExit (#2142)Ac_K
This PR stub ILibraryAppletAccessor (20) RequestExit call which is needed by Monster Hunter Rise when you press "Private Policy" at the beginning. The game try to run the `WebApplet` which is already partially stubbed, then call `RequestExit` to know when the applet exits. If the call does nothing, the game just hang forever. If you signals the event, you can interracts with the menu again.
2021-03-27misc: Add credit to AmiiboAPI properly and fix a wrong warning code (#2150)Ac_K
* misc: Add credit to AmiiboAPI properly and fix a warning disable This PR adds a properly credit to AmiiboAPI which is used in our Amiibo emulation in the Readme and in the about window. I've changed a wrong warning code added in a recent PR too. * Update README.md * Fix aligment
2021-03-25am/ectx: Implement SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled ↵Ac_K
and add service placeholder (#2136) * am/ectx: Implement SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled and add service placeholder This PR implements `am` service call `SetRequestExitToLibraryAppletAtExecuteNextProgramEnabled` (closes #2028) accordingly to RE and adds placeholder for the `ectx` service. Both were added in 11.0.0+ firmware and are needed to boots games which needs this version. Some games are now playable/bootable: * Remove unused warning
2021-03-10Close ILibraryAppletAccessor handles on disposal (#2094)gdkchan
2021-02-21appletAE: Implement SetLcdBacklighOffEnabled (#2037)Ac_K
This PR implement `appletAE ICommonStateGetter SetLcdBacklighOffEnabled` accordingly to RE. Closes #2021
2021-01-23Fix inverted read only flag in transfer memory creation (#1945)Caian Benedicto
2021-01-19Fix alignment on CreateTransferMemoryStorage (#1937)gdkchan
2021-01-19am: Implement CreateHandleStorage and fixes (#1929)Ac_K
2021-01-08am: stub PresetLibraryAppletGpuTimeSliceZero (#1876)Ac_K
2020-12-15am/gui: Implement Wake-up message (#1750)Ac_K
* am/gui: Implement Wake-up message. This implement the ability to send a Wake-up (Resume) message to the guest. Sometime games needs to Sleep and Wake-up the switch to unlock some ingame features. * Address gdkchan feedback
2020-12-09am: Implement GetHealthWarningDisappearedSystemEvent (#1788)Ac_K
This implement IApplicationFunctions GetHealthWarningDisappearedSystemEvent call which is needed by Mario Kart 8 in Chinese version. Call was checked by RE. We still have to determine where to signals some AM events. Thanks to Kakasita on our Discord to reported this and confirm this works fine!
2020-12-02IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special ↵gdkchan
handling from kernel (#1458) * IPC refactor part 2: Use ReplyAndReceive on HLE services and remove special handling from kernel * Fix for applet transfer memory + some nits * Keep handles if possible to avoid server handle table exhaustion * Fix IPC ZeroFill bug * am: Correctly implement CreateManagedDisplayLayer and implement CreateManagedDisplaySeparableLayer CreateManagedDisplaySeparableLayer is requires since 10.x+ when appletResourceUserId != 0 * Make it exit properly * Make ServiceNotImplementedException show the full message again * Allow yielding execution to avoid starving other threads * Only wait if active * Merge IVirtualMemoryManager and IAddressSpaceManager * Fix Ro loading data from the wrong process Co-authored-by: Thog <me@thog.eu>
2020-11-24am: Fix GetSaveDataSize stub (#1748)Ac_K
2020-11-21am: Cleaning and stub TryPopFromFriendInvitationStorageChannel (#1738)Ac_K
2020-11-15am: Fix VR enabled by default (#1715)Ac_K
This PR fix an issue I've made in #1688 which is enabled VR as default. It could cause rendering issues in games when VR mode isn't used, as users have reported in Smash:
2020-11-15am/lbl/hid/pctl: Enabled VR Rendering (#1688)Ac_K
* am/lbl/hid/pctl: Enabled VR Rendering This PR enable VR rendering on games which support it through the Toy-Con VR Goggles. Please remember Ryujinx currently don't support console SixAxis sensor and for now, in some games, the view can't be moved. Everything is implemented accordingly to RE: - am: ICommonStateGetter: SetVrModeEnabled, BeginVrModeEx, EndVrModeEx. - lbl: ILblController: SetBrightnessReflectionDelayLevel, GetBrightnessReflectionDelayLevel, SetCurrentAmbientLightSensorMapping, GetCurrentAmbientLightSensorMapping, SetCurrentBrightnessSettingForVrMode, GetCurrentBrightnessSettingForVrMode, EnableVrMode, DisableVrMode, IsVrModeEnabled. - pctl: IParentalControlService: ConfirmStereoVisionPermission, ConfirmStereoVisionRestrictionConfigurable, GetStereoVisionRestriction, SetStereoVisionRestriction, ResetConfirmedStereoVisionPermission, IsStereoVisionPermitted. - hid: IHidServer: ResetSevenSixAxisSensorTimestamp is stubbed because we don't support console SixAxisSensor for now. Maybe we could add a setting later to enable or disable VR. But I think it's fine to keep this always available since you have to enable it in games. * Fix permission flag check * Address gdkchan feedback
2020-11-08apm/am: Refactoring/Unstub services (#1662)Ac_K
* apm: Refactoring/Unstub service This PR implement some IPC calls of apm service: - nn::apm::IManager is fully implemented. - nn::apm::ISession is fully implemented (close #1633). - nn::apm::ISystemManager is partially implemented. nn::appletAE::ICommonStateGetter have some calls which are just a layer of apm IPC calls. What we did in some calls was wrong, it's fixed now! Everything is checked with RE. * abstract Apm *Server as Thog requested * abstract ISession and fix other classes * Address gdkchan feedback * Fix class * Fix Logging
2020-09-23Return "NotAvailable" when no UserChannel data is present. (#1569)riperiperi
* Return "NotAvailable" when no UserChannel data is present. * Return ObjectInvalid for undefined parameter kinds. * No need to specify which, there's only one. * Just works as a literal string.
2020-09-21hle/ui: Basic multi programs support (#1560)Mary
* hos/gui: Add a check of NCA program index in titleid This add a check to `ApplicationLoader` for the last 2 digits of the game TitleId who seems to be the NCA program index. We currently return the last index, instead of the lower one. Same check is added to ApplicationLibrary in the UI. I've cleaned up both file too. * hle: implement partial relaunch logic TODO: make the emulator auto relauch. * Handle auto relaunch * hle: Unify update usage system * hle: Implement support of multi programs in update system * Add some documentation * Address rip's comment Co-authored-by: Ac_K <Acoustik666@gmail.com>
2020-09-20am: Stub Begin/EndBlockingHomeButton (#1553)Ac_K
2020-09-01Update to LibHac 0.12.0 (#1485)Alex Barney
* Update to LibHac 0.12.0 * Auto-formatting. Fixed a bug in SetApplicationCopyrightImage
2020-08-04Improved Logger (#1292)mageven
* Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements