aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services
AgeCommit message (Collapse)Author
2020-09-29Add Motion controls (#1363)emmauss
* Add motion controls Apply suggestions from code review Co-authored-by: Ac_K <Acoustik666@gmail.com> * cleanup * add reference orientation and derive relative orientation from it * cleanup * remove unused variable and strange file * Review_2. * change GetInput to TryGetInput * Review_3. Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: LDj3SNuD <dvitiello@gmail.com>
2020-09-25Isolate more services to separate threads (#1573)mageven
* Isolate more services to separate threads * Fix DisplayServer * Add explanation for vi services
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-23Run audren in a separate thread (#1572)mageven
2020-09-22IPC refactor part 1: Use explicit separate threads to process requests (#1447)gdkchan
* Changes to allow explicit management of service threads * Remove now unused code * Remove ThreadCounter, its no longer needed * Allow and use separate server per service, also fix exit issues * New policy change: PTC version now uses PR number
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-20acc/hid: Implement ListQualifiedUsers and SetTouchScreenConfiguration (#1555)Ac_K
* acc/hid: Implement ListQualifiedUsers and SetTouchScreenConfiguration * Fix symbols
2020-09-20friend: Implement GetCompletionEvent and AddPlayHistory (#1554)Ac_K
2020-09-20am: Stub Begin/EndBlockingHomeButton (#1553)Ac_K
2020-09-20caps: Stub SetShimLibraryVersion (#1552)Ac_K
2020-09-19Correct the threshold for control stick buttons (#1483)Billy Laws
This was tested against HW with https://github.com/Xpl0itR/Input-Test/tree/master/Input-Test and a few changes to record the minimum value axis value when the stick buttons were marked as pressed.
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-30Remove the Ryujinx.Debugger project (#1506)Mary
This project wasn't really used by anyone and isn't worth mantaining. This commit remove the profiler entirely from Ryujinx and remove the associated CI tasks.
2020-08-30Clean up and update readme (#1501)Mary
* Clean up and update readme THis clean up and improve the README a bit. * Apply suggestions from code review Co-authored-by: EmulationFanatic <62343878+EmulationFanatic@users.noreply.github.com> Co-authored-by: EmulationFanatic <62343878+EmulationFanatic@users.noreply.github.com>
2020-08-23Improve multi-controller support in HID and Controller Applet (#1453)mageven
* Initial commit Enable proper LED patterns Toggle Hotkeys only on focus Ignore Handheld on Docked mode Remove PrimaryController Validate NpadIdType Rewrite NpadDevices to process config in update loop Cleanup * Notify in log periodically when no matched controllers * Remove duplicate StructArrayHelpers in favor of Common.Memory Fix struct padding CS0169 warns in Touchscreen * Remove GTK markup from Controller Applet Use IList instead of List Explicit list capacity in 1ms loop Fix formatting * Restrict ControllerWindow to show valid controller types Add selected player name to ControllerWindow title * ControllerWindow: Fix controller type initial value NpadDevices: Simplify default battery charge * Address AcK's comments Use explicit types and fix formatting * Remove HashSet for SupportedPlayers Fixes potential exceptions due to race * Fix ControllerSupportArg struct packing Also comes with two revisions of struct for 4/8 players max.
2020-08-18account: Implement IManagerForApplication calls and IAsyncContext (#1466)Ac_K
* account: Implement IManagerForApplication calls and IAsyncContext This implement: - IManagerForApplication::EnsureIdTokenCacheAsync (accordingly to RE) but the Async task is stubbed. - IAsyncContext interface (accordingly to RE). - IManagerForApplication::LoadIdTokenCache (checked with RE, and stubbed). I've tried some games but now they needs some `sfdnsres` calls, some other boots and crashes with other issues. Maybe we should disable the connection somewhere to lets the game think we are offline. I have done many attempts, without success, but since the code is here now, it's better than nothing. (I've cleaned up `using` of IGeneralService too) Closes #629 and closes #630 * change AccountId * Fix gdkchan's comments * use CompletedTask
2020-08-18Misc audio fixes (#1348)Mary
Changes: Implement software surround downmixing (fix #796). Fix a crash when no audio renderer were created when stopping emulation. NOTE: This PR also disable support of 5.1 surround on the OpenAL backend as we cannot detect if the hardware directly support it. (the downmixing applied by OpenAL on Windows is terribly slow)
2020-08-17Amadeus: Final Act (#1481)Mary
* Amadeus: Final Act This is my requiem, I present to you Amadeus, a complete reimplementation of the Audio Renderer! This reimplementation is based on my reversing of every version of the audio system module that I carried for the past 10 months. This supports every revision (at the time of writing REV1 to REV8 included) and all features proposed by the Audio Renderer on real hardware. Because this component could be used outside an emulation context, and to avoid possible "inspirations" not crediting the project, I decided to license the Ryujinx.Audio.Renderer project under LGPLv3. - FE3H voices in videos and chapter intro are not present. - Games that use two audio renderer **at the same time** are probably going to have issues right now **until we rewrite the audio output interface** (Crash Team Racing is the only known game to use two renderer at the same time). - Persona 5 Scrambler now goes ingame but audio is garbage. This is caused by the fact that the game engine is syncing audio and video in a really aggressive way. This will disappears the day this game run at full speed. * Make timing more precise when sleeping on Windows Improve precision to a 1ms resolution on Windows NT based OS. This is used to avoid having totally erratic timings and unify all Windows users to the same resolution. NOTE: This is only active when emulation is running.
2020-08-13bluetooth: Fix event handle in IBluetoothDriver (#1464)Ac_K
This fix the InitializeBluetoothLe call who didn't return any event handle
2020-08-08Forward OpenSaveDataInfoReaderOnlyCacheStorage to ↵Alex Barney
OpenSaveDataInfoReaderWithFilter (#1449)
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
2020-08-03Implement Software Keyboard GTK frontend (#1434)mageven
* Implement SwKbd GUI * Relocate UI handler to Emu Context from Config Also create a common interface for UI handlers in the context and specialize for Gtk Add basic input length validation in InputDialog * Add Transfer Memory support to AppletCreator Read Initial Text for SwKbd using Transfer Memory * Improve InputDialog widget Improve length validation Has extra label to show validition info Handle potential errors and log them * Misc improvements * Improve string validation * Improve error handling * Remove tuple in struct * Address formatting nits * Add proper Cancel functionality Also handle GUI errors in UI handler * Address jD's comments * Fix _uiHandler init * Address AcK's comments
2020-08-02friend: Implement GetPlayHistoryRegistrationKey (#1424)Ac_K
* friend: Implement GetPlayHistoryRegistrationKey This implement IServiceCreator::GetPlayHistoryRegistrationKey call accordingly to RE. Close #1110 * Fix comments * Fix guid and comment some codes * Improve guid casting and remove unused vars
2020-07-31fs: stub ReadSaveDataFileSystemExtraDataWithMaskBySaveDataAttribute (#1443)Mary
This is required by AC:NH for the new online save features of 1.4.0
2020-07-27ns/nim: Stub eShop related calls (#1420)Ac_K
* ns/nim: Stub eShop related calls As we aren't able to process purchase on the eShop throught the emulator, I have: - Stub IPurchaseEventManager::SetDefaultDeliveryTarget (with RE check). - Implement IPurchaseEventManager::GetPurchasedEventReadableHandle (with RE check). As we can't do any eShop async call throught the emulator, I have: - Stub IShopServiceAccessServerInterface::CreateServerInterface - Stub IShopServiceAccessServer::CreateAccessorInterface - Stub IShopServiceAccessor::IShopServiceAsync Close #1084 and #1322 * fix handle copy * Fix align * Fix readonly event
2020-07-27audin: Implement IAudioInManager ListAudioIns (#1419)Ac_K
* audin: Implement IAudioInManager ListAudioIns This implement some calls of IAudioInManager: - ListAudioIns - ListAudioInsAuto - ListAudioInsAutoFiltered Accordingly to RE. Close #1056 * Fix count * Comment condition * Fix comment
2020-07-26Implement BGRA texture support (#1418)gdkchan
* Implement BGRA texture support * Missing AppendLine * Remove empty lines * Address PR feedback
2020-07-23New GPFifo and fast guest constant buffer updates (#1400)gdkchan
* Add new structures from official docs, start migrating GPFifo * Finish migration to new GPFifo processor * Implement fast constant buffer data upload * Migrate to new GPFifo class * XML docs
2020-07-23vi: Implement GetIndirectLayerImageRequiredMemoryInfo (#1415)Ac_K
This implement GetIndirectLayerImageRequiredMemoryInfo call from vi service, accordingly to RE. Thanks to Thog and gdkchan for helping me to understand some GPU things. Close #942
2020-07-22Add multiple calls to am service (#1411)Ac_K
* Add multiple calls to am service This implement/stub some am calls: - SetAutoSleepDisabled - IsAutoSleepDisabled - SetAlbumImageTakenNotificationEnabled - EnableApplicationCrashReport - GetPreviousProgramIndex - NeedsToExitProcess - RequestForAppletToGetForeground - GetIndirectLayerConsumerHandle All checked by RE. Additionnaly to that, there is some cleanup here and there. Fix #1387, #1324, #1165, #1163, #1065 * Fix casting * Thread safe assign
2020-07-21Better TimeZone entry in System Settings (#1254)mageven
* Better timezone labels in System TimeZone Replace with GtkEntry with auto-complete Also removed async task as now loading is fast Address Thog's comments self-nit: Remove string alias Address AcK's comments * Improve parsing * Optimize and fix string matching Address jD's comments * Also, make abbreviations searchable * Optimize EntryCompletion's MatchFunc * nit: Result.IsFailure() * Fix potential crash on opening Settings window w/o FW installed
2020-07-21Fix IDeliveryCacheProgressService GetEvent (#1409)gdkchan
2020-07-20ipc hle: Fix disposing of session created with MakeObject (#1404)Mary
This fix a missing part of #1397, making HLE ipc session being disposed when needed. THis is needed for upcoming wip changes.
2020-07-19Fix session service disposal and improve transfer memory implementation (#1397)gdkchan
* Fix session service disposal and improve transfer memory implementation * Remove useless assignment
2020-07-12New NVDEC and VIC implementation (#1384)gdkchan
* Initial NVDEC and VIC implementation * Update FFmpeg.AutoGen to 4.3.0 * Add nvdec dependencies for Windows * Unify some VP9 structures * Rename VP9 structure fields * Improvements to Video API * XML docs for Common.Memory * Remove now unused or redundant overloads from MemoryAccessor * NVDEC UV surface read/write scalar paths * Add FIXME comments about hacky things/stuff that will need to be fixed in the future * Cleaned up VP9 memory allocation * Remove some debug logs * Rename some VP9 structs * Remove unused struct * No need to compile Ryujinx.Graphics.Host1x with unsafe anymore * Name AsyncWorkQueue threads to make debugging easier * Make Vp9PictureInfo a ref struct * LayoutConverter no longer needs the depth argument (broken by rebase) * Pooling of VP9 buffers, plus fix a memory leak on VP9 * Really wish VS could rename projects properly... * Address feedback * Remove using * Catch OperationCanceledException * Add licensing informations * Add THIRDPARTY.md to release too Co-authored-by: Thog <me@thog.eu>
2020-07-09Implement modding support (#1249)mageven
* Implement Modding Support * Executables: Rewrite to use contiguous mem and Spans * Reorder ExeFs, Npdm, ControlData and SaveData calls After discussion with gdkchan, it was decided it's best to call LoadExeFs after all other loads are done as it starts the guest process. * Build RomFs manually instead of Layering FS Layered FS approach has considerable latency when building the final romfs. So, we manually replace files in a single romfs instance. * Add RomFs modding via storage file * Fix and cleanup MemPatch * Add dynamically loaded NRO patching * Support exefs file replacement * Rewrite ModLoader to use mods-search architecture * Disable PPTC when exefs patches are detected Disable PPTC on exefs replacements too * Rewrite ModLoader, again * Increased maintainability and matches Atmosphere closely * Creates base mods structure if it doesn't exist * Add Exefs partition replacement * IPSwitch: Fix nsobid parsing * Move mod logs to new LogClass * Allow custom suffixes to title dirs again * Address nits * Add a per-App "Open Mods Directory" context menu item Creates the path if not present. * Normalize tooltips verbiage * Use LocalStorage and remove unused namespaces
2020-07-05prepo: Update implementation for 10.x changes (#1361)Mary
* prepo: Update implementation for 10.x changes On 10.x, Nintendo changed yet another time the prepo SaveReport & SaveReportWithUser command ids. This PR add support for command 10104 & 10105 and update naming of the old variants to match switchbrew. * Fix misalign and remove a ToString * Address jD's comment
2020-07-04Fix compilation warnings and use new LibHac APIs for executable loading (#1350)Mary
* Fix compilation warnings and use new LibHac APIs for executable loading * Migrate NSO loader to the new reader and fix kip loader * Fix CS0162 restore * Remove extra return lines * Address Moose's comment
2020-07-04Stub nifm IRequest GetAppletInfo (#1326)mageven
* Stub GetAppletInfo to be consistent with GetResult * Fix formatting and enum * Update and use ResultCode
2020-07-04sockets: Make sure to write the receivedBuffer (#1346)Mary
Fix #1341
2020-06-22Update NRR structs (#1291)VolcaEM
* Update NRR structs This was based on Switchbrew page: switchbrew.org/wiki/NRR * Address review comments
2020-06-20Implement aoc:u and support loading AddOnContent (#1221)mageven
* Initial rebased AddOnContent support * Fix bounds calculation * Use existing GameCard in VFS per Xpl0itR's suggestion + Add dummy IPurchaseEventManager per AcK's suggestion * Support multiple containers * Add option to selectively disable addons * Import tickets from AOC FS * Load all nsps in base directory automatically * Revert LoadNsp renaming Removes conflicts with Mods PR. Not much is lost, old names were fine. * Address AcK's comments * Address Thog's comments Dispose opened nsp files Fix potential bug by clearing metadata on load
2020-06-06Stubbing ImportServerPki (#1281)Shrek5InTheatres2019
* Stubbed ImportServerPki * thought it might be nice to name this variable properly * i really need to name variables better * Change Var Co-authored-by: Thog <thog@protonmail.com> * Change .ReadBytes(5) to IPC send buffer Co-authored-by: Thog <thog@protonmail.com> * Add description comment Co-authored-by: Thog <thog@protonmail.com> * fix build issue * Resolve final suggestion Co-authored-by: Thog <thog@protonmail.com> * uhh * it should work now shut up * aligned variables just look so much nicer :) * better variable alignment * aligned Co-authored-by: Thog <thog@protonmail.com>
2020-06-02SurfaceFlinger: fix some bugs (#1262)Thog
* SurfaceFlinger: fix some bugs This fixes some bugs in the current implementation and make it closer to the real implementation. * Fix align of some variables
2020-05-27Fix GetDesiredLanguage (#1275)mageven
* Fix GetDesiredLanguage * Correct tzcnt slip-up * Address gdkchan's comments
2020-05-27Fix GetDisplayVersion (#1276)mageven
2020-05-15surfaceflinger: FreeBufferLocked doesn't reset the graphic bufferThog
That's the job of the user on Horizon (via SetPreallocatedBuffer).
2020-05-15Refactor out Application details from Horizon (#1236)mageven
* Initial Application refactor * Misc typo and access modifier fixes * Clean unused namespaces * Address gdkchan's comments * Move ticket reading to common method * Change IParentalControlService to use ApplicationLoader.ControlData
2020-05-15Surface Flinger: Implement GetBufferHistory (#1232)Thog
* Surface Flinger: Implement GetBufferHistory Also fix some bugs on the Surface Flinger implementation * Address Ac_K's comment
2020-05-15pctl: refactoring IParentalControlServiceFactory and IParentalControl… (#1219)Ac_K
* pctl: refactoring IParentalControlServiceFactory and IParentalControlService call Our previous implementation was totally guessed. Now it's implemented according to RE, even if it's stubbed because we will not support Parental Control for now. * unknownFlag > permissionFlag