Age | Commit message (Collapse) | Author |
|
service/ldr: Amend layouts of NRO and NRR headers
|
|
hle/service, hle/sm: Minor cleanup
|
|
Backport review comment from citra-emu/citra#4418
|
|
loaders: Make GetFileType() a const qualified member function
|
|
Original reason:
As Windows multi-byte character codec is unspecified while we always assume std::string uses UTF-8 in our code base, this can output gibberish when the string contains non-ASCII characters. ::OutputDebugStringW combined with Common::UTF8ToUTF16W is preferred here.
|
|
configuration/config: Use an intermediary variable for accessing players
|
|
system_archive: Implement open source NgWord2
|
|
kernel/svc: Correct behavior of svcResetSignal()
|
|
gl_rasterizer: Implement a framebuffer cache
|
|
gl_shader_decompiler: Implement TEXS.F16
|
|
|
|
Combines the two into one, shortening the amount of code here.
|
|
Only one usage of the specified objects made use of the lack of
namespacing. Given the low usage, we can just remove these.
|
|
These auto-deduce the result based off its arguments, so there's no need
to do that work for the compiler, plus, the function return value itself
already indicates what we're returning.
|
|
Gets rid of the need to keep the variables separate from their actual
initialization spots.
|
|
system_archive: Use a regular function pointer instead of std::function for the file-scope system archive array
|
|
service/ldr: Deduplicate instruction cache clearing code in LoadNro()
|
|
AddFstEntriesToGameList()
Similarly, here we can avoid doing unnecessary work twice by retrieving
the file type only once and comparing it against relevant operands,
avoiding potential unnecessary object construction/destruction.
|
|
in MakeGameListEntry()
While GetFileType() is indeed a getter function, that doesn't mean it's
a trivial function, given some case require reading from the data or
constructing other objects in the background. Instead, only do necessary
work once.
|
|
No implementations actually modify instance state (and it would be
questionable to do that in the first place given the name), so we can
make this a const member function.
|
|
lower vector capacity. For 36-bit titles saves 800MB of commit.
|
|
Avoids typing the same long accessor just to retrieve player attributes.
|
|
We've already given the constant to the vector itself, so we don't need
to re-hardcode it in the array.
|
|
file-scope system archive array
This allows the array to be constexpr. std::function is also allowed to
allocate memory, which makes its constructor non-trivial, we definitely
don't want to have all of these execute at runtime, taking up time
before the application can actually load.
|
|
We don't need to specify all of the ARM interfaces explicitly.
|
|
The first word is just a padding byte, it's not an actual entry
instruction. Also renames the rest of the entries according to
SwitchBrew.
|
|
|
|
The padding after the magic signature value should be 12 bytes rather
than 28 bytes. The other 16 should be placed after the title ID pattern.
|
|
|
|
Convert high-frequency LUT arrays from constexpr to static constexpr
|
|
While partially correct, this service call allows the retrieved event to
be null, as it also uses the same handle to check if it was referring to
a Process instance. The previous two changes put the necessary machinery
in place to allow for this, so we can simply call those member functions
here and be done with it.
|
|
Process instances can be waited upon for state changes. This is also
utilized by svcResetSignal, which will be modified in an upcoming
change. This simply puts all of the WaitObject related machinery in
place.
|
|
svcResetSignal relies on the event instance to have already been
signaled before attempting to reset it. If this isn't the case, then an
error code has to be returned.
|
|
In some constexpr functions, msvc is building the LUT at runtime
(pushing each element onto the stack) out of an abundance of caution. Moving the
arrays into be file-scoped constexpr's avoids this and turns the functions into
simple look-ups as intended.
|
|
file_sys: Implement open source system archives
|
|
yuzu/game_list_worker: Minor cleanup and code deduplication
|
|
check in callbacks
Avoids potentially allocating a std::string instance when it isn't
needed.
|
|
file_sys/registered_cache: Eliminate variable shadowing
|
|
crypto/key_manager: Remove unused variable in GetTicketblob()
|
|
|
|
This function simply does a handle table lookup for a writable event
instance identified by the given handle value. If a writable event
cannot be found for the given handle, then an invalid handle error is
returned. If a writable event is found, then it simply signals the
event, as one would expect.
|
|
svcCreateEvent operates by creating both a readable and writable event
and then attempts to add both to the current process' handle table.
If adding either of the events to the handle table fails, then the
relevant error from the handle table is returned.
If adding the readable event after the writable event to the table
fails, then the writable event is removed from the handle table and the
relevant error from the handle table is returned.
Note that since we do not currently test resource limits, we don't check
the resource limit table yet.
|
|
loader/{nro, nso}: Remove dependency on the System class
|
|
kernel/object: Amend handle types to distinguish between readable and writable events
|
|
* Rewrited TEX/TEXS (TEX Scalar).
* Style fixes.
* Styles issues.
|
|
kernel/svc: Implement the resource limit svcGetInfo option
|
|
Don't try to route PFIFO methods (0-0x40) to the other engines.
|
|
writable events
Two kernel object should absolutely never have the same handle ID type.
This can cause incorrect behavior when it comes to retrieving object
types from the handle table. In this case it allows converting a
WritableEvent into a ReadableEvent and vice-versa, which is undefined
behavior, since the object types are not the same.
This also corrects ClearEvent() to check both kernel types like the
kernel itself does.
|
|
Another hold-over from Citra.
|
|
Allows a process to register the resource limit as part of its handle
table.
|