| Age | Commit message (Collapse) | Author |
|
mii: Implement MiiManager backend and several mii service commands
|
|
service/aoc_u: Minor cleanup
|
|
Port citra-emu/citra#4716: "HLE/IPC: HLEContext can memorize the client thread and use it for SleepClientThread"
|
|
Previously, the code was accumulating data into a std::vector and then
tossing all of it away if a setting was disabled.
Instead, we can just check if it's disabled and do no work at all if
possible. If it's enabled, then we can append to the vector and
allocate.
Unlikely to impact usage much, but it is slightly less sloppy with
resources.
|
|
Removes two header dependencies related to file handling that aren't
actually used within the source file.
|
|
A few of the aoc service stubs/implementations weren't fully popping all
of the parameters passed to them. This ensures that all parameters are
popped and, at minimum, logged out.
|
|
service/audren_u: Get rid of magic values within GetAudioRendererWorkBufferSize
|
|
service/set: Correct and simplify behavior related to copying language codes
|
|
service/am: Add missing return in error case for IStorageAccessor's Read/Write()
|
|
Read()/Write().
Previously this would fall through and return successfully, despite
being an out of bounds read or write.
|
|
Renames the members to more accurately indicate what they signify.
"OneShot" and "Sticky" are kind of ambiguous identifiers for the reset
types, and can be kind of misleading. Automatic and Manual communicate
the kind of reset type in a clearer manner. Either the event is
automatically reset, or it isn't and must be manually cleared.
The "OneShot" and "Sticky" terminology is just a hold-over from Citra
where the kernel had a third type of event reset type known as "Pulse".
Given the Switch kernel only has two forms of event reset types, we
don't need to keep the old terminology around anymore.
|
|
SleepClientThread
This reduces the boilerplate that services have to write out the current thread explicitly. Using current thread instead of client thread is also semantically incorrect, and will be a problem when we implement multicore (at which time there will be multiple current threads)
|
|
This corrects cases where it was possible to write more entries into the
write buffer than were requested. Now, we check the size of the buffer
before actually writing into them.
We were also returning the wrong value for
GetAvailableLanguageCodeCount2(). This was previously returning 64, but
only 17 should have been returned. 64 entries is the size of the static
array used in MakeLanguageCode() within the service binary itself, but
isn't the actual total number of language codes present.
|
|
Also introduced in REV5 was a variable-size audio command buffer. This
also affects how the size of the work buffer should be determined, so we
can add handling for this as well.
Thankfully, no other alterations were made to how the work buffer size
is calculated in 7.0.0-8.0.0. There were indeed changes made to to how
some of the actual audio commands are generated though (particularly in
REV7), however they don't apply here.
|
|
GetWorkBufferSize()
Introduced in REV5. This is trivial to add support for, now that
everything isn't a mess of random magic constant values.
All this is, is a change in data type sizes as far as this function
cares.
|
|
"Unmagics" quite a few magic constants within this code, making it much
easier to understand. Particularly given this factors out specific
sections into their own self-contained lambda functions.
|
|
The state of these service calls are still the same in version 8.0.0.
|
|
|
|
|
|
|
|
|
|
|
|
Since the MiiManager was designed around the IPC interface, this is quite easy. Only functions that were clearly defined were implemented.
|
|
Provides serialization/deserialization to the database in system save files, accessors for database state and proper handling of both major Mii formats (MiiInfo and MiiStoreData)
|
|
Since the Mii database uses UUIDs very similar to the Accounts database, it makes no sense to not share code between them.
|
|
applets: Add AppletManager and implement PhotoViewer and Error applets
|
|
These two service functions are literally hardcoded to always return
these values without any other error checking.
|
|
|
|
|
|
|
|
Responsible for displaying error codes and messages
|
|
As opposed to using Core::System::GetInstance()
|
|
|
|
|
|
service: Update service function tables
|
|
ldr: Minor amendments to IPC-related parameters
|
|
Add a toggle to force 30FPS mode
|
|
Updates function tables based off information from SwitchBrew.
|
|
This doesn't modify instance state, so it can be made const.
|
|
The initial two words indicate a process ID. Also UnloadNro only
specifies one address, not two.
|
|
IDirectory's Read() function doesn't take any input parameters. It only
uses the output parameters that we already provide.
|
|
These indicate options that alter how a read/write is performed.
Currently we don't need to handle these, as the only one that seems to
be used is for writes, but all the custom options ever seem to do is
immediate flushing, which we already do by default.
|
|
file_sys: Provide generic interface for accessing game data
|
|
|
|
core: Add missing override specifiers where applicable
|
|
service/fsp_srv: Update SaveDataInfo and SaveDataDescriptor structs
|
|
Passing around a 64 byte data struct by value is kind of wasteful,
instead pass a reference to the struct.
|
|
The unknown member here is actually padding due to being passed as a
struct. We can do the same, and remove the need to pop a padding word.
|
|
I realized that I updated the documentation on SwitchBrew a while ago,
but never actually updated the structs within yuzu.
|
|
filesystem: Use a std::string_view in OpenFile()
|