| Age | Commit message (Collapse) | Author |
|
npad: Use NPadIdToIndex to prevent invalid array access
|
|
gpu: Rewrite GPU command list processing with DmaPusher class.
|
|
|
|
|
|
|
|
profile_manager: Save and load ProfileData from disk
|
|
- More accurate impl., fixes Undertale (among other games).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
The ProfileData is a 0x80-sized structure that stores various pieces of miscellaneous data for the account.
|
|
|
|
|
|
|
|
services should now log on some level
|
|
service/sm: Take std::string by const reference in UnregisterService
|
|
|
|
nvdrv: Implement/stub DumpGraphicsMemoryInfo and GetStatus.
|
|
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.
|
|
sm: Implement RegisterService and UnregisterService
|
|
filesystem: Clear registered union paths on factory creation
|
|
Report resolution scaling support for vi and am
|
|
- Used by Undertale.
|
|
applets: Add StubApplet and use it as fallback when AppletId is not implemented
|
|
nvhost_ctrl_gpu: Implement IoctlGetGpuTime.
|
|
|
|
Prevents memory exceptions when the debug pad is enabled.
|
|
audout_u: Add support for multiple IAudioOut streams.
|
|
- Used by Undertale.
|
|
|
|
kernel/handle_table: Minor changes
|
|
This will log all data it receives, log all calls to its methods and push dummy data into both channels on execution.
|
|
These don't depend on class state, and are effectively implementation
details, so they can go into the cpp file .
|
|
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.
|
|
We don't need to potentially inline the teardown logic of all of the
handle instances.
|
|
am/applets: Minor cleanup
|
|
- Used by Undertale.
|
|
The interface for shared memory was changed, but another commit was
merged that relied on the (previously public) internals of SharedMemory.
This amends that discrepancy.
|
|
kernel/shared_memory: Make data members private, plus minor interface changes
|
|
ldr: Clean up error codes
|
|
<random> isn't necesary directly within the header and can be placed in
the cpp file where its needed. Avoids propagating random generation
utilities via a header file.
|
|
The accessor should be doing just that, accessing, rather than retaining
the lifetime of the data broker as well.
|
|
Also resolve places where includes should have been provided, but
weren't.
|
|
Avoids wonky wrapping and makes it nicer to read.
|
|
am: Implement HLE software keyboard applet
|
|
lm: Implement SetDestination by doing nothing
|