summaryrefslogtreecommitdiff
path: root/src/core/hle (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix debug buildGravatar Lioncash2018-12-011-1/+1
| | | | | A non-existent parameter was left in some formatting calls (the logging macro for which only does anything meaningful on debug builds)
* service/set: Convert GetLanguageCode over to using PushEnum()Gravatar Lioncash2018-11-301-1/+1
| | | | | This code was around prior to the introduction of PushEnum, so convert it over so we don't need to cast here.
* service/set: Implement MakeLanguageCodeGravatar Lioncash2018-11-302-1/+19
| | | | This function simply converts a given index into a language code.
* Merge pull request #1801 from ogniK5377/log-before-executeGravatar bunnei2018-11-2951-390/+860
|\ | | | | Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
| * Added comment on Main memory size for more clarityGravatar David Marcec2018-11-271-0/+1
| |
| * Made svcSetHeapSize and svcCreateSharedMemory more readableGravatar David Marcec2018-11-271-4/+4
| |
| * Reworked svcs slightly, improved error messages in AM and fsp_srvGravatar David Marcec2018-11-273-20/+30
| |
| * Fixed hwopus compile errorGravatar David Marcec2018-11-261-1/+1
| |
| * Improved error messages in AM, HwOpus and NvMapGravatar David Marcec2018-11-263-26/+39
| |
| * Improved error messages for SVCsGravatar David Marcec2018-11-261-76/+170
| |
| * Changed logging to be "Log before execution", Added more error logging, all ↵Gravatar David Marcec2018-11-2651-374/+726
| | | | | | | | services should now log on some level
* | Merge pull request #1817 from DarkLordZach/npad-idx-fixGravatar bunnei2018-11-281-2/+2
|\ \ | | | | | | npad: Use NPadIdToIndex to prevent invalid array access
| * | npad: Use NPadIdToIndex to prevent invalid array accessGravatar Zach Hilman2018-11-281-2/+2
| | |
* | | Merge pull request #1792 from bunnei/dma-pusherGravatar bunnei2018-11-281-5/+10
|\ \ \ | | | | | | | | gpu: Rewrite GPU command list processing with DmaPusher class.
| * | | dma_pushbuffer: Optimize to avoid loop and copy on Push.Gravatar bunnei2018-11-271-8/+6
| | | |
| * | | gpu: Rewrite GPU command list processing with DmaPusher class.Gravatar bunnei2018-11-261-3/+10
| | | | | | | | | | | | | | | | - More accurate impl., fixes Undertale (among other games).
* | | | npad: Fix copy/paste error with LED position assignmentsGravatar Zach Hilman2018-11-271-3/+3
| | | |
* | | | Merge pull request #1802 from DarkLordZach/user-data-storageGravatar bunnei2018-11-273-17/+19
|\ \ \ \ | |/ / / |/| | | profile_manager: Save and load ProfileData from disk
| * | | profile_manager: Save and load ProfileData from diskGravatar Zach Hilman2018-11-263-17/+19
| | | | | | | | | | | | | | | | The ProfileData is a 0x80-sized structure that stores various pieces of miscellaneous data for the account.
* | | | svc: Implement svcSetResourceLimitLimitValue()Gravatar Lioncash2018-11-261-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The opposite of the getter functions, this function sets the limit value for a particular ResourceLimit resource category, with the restriction that the new limit value must be equal to or greater than the current resource value. If this is violated, then ERR_INVALID_STATE is returned. e.g. Assume: current[Events] = 10; limit[Events] = 20; a call to this service function lowering the limit value to 10 would be fine, however, attempting to lower it to 9 in this case would cause an invalid state error.
* | | | svc: Implement svcGetResourceLimitCurrentValue()Gravatar Lioncash2018-11-261-16/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This kernel service function is essentially the exact same as svcGetResourceLimitLimitValue(), with the only difference being that it retrieves the current value for a given resource category using the provided resource limit handle, rather than retrieving the limiting value of that resource limit instance. Given these are exactly the same and only differ on returned values, we can extract the existing code for svcGetResourceLimitLimitValue() to handle both values.
* | | | svc: Implement svcGetResourceLimitLimitValue()Gravatar Lioncash2018-11-262-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This kernel service function retrieves the maximum allowable value for a provided resource category for a given resource limit instance. Given we already have the functionality added to the resource limit instance itself, it's sufficient to just hook it up. The error scenarios for this are: 1. If an invalid resource category type is provided, then ERR_INVALID_ENUM is returned. 2. If an invalid handle is provided, then ERR_INVALID_HANDLE is returned (bad thing goes in, bad thing goes out, as one would expect). If neither of the above error cases occur, then the out parameter is provided with the maximum limit value for the given category and success is returned.
* | | | svc: Implement svcCreateResourceLimit()Gravatar Lioncash2018-11-262-1/+27
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This function simply creates a ResourceLimit instance and attempts to create a handle for it within the current process' handle table. If the kernal fails to either create the ResourceLimit instance or create a handle for the ResourceLimit instance, it returns a failure code (OUT_OF_RESOURCE, and HANDLE_TABLE_FULL respectively). Finally, it exits by providing the output parameter with the handle value for the ResourceLimit instance and returning that it was successful. Note: We do not return OUT_OF_RESOURCE because, if yuzu runs out of available memory, then new will currently throw. We *could* allocate the kernel instance with std::nothrow, however this would be inconsistent with how all other kernel objects are currently allocated.
* | | Merge pull request #1793 from lioncash/refGravatar bunnei2018-11-252-2/+2
|\ \ \ | |_|/ |/| | service/sm: Take std::string by const reference in UnregisterService
| * | service/sm: Take std::string by const reference in UnregisterServiceGravatar Lioncash2018-11-242-2/+2
| |/ | | | | | | | | | | | | | | Avoids the need to create a copy of the std::string instance (potentially allocating). The only reason RegisterService takes its argument by value is because it's std::moved internally.
* | svc: Return ERR_INVALID_ENUM_VALUE from svcGetInfoGravatar Luke Street2018-11-251-1/+2
| |
* | Merge pull request #1791 from bunnei/nvdrv-stubGravatar bunnei2018-11-242-2/+18
|\ \ | |/ |/| nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
| * nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.Gravatar bunnei2018-11-232-2/+18
| | | | | | | | - Used by Undertale.
* | Merge pull request #1641 from DarkLordZach/sm-register-unregisterGravatar bunnei2018-11-232-2/+55
|\ \ | | | | | | sm: Implement RegisterService and UnregisterService
| * | sm: Implement RegisterService and UnregisterServiceGravatar Zach Hilman2018-11-032-2/+55
| | | | | | | | | These are needed by Edizon to boot. They are used to see if a user is using SX OS, as SX OS registers a custom service called 'tx' and attempting to register a service of the same name lets the application know if it is present.
* | | Merge pull request #1731 from DarkLordZach/change-dir-crashGravatar bunnei2018-11-232-0/+6
|\ \ \ | | | | | | | | filesystem: Clear registered union paths on factory creation
| * | | filesystem: Clear registered union paths on factory creationGravatar Zach Hilman2018-11-182-0/+6
| | | |
* | | | Merge pull request #1708 from ogniK5377/res-scaleGravatar bunnei2018-11-232-13/+31
|\ \ \ \ | |_|_|/ |/| | | Report resolution scaling support for vi and am
| * | | Removed hard coded values for width and heightGravatar David Marcec2018-11-191-2/+4
| | | |
| * | | Report resolution scaling support for vi and amGravatar David Marcec2018-11-162-13/+29
| | | | | | | | | | | | | | | | Specifying an internal resolution in yuzu now will report the scaled changes to vi and am.
* | | | Merge pull request #1770 from DarkLordZach/applet-stubGravatar bunnei2018-11-233-4/+100
|\ \ \ \ | | | | | | | | | | applets: Add StubApplet and use it as fallback when AppletId is not implemented
| * | | | am: Return StubApplet instead of nullptr when AppletId not foundGravatar Zach Hilman2018-11-223-11/+11
| | | | |
| * | | | applets: Add StubAppletGravatar Zach Hilman2018-11-212-0/+96
| | | | | | | | | | | | | | | | | | | | This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
* | | | | Merge pull request #1762 from bunnei/getgputimeGravatar bunnei2018-11-232-0/+19
|\ \ \ \ \ | | | | | | | | | | | | nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
| * | | | | nvhost_ctrl_gpu: Implement IoctlGetGpuTime.Gravatar bunnei2018-11-212-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | - Used by Undertale.
* | | | | | debug_pad: Avoid loading input for nonexistent buttons (Home and Screenshot)Gravatar Zach Hilman2018-11-221-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Prevents memory exceptions when the debug pad is enabled.
* | | | | | Merge pull request #1765 from bunnei/multi-audoutGravatar bunnei2018-11-222-9/+22
|\ \ \ \ \ \ | | | | | | | | | | | | | | audout_u: Add support for multiple IAudioOut streams.
| * | | | | | audout_u: Add support for multiple IAudioOut streams.Gravatar bunnei2018-11-222-9/+22
| |/ / / / / | | | | | | | | | | | | | | | | | | - Used by Undertale.
* | | | | | Merge pull request #1767 from lioncash/handleGravatar bunnei2018-11-212-12/+14
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | kernel/handle_table: Minor changes
| * | | | | kernel/handle_table: Move private static functions into the cpp fileGravatar Lioncash2018-11-212-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These don't depend on class state, and are effectively implementation details, so they can go into the cpp file .
| * | | | | kernel/handle_table: Restrict handle table size to 1024 entriesGravatar Lioncash2018-11-211-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous handle table size is a holdover from Citra. The actual handle table construct on Horizon only allows for a maximum of 1024 entries.
| * | | | | kernel/handle_table: Default destructor in the cpp fileGravatar Lioncash2018-11-212-0/+3
| |/ / / / | | | | | | | | | | | | | | | | | | | | We don't need to potentially inline the teardown logic of all of the handle instances.
* | | | | Merge pull request #1742 from lioncash/hle-swkbdGravatar bunnei2018-11-215-44/+63
|\ \ \ \ \ | |/ / / / |/| | | | am/applets: Minor cleanup
| * | | | am/applets: Make the applet data broker part of the applet itself.Gravatar Lioncash2018-11-205-31/+36
| | | | | | | | | | | | | | | | | | | | | | | | | The accessor should be doing just that, accessing, rather than retaining the lifetime of the data broker as well.
| * | | | am/applets: Replace includes with forward declarations where applicableGravatar Lioncash2018-11-202-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | Also resolve places where includes should have been provided, but weren't.