Lioncash
fc7bc644cc
core/hle/result: Relocate IPC error code to ipc_helpers
...
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-10 18:23:42 -04:00
Lioncash
322d4f1a1c
service/service: Remove unncessary calls to c_str()
...
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-10 18:00:57 -04:00
bunnei
cc357510d7
Merge pull request #2207 from lioncash/hwopus
...
service/audio/hwopus: Move decoder state to its own class
2019-03-10 17:32:39 -04:00
bunnei
0b4cf1ba01
Merge pull request #2193 from lioncash/global
...
kernel/scheduler: Pass in system instance in constructor
2019-03-10 17:29:01 -04:00
Zach Hilman
d9ef55ed76
set_sys: Implement GetFirmwareVersion(2) for libnx hosversion
...
Uses the synthesized system archive 9 (SystemVersion) and reports v5.1.0-0.0
2019-03-10 16:51:42 -04:00
Hexagon12
033cda6e5e
clang fix
2019-03-09 16:42:56 +02:00
Hexagon12
49ecd006da
Log 2 new setting values
2019-03-09 14:58:15 +02:00
bunnei
60e4af8ebb
Merge pull request #2210 from lioncash/optional
...
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
2019-03-08 16:35:57 -05:00
Lioncash
922f4d460e
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
...
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-07 23:34:37 -05:00
Lioncash
1f5cd8cac7
kernel: Make the address arbiter instance per-process
...
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-07 23:27:51 -05:00
Lioncash
0321c000ee
kernel/svc: Move address arbiter signaling behind a unified API function
...
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-07 23:27:47 -05:00
Lioncash
7a518ea8fd
kernel/svc: Move address arbiter waiting behind a unified API function
...
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-07 23:27:20 -05:00
bunnei
cb3f4449a9
Merge pull request #2195 from lioncash/shared-global
...
kernel/shared_memory: Get rid of the use of global accessor functions within Create()
2019-03-07 17:26:11 -05:00
bunnei
3846cfa7ba
Merge pull request #2202 from lioncash/port-priv
...
kernel/client_session, kernel/server_session: Make data members private
2019-03-07 15:31:26 -05:00
bunnei
af2c9aae55
Merge pull request #2206 from lioncash/audio-stop
...
service/audio/audout_u: Only actually stop the audio stream in StopAudioOut if the stream is playing
2019-03-07 10:47:59 -05:00
bunnei
757fd21d98
Merge pull request #2055 from bunnei/gpu-thread
...
Asynchronous GPU command processing
2019-03-07 10:41:53 -05:00
Lioncash
a98f0b7e93
service/audio/hwopus: Move decoder state to its own class
...
Moves the non-multistream specific state to its own class. This will be
necessary to support the multistream variants of opus decoding.
2019-03-07 07:47:09 -05:00
Lioncash
133da63a0f
service/audio/hwopus: Provide a name for the second word of OpusPacketHeader
...
This indicates the entropy coder's final range.
2019-03-07 05:48:35 -05:00
Lioncash
e842b63161
service/audio/hwopus: Move Opus packet header out of the 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-07 05:37:08 -05:00
Lioncash
a92d39462b
service/audio/hwopus: Enclose internals in an anonymous namespace
...
Makes it impossible to violate the ODR, as well as providing a place for
future changes.
2019-03-07 05:32:42 -05:00
Lioncash
e7e5002e64
service/audio/audout_u: Only actually stop the audio stream in StopAudioOut 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-07 03:39:01 -05:00
bunnei
b67cb6208f
Merge pull request #2197 from lioncash/include
...
core/hle/ipc: Remove unnecessary includes
2019-03-06 21:55:16 -05:00
bunnei
83079031b3
gpu: Refactor a/synchronous implementations into their own classes.
2019-03-06 21:48:57 -05:00
bunnei
9d1ee628b2
gpu: Move command processing to another thread.
2019-03-06 21:48:57 -05:00
bunnei
d6be1f1a53
Merge pull request #2190 from lioncash/ogl-global
...
core: Remove the global telemetry accessor function
2019-03-06 21:41:53 -05:00
bunnei
edf09ff450
gpu: Refactor command and swap buffers interface for asynch.
2019-03-06 21:09:09 -05:00
bunnei
1e27162275
gpu: Refactor to take RendererBase instead of RasterizerInterface.
2019-03-06 21:09:09 -05:00
bunnei
300139799f
settings: Add new graphics setting for use_asynchronous_gpu_emulation.
2019-03-06 21:09:09 -05:00
bunnei
fca1122cef
core: Set is_powered_on before GPU is initialized.
2019-03-06 21:07:33 -05:00
bunnei
a9e4bbc70f
Merge pull request #2199 from lioncash/arbiter
...
kernel/address_arbiter: Convert the address arbiter into a class
2019-03-06 15:55:56 -05:00
Lioncash
237796b9db
hle/service/audio/audout_u: Correct lack of return in failure case of 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-06 11:44:32 -05:00
bunnei
4ca177d536
Merge pull request #2194 from lioncash/mem
...
svc: Move memory range checking functions to the VMManager class
2019-03-06 11:43:07 -05:00
bunnei
7e0d80520e
Merge pull request #2200 from lioncash/audio
...
hle/service/audio: Extract audio error codes to a header
2019-03-06 10:52:45 -05:00
Lioncash
4306a41b5f
kernel/server_session: Make data members private
...
Makes it much nicer to locally reason about server session behavior, as
part of its functionality isn't placed around other classes.
2019-03-05 20:10:07 -05:00
Lioncash
802d919443
kernel/client_session: Make data members private
...
These can be made private, as they aren't accessed in contexts that
require them to be public.
2019-03-05 20:10:03 -05:00
Lioncash
07f82f5a0d
hle/service/audio: Extract audio error codes to a header
...
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-05 16:51:37 -05:00
Lioncash
b46942d789
kernel/address_arbiter: Pass in system instance to constructor
...
Allows getting rid of reliance on the global accessor functions and
instead operating on the provided system instance.
2019-03-05 15:47:03 -05:00
Lioncash
b9a3259cab
kernel/address_arbiter: Minor tidying up
...
- Invert conditions into guard clases where applicable.
- Mark std::vector parameter of WakeThreads as const
2019-03-05 12:58:31 -05:00
Lioncash
bfe7112496
kernel/address_arbiter: Convert the address arbiter into a class
...
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-05 12:58:26 -05:00
Zach Hilman
20c46b9242
vm_manager: Remove cheat-specific ranges from VMManager
2019-03-05 10:09:36 -05:00
Lioncash
1adc7f4439
kernel/thread: Remove obsolete TODO in Create()
...
This is a TODO carried over from Citra that doesn't apply here.
2019-03-05 10:05:49 -05:00
Lioncash
7d25f9a4a2
core/hle/ipc: Remove unnecessary includes
...
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-05 09:53:38 -05:00
Zach Hilman
9ac4e6a249
core: Add support for registering and controlling ownership of CheatEngine
2019-03-04 18:41:29 -05:00
Zach Hilman
b6ac32dc35
cheat_engine: Add parser and interpreter for game cheats
2019-03-04 18:39:58 -05:00
Zach Hilman
81f85bc280
loader/nso: Set main code region in VMManager
...
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-04 18:39:58 -05:00
Zach Hilman
df783dac1f
vm_manager: Add support for storing and getting main code region
...
Used as root for one region of cheats, set by loader
2019-03-04 18:39:58 -05:00
Zach Hilman
81302571bf
patch_manager: Display cheats in game list add-ons
2019-03-04 18:39:57 -05:00
Zach Hilman
57c6d77be0
patch_manager: Add support for loading cheats lists
...
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-04 18:39:57 -05:00
Zach Hilman
b1fbf45e5e
controllers/npad: Add accessor for current press state
...
Allows frontend/features to access pressed buttons conveniently as possible
2019-03-04 18:39:57 -05:00
Lioncash
dc51694993
vm_manager: Use range helpers in HeapAlloc() and HeapFree()
...
Significantly tidies up two guard conditionals.
2019-03-04 17:16:52 -05:00