aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2019-03-10core/hle/result: Relocate IPC error code to ipc_helpersLioncash
Relocates the error code to where it's most related, similar to how all the other error codes are. Previously we were including a non-generic error in the main result code header.
2019-03-10service/service: Remove unncessary calls to c_str()Lioncash
These can just be passed regularly, now that we use fmt instead of our old logging system. While we're at it, make the parameters to MakeFunctionString std::string_views.
2019-03-10Merge pull request #2207 from lioncash/hwopusbunnei
service/audio/hwopus: Move decoder state to its own class
2019-03-10Merge pull request #2193 from lioncash/globalbunnei
kernel/scheduler: Pass in system instance in constructor
2019-03-10set_sys: Implement GetFirmwareVersion(2) for libnx hosversionZach Hilman
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
2019-03-09clang fixHexagon12
2019-03-09Log 2 new setting valuesHexagon12
2019-03-08Merge pull request #2210 from lioncash/optionalbunnei
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
2019-03-07kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optionalLioncash
There's no real need to use a shared lifetime here, since we don't actually expose them to anything else. This is also kind of an unnecessary use of the heap given the objects themselves are so small; small enough, in fact that changing over to optionals actually reduces the overall size of the HLERequestContext struct (818 bytes to 808 bytes).
2019-03-07kernel: Make the address arbiter instance per-processLioncash
Now that we have the address arbiter extracted to its own class, we can fix an innaccuracy with the kernel. Said inaccuracy being that there isn't only one address arbiter. Each process instance contains its own AddressArbiter instance in the actual kernel. This fixes that and gets rid of another long-standing issue that could arise when attempting to create more than one process.
2019-03-07kernel/svc: Move address arbiter signaling behind a unified API functionLioncash
Similar to how WaitForAddress was isolated to its own function, we can also move the necessary conditional checking into the address arbiter class itself, allowing us to hide the implementation details of it from public use.
2019-03-07kernel/svc: Move address arbiter waiting behind a unified API functionLioncash
Rather than let the service call itself work out which function is the proper one to call, we can make that a behavior of the arbiter itself, so we don't need to directly expose those implementation details.
2019-03-07Merge pull request #2195 from lioncash/shared-globalbunnei
kernel/shared_memory: Get rid of the use of global accessor functions within Create()
2019-03-07Merge pull request #2202 from lioncash/port-privbunnei
kernel/client_session, kernel/server_session: Make data members private
2019-03-07Merge pull request #2206 from lioncash/audio-stopbunnei
service/audio/audout_u: Only actually stop the audio stream in StopAudioOut if the stream is playing
2019-03-07Merge pull request #2055 from bunnei/gpu-threadbunnei
Asynchronous GPU command processing
2019-03-07service/audio/hwopus: Move decoder state to its own classLioncash
Moves the non-multistream specific state to its own class. This will be necessary to support the multistream variants of opus decoding.
2019-03-07service/audio/hwopus: Provide a name for the second word of OpusPacketHeaderLioncash
This indicates the entropy coder's final range.
2019-03-07service/audio/hwopus: Move Opus packet header out of the ↵Lioncash
IHardwareOpusDecoderManager This will be utilized by more than just that class in the future. This also renames it from OpusHeader to OpusPacketHeader to be more specific about what kind of header it is.
2019-03-07service/audio/hwopus: Enclose internals in an anonymous namespaceLioncash
Makes it impossible to violate the ODR, as well as providing a place for future changes.
2019-03-07service/audio/audout_u: Only actually stop the audio stream in StopAudioOut ↵Lioncash
if the stream is playing The service itself only does further actions if the stream is playing. If the stream is already stopped, then it just exits successfully.
2019-03-06Merge pull request #2197 from lioncash/includebunnei
core/hle/ipc: Remove unnecessary includes
2019-03-06gpu: Refactor a/synchronous implementations into their own classes.bunnei
2019-03-06gpu: Move command processing to another thread.bunnei
2019-03-06Merge pull request #2190 from lioncash/ogl-globalbunnei
core: Remove the global telemetry accessor function
2019-03-06gpu: Refactor command and swap buffers interface for asynch.bunnei
2019-03-06gpu: Refactor to take RendererBase instead of RasterizerInterface.bunnei
2019-03-06settings: Add new graphics setting for use_asynchronous_gpu_emulation.bunnei
2019-03-06core: Set is_powered_on before GPU is initialized.bunnei
2019-03-06Merge pull request #2199 from lioncash/arbiterbunnei
kernel/address_arbiter: Convert the address arbiter into a class
2019-03-06hle/service/audio/audout_u: Correct lack of return in failure case of ↵Lioncash
AppendAudioOutBufferImpl() Previously we were overwriting the error case with a success code further down (which is definitely not what we should be doing here).
2019-03-06Merge pull request #2194 from lioncash/membunnei
svc: Move memory range checking functions to the VMManager class
2019-03-06Merge pull request #2200 from lioncash/audiobunnei
hle/service/audio: Extract audio error codes to a header
2019-03-05kernel/server_session: Make data members privateLioncash
Makes it much nicer to locally reason about server session behavior, as part of its functionality isn't placed around other classes.
2019-03-05kernel/client_session: Make data members privateLioncash
These can be made private, as they aren't accessed in contexts that require them to be public.
2019-03-05hle/service/audio: Extract audio error codes to a headerLioncash
Places all error codes in an easily includable header. This also corrects the unsupported error code (I accidentally used the hex value when I meant to use the decimal one).
2019-03-05kernel/address_arbiter: Pass in system instance to constructorLioncash
Allows getting rid of reliance on the global accessor functions and instead operating on the provided system instance.
2019-03-05kernel/address_arbiter: Minor tidying upLioncash
- Invert conditions into guard clases where applicable. - Mark std::vector parameter of WakeThreads as const
2019-03-05kernel/address_arbiter: Convert the address arbiter into a classLioncash
Places all of the functions for address arbiter operation into a class. This will be necessary for future deglobalizing efforts related to both the memory and system itself.
2019-03-05vm_manager: Remove cheat-specific ranges from VMManagerZach Hilman
2019-03-05kernel/thread: Remove obsolete TODO in Create()Lioncash
This is a TODO carried over from Citra that doesn't apply here.
2019-03-05core/hle/ipc: Remove unnecessary includesLioncash
Removes a few inclusion dependencies from the headers or replaces existing ones with ones that don't indirectly include the required headers. This allows removing an inclusion of core/memory.h, meaning that if the memory header is ever changed in the future, it won't result in rebuilding the entirety of the HLE services (as the IPC headers are used quite ubiquitously throughout the HLE service implementations).
2019-03-04core: Add support for registering and controlling ownership of CheatEngineZach Hilman
2019-03-04cheat_engine: Add parser and interpreter for game cheatsZach Hilman
2019-03-04loader/nso: Set main code region in VMManagerZach Hilman
For rom directories (and by extension, XCI/NSP/NAX/NCA) this is for the NSO with name 'main', for regular NSOs, this is the NSO.
2019-03-04vm_manager: Add support for storing and getting main code regionZach Hilman
Used as root for one region of cheats, set by loader
2019-03-04patch_manager: Display cheats in game list add-onsZach Hilman
2019-03-04patch_manager: Add support for loading cheats listsZach Hilman
Uses load/<title_id>/<mod_name>/cheats as root dir, file name is all upper or lower hex first 8 bytes build ID.
2019-03-04controllers/npad: Add accessor for current press stateZach Hilman
Allows frontend/features to access pressed buttons conveniently as possible
2019-03-04vm_manager: Use range helpers in HeapAlloc() and HeapFree()Lioncash
Significantly tidies up two guard conditionals.