Lioncash
b05bfc6036
core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory class
...
With all of the trivial parts of the memory interface moved over, we can
get right into moving over the bits that are used.
Note that this does require the use of GetInstance from the global
system instance to be used within hle_ipc.cpp and the gdbstub. This is
fine for the time being, as they both already rely on the global system
instance in other functions. These will be removed in a change directed
at both of these respectively.
For now, it's sufficient, as it still accomplishes the goal of
de-globalizing the memory code.
2019-11-26 21:55:39 -05:00
Lioncash
89ef3ef575
core/memory: Migrate over ZeroBlock() and CopyBlock() to the Memory class
...
These currently aren't used anywhere in the codebase, so these are very
trivial to move over to the Memory class.
2019-11-26 21:55:38 -05:00
Lioncash
849581075a
core/memory: Migrate over RasterizerMarkRegionCached() to the Memory class
...
This is only used within the accelerated rasterizer in two places, so
this is also a very trivial migration.
2019-11-26 21:55:38 -05:00
Lioncash
b2165c6b35
core/memory: Migrate over ReadCString() to the Memory class
...
This only had one usage spot, so this is fairly straightforward to
convert over.
2019-11-26 21:55:38 -05:00
Lioncash
3f08e8d8d4
core/memory: Migrate over GetPointer()
...
With all of the interfaces ready for migration, it's trivial to migrate
over GetPointer().
2019-11-26 21:55:38 -05:00
Lioncash
536fc7f0ea
core: Prepare various classes for memory read/write migration
...
Amends a few interfaces to be able to handle the migration over to the
new Memory class by passing the class by reference as a function
parameter where necessary.
Notably, within the filesystem services, this eliminates two ReadBlock()
calls by using the helper functions of HLERequestContext to do that for
us.
2019-11-26 21:55:37 -05:00
Lioncash
fc7d0a17b6
core/memory: Move memory read/write implementation functions into an anonymous namespace
...
These will eventually be migrated into the main Memory class, but for
now, we put them in an anonymous namespace, so that the other functions
that use them, can be migrated over separately.
2019-11-26 21:53:35 -05:00
Lioncash
e58748fd80
core/memory: Migrate over address checking functions to the new Memory class
...
A fairly straightforward migration. These member functions can just be
mostly moved verbatim with minor changes. We already have the necessary
plumbing in places that they're used.
IsKernelVirtualAddress() can remain a non-member function, since it
doesn't rely on class state in any form.
2019-11-26 21:53:34 -05:00
Lioncash
323680e5ad
core/memory: Migrate over memory mapping functions to the new Memory class
...
Migrates all of the direct mapping facilities over to the new memory
class. In the process, this also obsoletes the need for memory_setup.h,
so we can remove it entirely from the project.
2019-11-26 21:53:34 -05:00
Lioncash
4c2ed2706e
core/memory: Introduce skeleton of Memory class
...
Currently, the main memory management code is one of the remaining
places where we have global state. The next series of changes will aim
to rectify this.
This change simply introduces the main skeleton of the class that will
contain all the necessary state.
2019-11-26 21:53:34 -05:00
bunnei
ec0ce96c56
core_timing: Use better reference tracking for EventType. ( #3159 )
...
* core_timing: Use better reference tracking for EventType.
- Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects.
- Removes need for unique names - we won't be using this for save states anyways.
2019-11-26 21:48:56 -05:00
bunnei
f6b9b7910e
kernel: Fix reference management for client/server session.
...
- Fixes shutdown crash and crash in Pokemon SwSh.
2019-11-25 18:17:49 -05:00
bunnei
50c7539108
Merge pull request #3094 from lioncash/tables
...
service: Update function tables
2019-11-24 20:30:58 -05:00
bunnei
9046d4a548
kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects. ( #3154 )
...
* kernel: Replace usage of boost::intrusive_ptr with std::shared_ptr for kernel objects.
- See https://github.com/citra-emu/citra/pull/4710 for details.
2019-11-24 20:15:51 -05:00
bunnei
63248f4edd
Update svc.cpp
2019-11-23 16:01:06 -05:00
bunnei
6eaf7ab55f
svc: GetSystemTick should return cntpct_el0, not core ticks.
2019-11-23 15:29:15 -05:00
bunnei
6a3fc5d2ff
Merge pull request #3114 from FernandoS27/cond-var
...
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
2019-11-23 13:24:39 -05:00
bunnei
6e4d46908a
Merge pull request #3130 from FernandoS27/cancel-sync
...
Kernel: Correct Cancel Synchronization.
2019-11-23 13:23:23 -05:00
bunnei
eedb048585
Merge pull request #3112 from lioncash/skip
...
service/am: Remove unnecessary Skip calls
2019-11-21 15:30:01 -05:00
bunnei
d7953b8ee5
Merge pull request #3111 from lioncash/query
...
am: Stub QueryApplicationPlayStatistics
2019-11-21 15:29:34 -05:00
Fernando Sahmkow
46bb609981
Kernel: Optimize condition variable threads management.
2019-11-21 11:13:29 -04:00
Fernando Sahmkow
2ab41ceff4
Kernel: Correct SignalProcessWideKey
...
When the target is 0, all threads must be processed.
2019-11-21 10:46:55 -04:00
Fernando Sahmkow
2d16507f9f
Kernel: Correct behavior of Condition Variables to be more similar to real hardware.
...
This commit ensures cond var threads act exactly as they do in the real
console. The original implementation uses an RBTree and the behavior of
cond var threads is that at the same priority level they act like a
FIFO.
2019-11-21 10:46:55 -04:00
Fernando Sahmkow
7d16b2d2dd
Kernel: Correct Cancel Synchronization.
...
This commit corrects the behavior of cancel synchronization when the
thread is running/ready and ensures the next wait is cancelled as it's
suppose to.
2019-11-16 12:41:51 -04:00
bunnei
3e0e4f146b
Merge pull request #3091 from lioncash/core-conversion
...
core: Make most implicit type conversion warnings errors on MSVC
2019-11-15 12:08:50 -05:00
Lioncash
2c4c2b5eee
service/am: Remove unnecessary Skip calls
...
We can simplify these by wrapping the necessary members in structs and
then simply reading out the whole struct.
2019-11-14 16:31:52 -05:00
Lioncash
1cd8637bf0
am: Stub QueryApplicationPlayStatistics
...
Maintains implementation parity between QueryApplicationPlayStatistics
and QueryApplicationPlayStatisticsByUid.
These function the same behaviorally underneath the hood, with the only
difference being that one allows specifying a UID.
2019-11-14 16:02:39 -05:00
bunnei
885d88825e
Merge pull request #3089 from SciresM/play_statistics
...
Implement stub for IApplicationFunctions::QueryApplicationPlayStatisticsByUid
2019-11-14 13:54:29 -05:00
bunnei
360b0d1b30
Merge pull request #3093 from lioncash/mbedtls
...
core: Migrate off deprecated mbedtls functions
2019-11-14 13:47:23 -05:00
bunnei
02880a8195
Merge pull request #3092 from lioncash/util
...
key_manager: Make use of IOFile in WriteKeyToFile()
2019-11-14 13:46:55 -05:00
Lioncash
03b73aa575
xts_archive: Remove redundant std::string constructor
...
We can just call the .data() member of path instead of constructing a
completely new string.
2019-11-13 10:02:10 -05:00
Lioncash
e21b6ff79d
service: Update function tables
...
Keeps the function tables up to date.
Updated based off information from Switchbrew.
2019-11-12 10:32:56 -05:00
Lioncash
64cbebc58f
key_manager: Make use of IOFile in WriteKeyToFile()
...
This properly handles unicode-based paths on Windows, while opening a
raw stream doesn't out-of-the-box.
Prevents file creation from potentially failing on Windows PCs that make
use of unicode characters in their save paths (e.g. writing to a user's
AppData folder, where the user has a name with non-ASCII characters).
2019-11-12 08:52:18 -05:00
Lioncash
e0c46e6879
core: Migrate off deprecated mbedtls functions
...
These functions are marked for deprecation and it's recommended that the
*_ret variants be used instead.
2019-11-12 08:45:56 -05:00
Lioncash
47a6bb2d5b
externals: Update httplib
...
Since the introduction of this library, numerous improvements have been
made. Notably, many of the warnings we would get by simply including the
library header have now been fixed. This makes it much easier to make
conversion warning an error.
2019-11-12 08:31:27 -05:00
Lioncash
f11b87ebf1
service: Resolve sign conversion errors
...
These are fairly trivial to resolve and most of the changes entail
using RESULT_UNKNOWN over ResultCode(-1).
2019-11-12 07:55:39 -05:00
Lioncash
75dec14f21
perf_stats: Resolve implicit int to double conversion error
...
We simply need to turn the literal argument to std::accumulate into a
double, rather than an int.
2019-11-12 07:55:39 -05:00
Lioncash
23878bf360
loader; Resolve sign conversion/truncation errors
2019-11-12 07:55:39 -05:00
Lioncash
86a1eb7789
gdbstub: Resolve sign conversion errors
2019-11-12 07:55:39 -05:00
Lioncash
12dc918937
kernel: Resolve sign conversion warnings
...
Uncovered a bug within Thread's SetCoreAndAffinityMask() where an
unsigned variable (ideal_core) was being compared against "< 0", which
would always be a false condition.
We can also get rid of an unused function (GetNextProcessorId) which contained a sign
mismatch warning.
2019-11-12 07:55:39 -05:00
Lioncash
86c397dd6e
file_sys: Resolve sign conversion warnings
...
Resolves a few trivial sign conversion/mismatch errors.
2019-11-12 07:55:39 -05:00
Lioncash
ef060ed40c
result: Add default error code for the ResultCode(-1) case
...
Will be used to reduce the overall duplication of the same magic value
all over the codebase in following changes.
2019-11-12 07:55:38 -05:00
Lioncash
581d2e36e5
crypto: Resolve sign-conversion warnings
2019-11-12 07:55:22 -05:00
Lioncash
27ab99490e
result: Resolve sign-coversion warnings
...
The constructor was implicitly using signed->unsigned conversions to
produce 0xFFFFFFFF. We can just specify this explicitly with UINT32_MAX.
2019-11-12 07:06:48 -05:00
Lioncash
19a0abc19b
arm_unicorn: Resolve sign conversion warnings
...
While we're at it, this also resolves a type truncation warning as well,
given the code was truncating from a 64-bit value to a 32-bit one.
2019-11-12 07:06:48 -05:00
Lioncash
96d677bef0
CMakeLists: Make most implicit type conversion warnings errors on MSVC
...
Quite frequently there have been cases where code has been merged into
the core that produces warning. In order to prevent this from occurring,
we can make the compiler flag these cases and allow our CI to flag down
any code that would generate these warnings.
This is beneficial given silent conversions from signed/unsigned can
result in logic bugs. This forces one writing changes to be explicit
about when signedness conversions are desirable, rather than leaving it
up to readers' interpretation.
Currently the codebase isn't in a state where it will build successfully
with this change applied, but this will be addressed in subsequent
follow-up changes. This set of changes will focus on making it build
properly with these changes for MSVC as a starting point for basic
coverage.
2019-11-12 07:06:25 -05:00
Michael Scire
b0b0786493
Implement stub for QueryApplicationPlayStatisticsByUid
2019-11-11 07:32:47 -08:00
Fernando Sahmkow
3c95e49c42
nifm: Only return that there's an internet connection when there's a BCATServer
...
This helps games that need internet for other purposes boot as the rest
of our internet infrastructure is incomplete.
2019-11-06 23:10:32 -05:00
bunnei
c1a3d19897
Merge pull request #3062 from bunnei/event-improve
...
kernel: Improve events
2019-11-06 10:05:50 -05:00
David
0e34f648f4
Merge pull request #2859 from Morph1984/hid
...
hid: Stub SetNpadJoyAssignmentModeSingle and GetNpadHandheldActivationMode
2019-11-06 12:48:07 +11:00
bunnei
1bdae0fe29
common_func: Use std::array for INSERT_PADDING_* macros.
...
- Zero initialization here is useful for determinism.
2019-11-03 22:22:41 -05:00
bunnei
ece5287843
kernel: readable_event: Signal only once.
2019-11-03 04:25:41 -05:00
bunnei
b0ab803ce8
kernel: events: Remove ResetType::Automatic.
...
- This does not actually seem to exist in the real kernel - games reset these automatically.
# Conflicts:
# src/core/hle/service/am/applets/applets.cpp
# src/core/hle/service/filesystem/fsp_srv.cpp
2019-11-03 04:22:45 -05:00
bunnei
28bb248db6
kernel: readable_event: Initialize members.
2019-11-03 04:18:39 -05:00
FearlessTobi
832c138eff
core/am: Stub InitializeApplicationCopyrightFrameBuffer, SetApplicationCopyrightImage and SetApplicationCopyrightVisibility
...
These commands require Screenshots to be implemented anyway, so they are safe to stub for now.
2019-11-03 07:37:38 +01:00
Rodrigo Locatti
04b838c857
Merge pull request #3038 from lioncash/docs
...
kernel/scheduler: Minor changes
2019-10-30 03:47:28 +00:00
bunnei
a81bd962ab
Merge pull request #3007 from DarkLordZach/fsc-regress
...
savedata_factory: Automatically create certain savedata
2019-10-29 22:05:09 -04:00
Lioncash
6c8f28813c
scheduler: Mark parameter of AskForReselectionOrMarkRedundant() as const
...
This is only compared against, so it can be made const.
2019-10-27 23:35:50 -04:00
Lioncash
f19c1a7cda
scheduler: Silence sign conversion warnings
2019-10-27 22:44:52 -04:00
Lioncash
2fb0bbff29
scheduler: Initialize class members directly where applicable
...
Reduces the overall amount of code.
2019-10-27 22:13:55 -04:00
Lioncash
2dc469ceba
scheduler: Amend documentation comments
...
Adjusts the formatting of a few of the comments an ensures they get
recognized as proper Doxygen comments.
2019-10-27 22:12:32 -04:00
David
4c5731c34f
Merge pull request #2971 from FernandoS27/new-scheduler-v2
...
Kernel: Implement a New Thread Scheduler V2
2019-10-28 10:53:27 +11:00
bunnei
6fe89acf0d
Merge pull request #2991 from lioncash/npad
...
hid/npad: Minor cleanup
2019-10-22 19:51:24 -04:00
Zach Hilman
bb207fe27a
savedata_factory: Automatically create certain savedata
...
After further hardware investigation, it appears that some games, perhaps those more lazily coded, will not call EnsureSaveData, meaning that they expect the normal (current) save to be automatically made. Additionally, some games do not create a cache or temporary save before use.
In these 3 specific instances, the save is created automatically for the game if it doesn't exist.
2019-10-22 15:47:38 -04:00
bunnei
a86a88109a
core: Fix clang-format errors.
2019-10-19 14:47:18 -04:00
Nicolae-Andrei Cociorba
20521da259
Fix null pointer deref.
2019-10-18 14:12:12 +00:00
bunnei
d1713ad451
Merge pull request #2992 from lioncash/dmnt
...
dmnt_cheat_vm: Correct register Restore and ClearRegs behavior
2019-10-17 19:52:24 -04:00
Lioncash
2c34d8aabb
dmnt_cheat_vm: Correct register Restore and ClearRegs behavior
...
Previously these were performing the same behavior as the Save and
ClearSaved opcode types.
2019-10-17 18:49:39 -04:00
Rodrigo Locatti
7cf091bb20
Merge pull request #2989 from lioncash/apm
...
service/apm/controller: Minor interface changes
2019-10-17 19:20:14 -03:00
Lioncash
8d8e495248
hid/npad: Fix incorrect connection boolean value in ConnectAllDisconnectedControllers()
...
We should be setting the connection state to true, otherwise we aren't
actually making the controllers connected like the function name
indicates.
2019-10-17 18:19:47 -04:00
Lioncash
d076466f26
hid/npad: Add missing break in default case
...
While not an issue, it does prevent fallthrough from occurring if
anything is ever added after this case (unlikely to occur, but this
turns a trivial "should not cause issues" into a definite "won't cause
issues).
2019-10-17 18:17:42 -04:00
Lioncash
26c84718c8
hid/npad: Replace std::for_each with ranged for loops
...
Performs the same behavior, but is built into the core language itself.
No functional change.
2019-10-17 18:16:36 -04:00
Lioncash
e433e99191
hid/npad: Remove redundant non-const variant of IsControllerSupported()
...
The const qualified variant can also be called in non-const contexts, so
we can remove the non-const variant to eliminate a bit of code
duplication.
2019-10-17 18:11:41 -04:00
Lioncash
a71e8066a1
hid/npad: Move function declarations
...
Clearly separate these from the variable declarations to make them more
visible.
2019-10-17 18:09:08 -04:00
Lioncash
98c6a95079
core/core: Resolve -Wreorder warnings
...
Amends the initializer lists to be ordered in the same manner that
they're declared within the class.
2019-10-17 17:51:06 -04:00
Lioncash
6414d9e2e5
core/memory/cheat_engine: Resolve -Wreorder warnings
...
Amends the initializer lists to be ordered in the same manner that
they're declared within the class.
2019-10-17 16:21:47 -04:00
Lioncash
b77430df70
apm/controller: Make SetPerformanceConfiguration() use an array of pairs over a map
...
While a map is an OK way to do lookups (and usually recommended in most
cases), this is a map that lives for the entire duration of the program
and only deallocates its contents when the program terminates.
Given the total size of the map is quite small, we can simply use a
std::array of pairs and utilize std::find_if to perform the same
behavior without loss of performance.
This eliminates a static constructor and places the data into the
read-only segment.
While we're at it, we can also handle malformed inputs instead of
directly dereferencing the resulting iterator.
2019-10-17 16:13:14 -04:00
Lioncash
141d929929
apm/controller: Make GetCurrentPerformanceMode() a const member function
...
This doesn't modify instance state, so it can be made const qualified.
2019-10-17 15:58:25 -04:00
bunnei
ef9b31783d
Merge pull request #2912 from FernandoS27/async-fixes
...
General fixes to Async GPU
2019-10-16 10:34:48 -04:00
bunnei
2299950de1
Merge pull request #2972 from lioncash/system
...
{bcat, gpu, nvflinger}: Remove trivial usages of the global system accessor
2019-10-15 17:49:12 -04:00
Lioncash
cc1d7048b5
bcat: Remove use of global system accessors
...
Removes all uses of the global system accessor within the BCAT
interface.
2019-10-15 16:39:27 -04:00
Fernando Sahmkow
64e652d8cb
Kernel Thread: Cleanup THREADPROCESSORID_DONT_UPDATE.
2019-10-15 11:55:30 -04:00
Fernando Sahmkow
e28c7f5217
Kernel: Address Feedback 2
2019-10-15 11:55:28 -04:00
Fernando Sahmkow
a3524879be
Kernel: Clang Format
2019-10-15 11:55:27 -04:00
Fernando Sahmkow
c32520ceb7
Kernel: Reverse global accessor removal.
2019-10-15 11:55:26 -04:00
Fernando Sahmkow
3073615dbc
Kernel: Address Feedback.
2019-10-15 11:55:25 -04:00
Fernando Sahmkow
25f8606a6d
Kernel Scheduler: Make sure the global scheduler shutdowns correctly.
2019-10-15 11:55:24 -04:00
Fernando Sahmkow
b3c1deba49
Kernel_Thread: Eliminate most global accessors.
2019-10-15 11:55:23 -04:00
Fernando Sahmkow
0b72b34d89
KernelSVC: Assert that condition variable address is aligned to 4 bytes.
2019-10-15 11:55:22 -04:00
Fernando Sahmkow
96b1b144af
Kernel: Correct Paused scheduling
2019-10-15 11:55:21 -04:00
Fernando Sahmkow
1c6a11ab14
Kernel: Corrections to Wait Objects clearing in which a thread could still be signalled after a timeout or a cancel.
2019-10-15 11:55:20 -04:00
Fernando Sahmkow
27d571c084
Kernel: Correct redundant yields to only advance time forward.
2019-10-15 11:55:20 -04:00
Fernando Sahmkow
7176857177
Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual
2019-10-15 11:55:19 -04:00
Fernando Sahmkow
44e09e5f21
Kernel: Correct Results in Condition Variables and Mutexes
2019-10-15 11:55:18 -04:00
Fernando Sahmkow
1ec1e81373
Kernel: Clang Format
2019-10-15 11:55:17 -04:00
Fernando Sahmkow
e05a8c2385
Kernel: Remove global system accessor from WaitObject
2019-10-15 11:55:16 -04:00
Fernando Sahmkow
0cf26cee59
Scheduler: Implement Yield Count and Core migration on Thread Preemption.
2019-10-15 11:55:16 -04:00
Fernando Sahmkow
2d382de6fa
Scheduler: Corrections to YieldAndBalanceLoad and Yield bombing protection.
2019-10-15 11:55:15 -04:00
Fernando Sahmkow
b49c0dab87
Kernel: Initial implementation of thread preemption.
2019-10-15 11:55:14 -04:00
Fernando Sahmkow
103f3a2fe5
Scheduler: Add protections for Yield bombing
...
In case of redundant yields, the scheduler will now idle the core for
it's timeslice, in order to avoid continuously yielding the same thing
over and over.
2019-10-15 11:55:13 -04:00
Fernando Sahmkow
82218c925a
Kernel: Style and Corrections
2019-10-15 11:55:12 -04:00
Fernando Sahmkow
fcc6b34fff
Correct PrepareReschedule
2019-10-15 11:55:12 -04:00
Fernando Sahmkow
3a94e7ea33
Comment and reorganize the scheduler
2019-10-15 11:55:11 -04:00
Fernando Sahmkow
b5d1e44782
Add PrepareReschedule where required.
2019-10-15 11:55:10 -04:00
Fernando Sahmkow
b8b7ebcece
Correct compiling errors and addapt to the new interface.
2019-10-15 11:55:09 -04:00
Fernando Sahmkow
9031502974
Correct Supervisor Calls to work with the new scheduler,
2019-10-15 11:55:08 -04:00
Fernando Sahmkow
47c6c78c03
Redesign CPU Cores to work with the new scheduler
2019-10-15 11:55:07 -04:00
Fernando Sahmkow
57a71f899a
Add interfacing to the Global Scheduler
2019-10-15 11:55:07 -04:00
Fernando Sahmkow
a1ac0c6cb4
Addapt thread class to the new Scheduler
2019-10-15 11:55:06 -04:00
Fernando Sahmkow
b164d8ee53
Implement a new Core Scheduler
2019-10-15 11:55:04 -04:00
bunnei
cab2619aeb
Merge pull request #2965 from FernandoS27/fair-core-timing
...
Core Timing: Rework Core Timing to run all cores evenly.
2019-10-15 11:48:30 -04:00
bunnei
0378babd15
Merge pull request #2897 from DarkLordZach/oss-ext-fonts-1
...
pl_u: Move open source font archives and fix NAND error
2019-10-14 15:13:41 -04:00
bunnei
cd2efed922
Merge pull request #2930 from DarkLordZach/gamecard-partitions
...
file_sys: Add code to access raw gamecard partitions and lazily load them
2019-10-14 10:29:10 -04:00
Zach Hilman
e0b9ee9b94
card_image: Implement system update commands in XCI
2019-10-13 14:18:45 -04:00
Zach Hilman
1911f85391
pl_u: Fix mismatched rebase size error in font encryption
2019-10-13 13:46:27 -04:00
Zach Hilman
36d829c27b
pl_u: Use kernel physical memory
2019-10-13 13:46:27 -04:00
Zach Hilman
b3a8a094a5
pl_u: Remove excess static qualifier
2019-10-13 13:46:27 -04:00
Zach Hilman
40284c6868
pl_u: Use OSS system archives if real archives don't exist
2019-10-13 13:46:27 -04:00
Zach Hilman
920742d418
system_archive: Synthesize shared fonts system archives
2019-10-13 13:46:10 -04:00
Zach Hilman
d6d6a87bde
externals: Move OSS font data to file_sys in core
2019-10-13 13:46:10 -04:00
Lioncash
574440d59f
nvflinger/buffer_queue: Remove use of a global system accessor
2019-10-12 09:17:56 -04:00
Fernando Sahmkow
a4ae11d63e
Core_Timing: Address Remaining feedback.
2019-10-12 07:26:38 -04:00
Fernando Sahmkow
e0650a2034
Core_Timing: Address Feedback and suppress warnings.
2019-10-11 14:44:14 -04:00
Fernando Sahmkow
96f2b16356
Core Timing: Correct Idle and remove lefting pragma
2019-10-09 12:30:33 -04:00
Fernando Sahmkow
65aff6930b
Core Timing: General corrections and added tests.
2019-10-09 12:30:33 -04:00
Fernando Sahmkow
555866f8dc
Core Timing: Rework Core Timing to run all cores evenly.
2019-10-09 12:30:31 -04:00
bunnei
e664c24355
Merge pull request #2921 from FreddyFunk/compiler-warnings-core
...
Services::ES fix casting warnings
2019-10-09 10:34:48 -04:00
bunnei
b9c831de62
Merge pull request #2654 from DarkLordZach/lm-log-rewrite
...
lm: Rewrite logger to use core reporting services
2019-10-08 20:23:13 -04:00
Morph
29e15601f3
hid: Implement DeactivateNpad
...
Makes use of the already existing DeactivateController function.
2019-10-07 04:44:09 -07:00
Morph
c1e9ca4c08
hid: Stub SetNpadJoyAssignmentModeSingle and reorganize service commands
2019-10-07 04:43:34 -07:00
Zach Hilman
5326d3cb3a
Merge pull request #2951 from lioncash/global
...
core: Remove Core::CurrentProcess()
2019-10-06 20:47:48 -04:00
Lioncash
0705ce0ed1
bcat/module: Silence truncation warnings
...
We need to perform explicit casts here, otherwise we're implicitly
truncating a 64-bit type to a 32-bit one.
2019-10-06 15:38:12 -04:00
Lioncash
7e77d1593f
bcat: Take std::function instance by value in NullBackend's constructor
...
Without this, the std::move within the constructor initializer list
won't be able to actually perform a move.
2019-10-06 15:38:12 -04:00
Lioncash
81adf46d1d
bcat: In-class initialize ProgressServiceBackend's impl member
...
Allows us to remove a constructor initializer list.
2019-10-06 15:38:12 -04:00
Lioncash
3fcd2180e4
bcat: Make ProgressServiceBackend's constructor take a std::string_view
...
Given the string is appended to another, we can make it a view so a
redundant full copy of the string isn't made.
2019-10-06 15:38:09 -04:00
Lioncash
f2fa16b609
bcat: Make ProgressServiceBackend's GetEvent() const
...
This member function doesn't modify internal member state, so it can be
marked const.
2019-10-06 14:03:18 -04:00
Lioncash
329081fcb7
boxcat: Silence an unused variable warning
...
On parse errors, we can log out the explanatory string indicating what
the parsing error was, rather than just ignoring the variable and
returning an overly broad error code.
2019-10-06 14:00:32 -04:00
Lioncash
839b38c404
core/core: Remove unused header
...
This isn't used anywhere in either the cpp or header file.
2019-10-06 13:54:27 -04:00
Lioncash
f1382cf0e7
core: Remove Core::CurrentProcess()
...
This only encourages the use of the global system instance (which will
be phased out long-term). Instead, we use the direct system function
call directly to remove the appealing but discouraged short-hand.
2019-10-06 13:53:12 -04:00
Lioncash
69f16ba50e
hle/service: Replace global system instance calls with instance-based ones
...
Migrates the HLE service code off the use of directly accessing the
global system instance where trivially able to do so.
This removes all usages of Core::CurrentProcess from the service code,
only 8 occurrences of this function exist elsewhere. There's still quite
a bit of "System::GetInstance()" being used, however this was able to
replace a few instances.
2019-10-06 13:42:23 -04:00
Fernando Sahmkow
75395605d6
NvFlinger: Remove leftover from corrections and clang format.
2019-10-04 19:59:54 -04:00
Fernando Sahmkow
3f104464de
Core: Wait for GPU to be idle before shutting down.
2019-10-04 19:59:53 -04:00
Fernando Sahmkow
69fa2e6525
Nvdrv: Correct Event setup in Nvdrv
...
Events are supposed to be cleared on quering. This fixes that issue.
2019-10-04 19:59:52 -04:00
Fernando Sahmkow
782b7a0ca4
NVFlinger: Reverse the change that only signaled events on buffer acquire.
...
This has been hardware tested and it seems that NVFlinger will still
signal even if there are no buffers to present.
2019-10-04 19:59:51 -04:00
Fernando Sahmkow
ffc2ce89a0
Nvdrv: Do framelimiting only in the CPU Thread
2019-10-04 19:59:50 -04:00
Fernando Sahmkow
976d9ef43c
NvFlinger: Don't swap buffers if a frame is missing and always trigger event in sync gpu.
2019-10-04 19:59:49 -04:00
Fernando Sahmkow
5b5e60ffec
GPU_Async: Correct fences, display events and more.
...
This commit uses guest fences on vSync event instead of an articial fake
fence we had.
It also corrects to keep signaling display events while loading the game
as the OS is suppose to send buffers to vSync during that time.
2019-10-04 19:59:48 -04:00
Fernando Sahmkow
4e9f975935
Nvdrv: Correct Async regression and avoid signaling empty buffer vsyncs
2019-10-04 19:59:47 -04:00
ReinUsesLisp
25ee892d5e
audio/audout_u: Change formatting for old clang-format versions
2019-10-04 23:51:56 +00:00
ReinUsesLisp
8d0b1a957e
service/nvdrv: Silence -Wswitch
2019-10-04 23:41:22 +00:00
ReinUsesLisp
5c907f85fc
service/nfp: Silence -Wunused and -Wswitch
2019-10-04 23:41:22 +00:00
ReinUsesLisp
0759df0aff
service/hid: Silence -Wunused and -Wswitch
2019-10-04 23:41:22 +00:00
ReinUsesLisp
ab6f8d8a1e
service/am: Silence -Wreorder
2019-10-04 23:41:21 +00:00
ReinUsesLisp
634c6e24b0
service/hid: Remove unused system reference
2019-10-04 23:41:21 +00:00
ReinUsesLisp
1dbd22e695
service/friend: Remove unused field
2019-10-04 23:41:21 +00:00
ReinUsesLisp
99db7d23dd
service/filesystem: Silence -Wunused-variable
2019-10-04 23:41:21 +00:00
ReinUsesLisp
8566096794
service/bcat: Silence -Wreorder and -Wunused
2019-10-04 23:41:21 +00:00
ReinUsesLisp
87e7cc2d5a
service/audio: Silence -Wunused
2019-10-04 23:28:34 +00:00
ReinUsesLisp
aacb473aa2
service/apm: Silence -Wunused and -Wreorder
2019-10-04 23:28:34 +00:00
bunnei
7fbaf62bac
Merge pull request #2936 from VPeruS/use-isallzeroarray
...
[crypto] Use IsAllZeroArray helper function
2019-10-04 15:44:35 -04:00
David
9aac7fbc22
Merge pull request #2539 from DarkLordZach/bcat
...
bcat: Implement BCAT service and connect to yuzu Boxcat server
2019-10-03 19:06:13 +10:00
vperus
29b1d0db0f
[crypto] Use IsAllZeroArray helper function
2019-10-02 19:20:45 +03:00
Zach Hilman
e55d086cc9
qt: Add service dialog
2019-10-02 08:35:43 -04:00
Zach Hilman
5d86c52a3a
boxcat: Use updated game-asset API URL and tags
2019-10-01 09:13:31 -04:00
Zach Hilman
19c466dfb1
bcat: Add FSC accessors for BCAT data
...
Ports BCAT to use FSC interface
2019-10-01 09:13:09 -04:00
Zach Hilman
bcf1eafb8b
boxcat: Implement events global field
2019-09-30 17:28:23 -04:00
Zach Hilman
2d410ddf4d
bcat: Implement DeliveryCacheProgressImpl structure
...
Huge thanks to lioncash for re-ing this for me.
2019-09-30 17:27:23 -04:00
Zach Hilman
92b70a3bf9
boxcat: Use Etag header names for file digest
2019-09-30 17:27:23 -04:00
Zach Hilman
e8183f9ef0
boxcat: Add downloading and client for launch parameter data
2019-09-30 17:27:23 -04:00
Zach Hilman
b8ce87103d
bcat: Add backend function for BCAT Indirect (launch parameter)
...
Returns the data that should be returned by PopLaunchParameter kind=ApplicationSpecific.
2019-09-30 17:27:23 -04:00
Zach Hilman
ea17b294ea
bcat: Expose CreateBackendFromSettings helper function
2019-09-30 17:27:23 -04:00
Zach Hilman
fe8c7e66e2
am: Unstub PopLaunchParameter and add bcat connection for app-specific data
...
Previously we were simply returning the account-preselect structure all times but if passed with a different mode the game expects application-specific data. This also adds a hook for BCAT into this allowing us to send the launch parameter through bcat,
2019-09-30 17:27:23 -04:00
Zach Hilman
102db206e0
bcat: Implement cmd 90201 ClearDeliveryCacheStorage
...
Takes a title ID and simply deletes all the data for that title ID's bcat. Invokes the respective backend command.
2019-09-30 17:23:26 -04:00
Zach Hilman
1bde5a3c6a
bcat: Implement cmd 30100 SetPassphrase
...
Takes a title ID and passphrase (0x40 byte string) and passes it to the backend.
2019-09-30 17:23:26 -04:00
Zach Hilman
86773a7f08
bcat: Implement cmd RequestSyncDeliveryCache and variant
...
Variant also supports only updating a single directory. These just both invoke backend commands.
2019-09-30 17:23:26 -04:00
Zach Hilman
cb7c96b96a
bcat: Implement IDeliveryCacheProgressService commands
...
Used to query completion status and events for the current delivery task.
2019-09-30 17:23:26 -04:00
Zach Hilman
f352ad5c93
bcat: Implement IDeliveryCacheFileService commands
...
Used to read the contents of files and access their metadata.
2019-09-30 17:23:26 -04:00
Zach Hilman
8812018c1d
bcat: Implement IDeliveryCacheDirectoryService commands
...
Used to list and get directories at the root level.
2019-09-30 17:23:26 -04:00
Zach Hilman
862131ead9
bcat: Implement IDeliveryCacheStorageService commands
...
Used to create subclasses to manage files and directories and to list directories.
2019-09-30 17:23:26 -04:00
Zach Hilman
78d146f907
bcat: Add commands to create IDeliveryCacheStorageService
...
Used to access contents of download.
2019-09-30 17:23:26 -04:00
Zach Hilman
68658a8385
module: Create BCAT backend based upon Settings value on construction
2019-09-30 17:23:26 -04:00
Zach Hilman
2903f3524e
bcat: Add BCAT backend for Boxcat service
...
Downloads content from yuzu servers and unpacks it into the temporary directory provided. Fully supports all Backend features except passphrase.
2019-09-30 17:21:53 -04:00
Zach Hilman
2c0b75a744
bcat: Add backend class to generify the functions of BCAT
...
Provides the most abstract simplified functions of BCAT as functions. Also includes a NullBackend class which is just a no-op.
2019-09-30 17:21:53 -04:00
Zach Hilman
647992e666
settings: Add option to set BCAT backend
2019-09-30 17:21:53 -04:00
Zach Hilman
532ec459b8
nifm: Signal to applications that internet access is available
2019-09-30 17:21:53 -04:00
Zach Hilman
f6c53526b3
core/loader: Track the NSO build ID of the current process
2019-09-30 17:21:53 -04:00
Zach Hilman
943662dc3c
applets: Add accessor for AppletFrontendSet
...
Allows other services to call applets without using LLE.
2019-09-30 17:20:49 -04:00
Zach Hilman
f2073217a4
filesystem: Add getter for BCAT temporary directory
2019-09-30 17:20:49 -04:00
Zach Hilman
c00ed8f4ff
vfs: Add function to extract ZIP file into virtual filesystem
2019-09-30 17:18:38 -04:00
bunnei
dc29919bbe
Revert "arm_dynarmic: Check if jit is nullptr when preparing reschedule"
2019-09-29 21:54:19 -04:00
bunnei
28538bba9c
Merge pull request #2574 from DarkLordZach/dynarmic-jit-nullptr
...
arm_dynarmic: Check if jit is nullptr when preparing reschedule
2019-09-29 21:44:10 -04:00
FreddyFunk
7b93c4646a
Services::ES fix casting warnings
2019-09-29 22:45:09 +02:00
David Marcec
77fbf29047
Signal styleset changes at a better time
...
We should signal when a net controller is added and our event should be manual, not automatic.
2019-09-24 17:24:37 +10:00
Zach Hilman
c4f3400bea
card_image: Add accessors for raw partitions in XCI
2019-09-22 21:51:46 -04:00
Zach Hilman
3952c73aee
card_image: Lazily load partitions in XCI
2019-09-22 21:50:29 -04:00
Zach Hilman
3895f7e456
pfs: Provide accessors for file sizes and offsets
2019-09-22 21:44:36 -04:00
Zach Hilman
6212df3beb
lm: Flush manager output on core shutdown
2019-09-22 12:34:55 -04:00
Zach Hilman
fa6531ab0f
lm: Rename Initialize to Log and implement with manager/reporter
...
Allows saving and clearer output of data.
2019-09-22 12:34:55 -04:00
Zach Hilman
ef9a7fa1f5
lm: Implement manager class to output to reporter
2019-09-22 12:34:55 -04:00
Zach Hilman
4153bd8d17
core: Add LM::Manager to system
...
Allows centralized control over logging mechanisms.
2019-09-22 12:34:55 -04:00
Zach Hilman
82bf055eca
reporter: Add log output for packaged lm log data
...
Takes the vector from head to tail of log data and saves it.
2019-09-22 12:34:33 -04:00
David
aaec1562f8
Merge pull request #2683 from DarkLordZach/lock-exit
...
am: Implement exit locking and self exit commands
2019-09-23 00:37:12 +10:00
Zach Hilman
b835d76311
Merge pull request #2876 from ogniK5377/AcquireNpadStyleSetUpdateEventHandle-fix
...
AcquireNpadStyleSetUpdateEventHandle should have a separate event for each controller type
2019-09-22 10:06:48 -04:00
David
e31c15606b
Merge pull request #2895 from FearlessTobi/debug-logs
...
service/acc: Lower log severity from INFO to DEBUG
2019-09-22 23:50:49 +10:00
Fernando Sahmkow
a755f24369
Merge pull request #2873 from ogniK5377/new-ioctls
...
Initial implementation of Ioctl2 & Ioctl3
2019-09-22 09:45:29 -04:00
David Marcec
59fd910355
removed comment
2019-09-22 23:42:52 +10:00
David Marcec
654427d4d0
Rebased
2019-09-22 23:42:41 +10:00
Fernando Sahmkow
4ace69de9c
Merge pull request #2884 from ogniK5377/deglobal-sys-services
...
Remove usage of System::CurrentInterface() from most services
2019-09-22 09:38:13 -04:00
FearlessTobi
82979296d2
service/acc: Lower log severity from INFO to DEBUG
...
According to ogniK, this should have always been Debug and not Info.
2019-09-22 15:15:07 +02:00
David Marcec
9513abbb0a
removed unneeded semicolon
2019-09-22 18:50:34 +10:00
David Marcec
d961d5479e
Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"
...
This reverts commit fa1c60c33e
, reversing
changes made to e34899067b
.
2019-09-22 17:47:25 +10:00
David Marcec
e73ac40eaa
Removed reference to core timing to nvflinger and used system instead
2019-09-22 16:55:15 +10:00
David Marcec
aed884d121
marked controller constructors as explicit
2019-09-22 16:41:38 +10:00
David Marcec
bd1c4ec9a0
Rebase
2019-09-22 16:41:34 +10:00
David Marcec
fcdbf0bc53
Rebase
2019-09-22 16:40:58 +10:00
David Marcec
4d220964df
Deglobalize System: Vi
2019-09-22 16:38:03 +10:00
David Marcec
2c6e4ce0ad
Deglobalize System: Time
2019-09-22 16:38:02 +10:00
David Marcec
36a97dd8a2
Rebase
2019-09-22 16:37:59 +10:00
David Marcec
d6e830d877
Deglobalize System: NvFlinger
2019-09-22 16:35:51 +10:00
David Marcec
f21ab654db
Rebase
2019-09-22 16:35:43 +10:00
David Marcec
8d3ff2b127
Deglobalize System: Nim
2019-09-22 16:30:34 +10:00
David Marcec
ad53dc0106
Deglobalize System: Nifm
2019-09-22 16:30:33 +10:00
David Marcec
8df2a98f75
Deglobalize System: NFP
2019-09-22 16:30:32 +10:00
David Marcec
482a03f8a5
Deglobalize System: LDR
2019-09-22 16:30:31 +10:00
David Marcec
07823b61a1
Deglobalize System: IRS
2019-09-22 16:30:30 +10:00
David Marcec
28181919a6
Deglobalize System: Hid
2019-09-22 16:30:29 +10:00
David Marcec
a9e9570d84
Deglobalize System: Friend
2019-09-22 16:30:27 +10:00
David Marcec
a40e5b2def
Deglobalize System: Fatal
2019-09-22 16:30:25 +10:00
David Marcec
c33faabb27
Deglobalize System: Btm
2019-09-22 16:30:24 +10:00
David Marcec
f2b61ff073
Deglobalize System: Btdrv
2019-09-22 16:30:20 +10:00
David Marcec
7da8e3f812
Deglobalize System: Aoc
2019-09-22 16:30:17 +10:00
David Marcec
2dbfac652e
Deglobalize System: Am
2019-09-22 16:30:14 +10:00
David
9187350b32
Merge pull request #2535 from DarkLordZach/cheat-v2
...
cheat_engine: Use Atmosphere's Cheat VM and fix cheat crash
2019-09-22 16:24:42 +10:00
David
fa1c60c33e
Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1
...
system_archive: Move shared font data to system_archive and fix extended font data
2019-09-22 16:09:22 +10:00
Zach Hilman
2a4730cbee
pl_u: Use kernel physical memory
2019-09-21 23:00:22 -04:00
Zach Hilman
60c2e9e675
qt: Prompt user for confirmation if exit lock is active
2019-09-21 22:46:57 -04:00
Zach Hilman
2bddc03468
dmnt_cheat_vm: Default initialize structure values
2019-09-21 22:43:49 -04:00
David Marcec
6325c3044c
server side clang format fix2
2019-09-22 12:26:03 +10:00
Zach Hilman
e58e3719d8
am: Implement ISelfController ExitLock commands
2019-09-21 22:25:18 -04:00
Zach Hilman
a7fda84902
am: Implement ISelfController Exit
...
Closes the current application.
2019-09-21 22:25:18 -04:00
Zach Hilman
4c1c8801a5
am: Add RequestExit event to AppletMessageQueue
...
Tested against libnx, signals to games to begin cleanup.
2019-09-21 22:24:10 -04:00
Zach Hilman
bbc1437188
core: Track system exit lock status
...
Used to determine if yuzu should confirm before pausing or stopping a game.
2019-09-21 22:23:44 -04:00
David Marcec
d3783fcc52
Use clang-format provided by build server
2019-09-22 12:21:07 +10:00
Zach Hilman
885ea2de2a
pl_u: Remove excess static qualifier
2019-09-21 22:17:30 -04:00
Zach Hilman
94afffe9e5
pl_u: Use OSS system archives if real archives don't exist
2019-09-21 21:50:41 -04:00
David
a1b8e5d09a
Merge pull request #2612 from DarkLordZach/prepo-new
...
prepo: Implement New, System, and Non-User variants of SaveReport
2019-09-22 11:49:36 +10:00
Zach Hilman
682174b112
dmnt_cheat_vm: Make Cheat VM compliant to code style
2019-09-21 21:45:05 -04:00
Zach Hilman
3e729c13cc
core: Initialize cheats after load to avoid VMManager crash
...
This used to occur due to the VMManager being nullptr at the time cheats were registered (during load, but before it was done). This is bypassed by not accessing the VMManager for offset data until load is complete,
2019-09-21 21:45:05 -04:00
Zach Hilman
37850eeee5
core: Update RegisterCheatList for new VM
2019-09-21 21:45:05 -04:00
Zach Hilman
a0055192fe
patch_manager: Update cheat parsing for new VM
2019-09-21 21:45:05 -04:00