aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services
AgeCommit message (Collapse)Author
2020-04-23Add support for dynamic docking/undocking (#1147)Thog
* Add support for dynamic docking/undocking As SurfaceFlinger is now working more accurately, we can now support dynamic configuration of docking mode :) * Simplify a bt the code * Fix import ordering * Remove unused argument
2020-04-22SurfaceFlinger: Invalid GraphicBuffer in SetPreallocatedBuffer (#1145)Thog
This invalidate the GraphicBuffer on the consumer side when SetPreallocatedBuffer is called on a buffer slot. This fix rendering issues on games with a dynamic resolution like Yoshi Crafted World.
2020-04-22SurfaceFlinger v2 (#981)Thog
* Rewrite SurfaceFlinger Reimplement accurately SurfaceFlinger (based on my 8.1.0 reversing of it) TODO: support swap interval properly and reintroduce disabled "game vsync" support. * Some fixes for SetBufferCount * uncomment a test from last commit * SurfaceFlinger: don't free the graphic buffer in SetBufferCount * SurfaceFlinger: Implement swap interval correctly * SurfaceFlinger: Reintegrate Game VSync toggle * SurfaceFlinger: do not push a fence on buffer release on the consumer side * Revert "SurfaceFlinger: do not push a fence on buffer release on the consumer side" This reverts commit 586b52b0bfab2d11f361f4b59ab7b7141020bbad. * Make the game vsync toggle work dynamically again * Unregister producer's Binder object when closing layer * Address ripinperi's comments * Add a timeout on syncpoint wait operation Syncpoint aren't supposed to be waited on for more than a second. This effectively workaround issues caused by not having a channel scheduling in place yet. PS: Also introduce Android WaitForever warning about fence being not signaled for 3s * Fix a print of previous commit * Address Ac_K's comments * Address gdkchan's comments * Address final comments
2020-04-21Suppress warnings from fields never used or never assigned (CS0169 and ↵Cristallix
CS0649) (#919) * chore : disable unwanted warnings and minor code cleanup * chore : remove more warnings * fix : reorder struct correctly * fix : restore _isKernel and remove useless comment * fix : copy/paste error * fix : restore CallMethod call * fix : whitespace * chore : clean using * feat : remove warnings * fix : simplify warning removal on struct * fix : revert fields deletion and code clean up * fix : re-add RE value * fix : typo
2020-04-19Implement GPU syncpoints (#980)Thog
* Implement GPU syncpoints This adds support for GPU syncpoints on the GPU backend & nvservices. Everything that was implemented here is based on my researches, hardware testing of the GM20B and reversing of nvservices (8.1.0). Thanks to @fincs for the informations about some behaviours of the pusher and for the initial informations about syncpoints. * syncpoint: address gdkchan's comments * Add some missing logic to handle SubmitGpfifo correctly * Handle the NV event API correctly * evnt => hostEvent * Finish addressing gdkchan's comments * nvservices: write the output buffer even when an error is returned * dma pusher: Implemnet prefetch barrier lso fix when the commands should be prefetch. * Partially fix prefetch barrier * Add a missing syncpoint check in QueryEvent of NvHostSyncPt * Address Ac_K's comments and fix GetSyncpoint for ChannelResourcePolicy == Channel * fix SyncptWait & SyncptWaitEx cmds logic * Address ripinperi's comments * Address gdkchan's comments * Move user event management to the control channel * Fix mm implementation, nvdec works again * Address ripinperi's comments * Address gdkchan's comments * Implement nvhost-ctrl close accurately + make nvservices dispose channels when stopping the emulator * Fix typo in MultiMediaOperationType
2020-04-17System Time Offset Implementation (#1101)CJ Bok
* System Time Offset Implementation * Addressed @Thog's comments * Addressed JD's comments * Addressed @Thog's and @AcK77's comments * formatting correction
2020-04-12Print the result name in SetTerminateResult if possible (#1105)Alex Barney
2020-04-07Use libhac for loading NSO and KIP (#1047)Elise
* Use libhac for loading NSOs and KIPs * Fix formatting * Refactor KIP and NSO executables for libhac * Fix up formatting * Remove Ryujinx.HLE.Loaders.Compression * Remove reference to Ryujinx.HLE.Loaders.Compression in NxStaticObject.cs * Remove reference to Ryujinx.HLE.Loaders.Compression in KernelInitialProcess.cs * Rename classes in Ryujinx.HLE.Loaders.Executables * Fix space alignment * Fix up formatting
2020-04-03HID SharedMem Rework (#1003)mageven
* Delete old HLE.Input * Add new HLE Input. git shows Hid.cs as modified because of the same name. It is new. * Change HID Service * Change Ryujinx UI to reflect new Input * Add basic ControllerApplet * Add DebugPad Should fix Kirby Star Allies * Address Ac_K's comments * Moved all of HLE.Input to Services.Hid * Separated all structs and enums each to a file * Removed vars * Made some naming changes to align with switchbrew * Added official joycon colors As an aside, fixed a mistake in touchscreen headers and added checks to important SharedMem structs at init time. * Further address Ac_K's comments * Addressed gdkchan's and some more Ac_K's comments * Address AcK's review comments * Address AcK's second review comments * Replace missed Marshal.SizeOf and address gdkchan's comments
2020-03-30Reduce requirements for running homebrew (#1053)Thog
* Reduce requirements for running homebrews This commit change the following behaviours: - TimeZoneBinary system archive isn't required until guest code call LoadTimeZoneRule. - Fonts system archives aren't requred until a "pl:u" IPC call is made. - Custom font support was dropped. - TimeZoneBinary missing message is now an error and not a warning. * Address comments
2020-03-26Make Device Location Name configuration (custom TZ) (#1031)Thog
This permit to use arbitrary timezone (instead of UTC). Useful for games like ACNH.
2020-03-26prepo: Add a MessagePack object formatter (#1034)jduncanator
2020-03-25prepo: Implement RequestImmediateTransmission and GetTransmissionStatus (#1033)Ac_K
* prepo: Implement RequestImmediateTransmission and GetTransmissionStatus This implement RequestImmediateTransmission and GetTransmissionStatus of the prepo service accurately to RE. Since we don't use reports, I've explained what the calls do in the real service. Close #958 * fix comment
2020-03-25Add IMultiCommitManager (#1011)Alex Barney
* Update LibHac * Add IMultiCommitManager * Updates * Delete NuGet.Config * Add command version
2020-03-24prepo: Resolve JSON parsing issues in prepo report handling (#1022)jduncanator
It seems MsgPack.Cli incorrectly converts some unicode control characters directly to JSON literal Unicode strings (eg. '\1'). As these are invalid, pretty printing the JSON report fails. This removes pretty printing, pending a proper implementation, and tidies up MsgPack deserialization.
2020-03-23friends: Stub GetBlockedUserListIds (#1017)Thog
2020-03-23Fix Prepo parsing reports (#1016)Ac_K
This fix the parsing of prepo service reports which could failed in some edge case. I've improved the parsing of the object to a JSON string too.
2020-03-20Implement GetRegionCode and add the RegionCode to settings (#999)Ac_K
This implement `GetRegionCode` accordingly to RE. I've added a setting in the GUI and a field in the Configuration file with a way to update the Configuration file if needed.
2020-03-18audren: Accept REV8 (#993)Thog
REV8 only added changes on performance buffer and wavebuffer dsp command generation. As we don't support any of those, we can just increment the revision number for now.
2020-03-04Implement some calls of ISelfController (#965)Ac_K
* Implement some calls of ISelfController This PR implement some calls of ISelfController: - EnterFatalSection - LeaveFatalSection - GetAccumulatedSuspendedTickValue (close #937) According to RE of the 8.1.0 am service. * thread safe increment/decrement * Fix thread safe * remove unused using
2020-03-03Add support for cache storage (#936)Alex Barney
* Update LibHac * Run EnsureApplicationCacheStorage when launching a game * Add new FS commands
2020-03-03stub GetNintendoAccountUserResourceCacheForApplication (#962)Thog
2020-03-02Implement mii:u and mii:e entirely (#955)Thog
* Implement mii:u and mii:e entirely Co-authored-by: AcK77 <Acoustik666@gmail.com> This commit implement the mii service accurately. This is based on Ac_k work but was polished and updated to 7.x. Please note that the following calls are partially implemented: - Convert: Used to convert from old console format (Wii/Wii U/3ds) - Import and Export: this is shouldn't be accesible in production mode. * Remove some debug leftovers * Make it possible to load an arbitrary mii database from a Switch * Address gdk's comments * Reduce visibility of all the Mii code * Address Ac_K's comments * Remove the StructLayout of DatabaseSessionMetadata * Add a missing line return in DatabaseSessionMetadata * Misc fixes and style changes * Fix some issues from last commit * Fix database server metadata UpdateCounter in MarkDirty (Thanks Moose for the catch) * MountCounter should only be incremented when no error is reported * Fix FixDatabase Co-authored-by: Alex Barney <thealexbarney@gmail.com>
2020-02-18Actually use the dummy NACP for EnsureApplicationSaveData (#939)Alex Barney
2020-02-17Implement GetCurrentIpConfigInfo (#943)Thog
* Implement GetCurrentIpConfigInfo This is needed by Rocket League. Also fix GetCurrentIpConfigInfo to not return ipv6 addresses * Address Ac_K comment
2020-02-12Stub the application copyright framebuffer api (#921)Thog
* Stub the application copyright framebuffer api As we currently don't support multi layers on vi/nvnflinger, this PR implement a stub of this API. * Address Cyuubi's comments * Add IPC checks and comments for future reversing Co-authored-by: Ac_K <Acoustik666@gmail.com> Co-authored-by: Ac_K <Acoustik666@gmail.com>
2020-02-06Render Profiler in GUI (#854)emmauss
* move profiler output to gui * addressed commits, rebased * removed whitespaces
2020-02-06Implement IDeliveryCacheProgressService in bcat (#908)Thog
* Implement IDeliveryCacheProgressService in bcat This stub IDeliveryCacheProgressService IPC interface as we don't plan to support cache delivery. * Address jd's comments * Address jd's comment correctly * Address gdk's comments
2020-02-02Fix inconsistencies with UserId (#906)Thog
* Fix inconsistencies with UserId The account user id isn't an UUID. This PR adds a new UserId type with the correct value ordering to avoid mismatch with LibHac's Uid. This also fix an hardcoded value of the UserId. As the userid has been invalid for quite some time (and to avoid forcing users to their recreate saves), the userid has been changed to "00000000000000010000000000000000". Also implement a stub for IApplicationFunctions::GetSaveDataSize. (see the sources for the reason) Fix #626 * Address jd's & Ac_k's comments
2020-01-30prepo IPrepoService accurate parsing for report (#905)Ac_K
* prepo IPrepoService accurate parsing for report I've found they use msgpack for the report, so I've added a nuget package and deserialize the report in the right way. Close #838 * jD requested changes * Change nuget to MsgPack.Cli * Use var instead of explicit cast
2020-01-27Fix OpenBisFileSystem wrong buffer type (#909)Thog
As the title say.
2020-01-21Keep the GUI alive when closing a game (#888)Thog
* Keep the GUI alive when closing a game Make HLE.Switch init when starting a game and dispose it when closing the GlScreen. This also make HLE in charge of disposing the audio and gpu backend. * Address Ac_k's comments * Make sure to dispose the Discord module and use GTK quit method Also update Discord Precense when closing a game. * Make sure to dispose MainWindow * Address gdk's comments
2020-01-18Various small audren fixes (#894)bylaws
* Remove redundant modulo on wave buffer index This is already performed by SetBufferIndex * Correct typo in UpdateDataHeader MixeSize -> MixSize * Remove unused variable in audren 'volume' was unused and 'voice.Volume' was used instead so remove 'volume'
2020-01-17Support audio effect output status (#890)gdkchan
* Support audio effect output status * Remove extra line
2020-01-16Update to LibHac 0.8.2 (#889)Alex Barney
* Update to LibHac 0.8.2 This brings support for temporary savedata, ignores case in key names when loading from a file, and prints the rights ID correctly when missing a title key. * Auto-format IFileSystemProxy
2020-01-12Call EnsureApplicationSaveData when launching a game (#871)Alex Barney
* Workaround for the lack of a program registry * Call EnsureApplicationSaveData when launching a game
2020-01-12MapBufferEx: take page size into account (#873)Thog
Fix #744
2020-01-12System firmware installer (#791)emmauss
* firmware installer * Add directory installation option and fix 9.x support for directory * Fix missing system font error while installing for the first time * Address code style comments * Create and use InvalidFirmwarePackageException * Fix LDj3SNuD's comments * addressed alex's comments * add label to status bar to show current firmware version Co-authored-by: Thog <thog@protonmail.com>
2020-01-09Fix R5G6B5 in SurfaceFlinger (#863)Thog
Also fix B5G6R5Unorm wrong definition in Ryujinx.Graphics.OpenGL.
2020-01-09Address PR feedbackgdkchan
Removes a useless null check Aligns some values to improve readability
2020-01-09Address PR feedbackgdkchan
Add TODO comment for GL_EXT_polygon_offset_clamp
2020-01-09Initialize GPU physical memory accessor from KProcess, to allow homebrew ↵gdkchan
that never maps anything on the GPU to work
2020-01-09Improved and simplified window texture presentationgdk
2020-01-09Add per-source type memory change tracking, simplified state change ↵gdk
tracking, other fixes
2020-01-09Initial workgdk
2020-01-09Fix timezone month being reported incorrectly to games (#861)Thog
Nintendo actually uses range from 1 to 12 for months (when original timezone code manage 0-11)
2020-01-05Rename "RyuFs" directory to "Ryujinx" and use the same savedata system the ↵Alex Barney
Switch uses (#801) * Use savedata FS commands from LibHac * Add EnsureSaveData. Use ApplicationControlProperty struct * Add a function to migrate to the new directory layout * LibHac update * Change backup structure * Don't create UI files in the save path * Update RyuFs paths * Add GetProgramIndexForAccessLog Ryujinx only runs one program at a time, so always return values reflecting that * Load control NCA when loading from an NSP * Skip over UI stats when exiting * Set TitleName and TitleId in more cases. Fix TitleID naming style * Completely comment out GUI play stats code * rebase * Update LibHac * Update LibHac * Revert UI changes * Do migration automatically at startup * Rename RyuFs directory to Ryujinx * Update RyuFs text * Store savedata paths in the GUI * Make "Open Save Directory" work * Use a dummy NACP in EnsureSaveData if one is not loaded * Remove manual migration button * Respond to feedback * Don't read the installer config to get a version string * Delete nuget.config * Exclude 'sdcard' and 'bis' during migration Co-authored-by: Thog <thog@protonmail.com>
2020-01-04Fix EphemeralNetworkSystemClock wrong steady clock (#858)Thog
oops
2019-12-26Fix LibHac.IStorage not being disposed in FileSystem proxy (#851)Thog
2019-12-25Fix remap ioctl map offset (#852)gdkchan
* Fix remap ioctl map offset * Correct offset type