summaryrefslogtreecommitdiff
path: root/src/core (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).
* | | | Merge pull request #1814 from lioncash/ptrGravatar bunnei2018-11-272-28/+26
|\ \ \ \ | | | | | | | | | | file_sys/registered_cache: Use regular const references instead of std::shared_ptr for InstallEntry()
| * | | | file_sys/registered_cache: Remove unused <map> includeGravatar Lioncash2018-11-271-1/+0
| | | | |
| * | | | file_sys/registered_cache: Use regular const references instead of ↵Gravatar Lioncash2018-11-272-27/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | std::shared_ptr for InstallEntry() These parameters don't need to utilize a shared lifecycle directly in the interface. Instead, the caller should provide a regular reference for the function to use. This also allows the type system to flag attempts to pass nullptr and makes it more generic, since it can now be used in contexts where a shared_ptr isn't being used (in other words, we don't constrain the usage of the interface to a particular mode of memory management).
* | | | | 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.
* | | | | | control_metadata: Correct typo in language name (Portugese -> Portuguese)Gravatar Lioncash2018-11-271-7/+17
| |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we're at it, organize the array linearly, since clang formats the array elements quite wide length-wise with the addition of the missing 'u'. Technically also fixes patch lookup and icon lookup with Portuguese, though I doubt anyone has actually run into this issue.
* | | | | Merge pull request #1804 from lioncash/castGravatar bunnei2018-11-261-1/+1
|\ \ \ \ \ | |_|/ / / |/| | | | gdbstub: Silence value truncation warning within FpuWrite()
| * | | | gdbstub: Silence value truncation warning within FpuWrite()Gravatar Lioncash2018-11-261-1/+1
| | |/ / | |/| | | | | | | | | | | | | | Previously this would cause an implicit truncation warning about assigning a u64 value to a u32 value without an explicit cast.
* | | | 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 #1692 from Hedges/GDBCleanGravatar bunnei2018-11-231-37/+86
|\ \ \ \ | | | | | | | | | | GDBStub Improvements
| * | | | GDBStub improvements:Gravatar Hedges2018-11-131-37/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add FPU support - Fix access to TLS Fix clang-format.
* | | | | 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 #1747 from DarkLordZach/exefs-lfsGravatar bunnei2018-11-232-2/+48
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | patch_manager: Add support for applying LayeredFS patches to ExeFS
| * | | | | patch_manager: Show LayeredExeFS patch in add-ons columnGravatar Zach Hilman2018-11-201-3/+14
| | | | | | | | | | | | | | | | | | The decision was made to name them LayeredExeFS instead of just LayeredFS to differentiate from normal RomFS-based mods. The name may be long/unweildy, but conveys the meaning well.
| * | | | | patch_manager: Apply LayeredExeFS patchesGravatar Zach Hilman2018-11-201-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | This will scan the <mod>/exefs dir for all files and then layer those on top of the game's exefs and use this as the new exefs. This allows for overriding of the compressed NSOs or adding new files. This does use the same dir as IPS/IPSwitch patch, but since the loader will not look for those they are ignored.
| * | | | | settings: Add option to dump ExeFS of games upon launchGravatar Zach Hilman2018-11-202-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | When enabled, all exefs(es) will be copied to yuzu/dump/<title_id>/exefs.
* | | | | | Merge pull request #1770 from DarkLordZach/applet-stubGravatar bunnei2018-11-234-4/+102
|\ \ \ \ \ \ | | | | | | | | | | | | | | 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-213-0/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.