Commit Graph
721 Commits
Author SHA1 Message Date
Hamish Milne 025960bcdd Attempt to fix flatpak CI 2020-03-28 15:10:35 +00:00
Hamish Milne 03379b2072 Merge remote-tracking branch 'upstream/master' into feature/savestates-2 2020-03-28 12:46:24 +00:00
Pengfei ZhuandGitHub 3edc4a3055 service/ldr_ro: Fix CRO loading when the buffer contained multiple VM areas (#5125)
* vm_manager: Handle multiple areas in ChangeMemoryState

It is possible that a few areas have the same permisson and state, but with different backing pointers. Currently, this function assumes that only one continous area is found, but this is not always the case.

* service/ldr_ro: Handle multiple areas in VerifyBufferState

It is possible that the buffer passed from the game is made up of multiple areas with the same permisson and state but different backing pointers. Change the check to allow that.
2020-03-28 13:26:54 +01:00
Hamish Milne da3ab3d56e Merge branch 'master' into feature/savestates-2 2020-03-07 21:23:08 +00:00
TobiasandGitHub 6d3d9f7a8a core: Add support for N3DS memory mappings (#5103)
* core: Add support for N3DS memory mappings

* Address review comments
2020-02-29 19:48:27 +01:00
BenandGitHub 55ec7031cc Core timing 2.0 (#4913)
* Core::Timing: Add multiple timer, one for each core

* revert clang-format; work on tests for CoreTiming

* Kernel:: Add support for multiple cores, asserts in HandleSyncRequest because Thread->status == WaitIPC

* Add some TRACE_LOGs

* fix tests

* make some adjustments to qt-debugger, cheats and gdbstub(probably still broken)

* Make ARM_Interface::id private, rework ARM_Interface ctor

* ReRename TimingManager to Timing for smaler diff

* addressed review comments
2020-02-21 19:31:32 +01:00
zhupengfei 7e8041df28 kernel/timer: Add missing base object 2020-02-14 17:13:53 +08:00
Hamish Milneandzhupengfei 246ae84a52 Pretty sure ARM/Thread serialization works now 2020-02-13 17:42:12 +08:00
Hamish Milneandzhupengfei c24ea0f0ee Serialize core timing 2020-02-13 17:42:09 +08:00
Hamish Milneandzhupengfei 8abc5525be Added Signals; more runtime fixes 2020-02-13 17:42:09 +08:00
Hamish Milneandzhupengfei e4f05884c3 Fixed serialization runtime exceptions 2020-02-13 17:42:08 +08:00
Hamish Milneandzhupengfei 9525d81344 More base-derived fixes 2020-02-13 17:42:07 +08:00
Hamish Milneandzhupengfei f2de70c3fb Fix crash bugs 2020-02-13 17:42:06 +08:00
Hamish Milneandzhupengfei 116d22d562 Refactor out the wakeup_callback function pointer 2020-02-13 17:42:05 +08:00
Hamish Milneandzhupengfei 96432589bd Use shared_ptr for PageTable 2020-02-13 17:42:04 +08:00
Hamish Milneandzhupengfei 65d96bf6c1 Changed u8* to MemoryRef 2020-02-13 17:42:00 +08:00
Hamish Milneandzhupengfei 26e90a99cd Added basic UI; misc memory fixes 2020-02-13 17:41:27 +08:00
Hamish Milneandzhupengfei 2d2c7218ef Serialize CECD, CFG services 2020-02-13 17:41:25 +08:00
Hamish Milneandzhupengfei 7b846ffa98 clang-format fixes 2020-02-13 17:39:15 +08:00
Hamish Milneandzhupengfei 6917eaf53b Use load_construct_data for kernel objects 2020-02-13 17:38:25 +08:00
Hamish Milneandzhupengfei 3ed8d95866 Serialize FS service; some compiler fixes 2020-02-13 17:38:24 +08:00
Hamish Milneandzhupengfei 5265c79056 APT service serialization 2020-02-13 17:38:21 +08:00
Hamish Milneandzhupengfei 3e752002c4 Replace g_kernel with Core::Global etc. 2020-02-13 17:38:21 +08:00
Hamish Milneandzhupengfei ac0337d8df Started IPC services serialization 2020-02-13 17:38:19 +08:00
Hamish Milneandzhupengfei 7a5bde0b44 Serialize service manager, server prt 2020-02-13 17:38:19 +08:00
Hamish Milneandzhupengfei 4f95575d41 Serialize some more kernel objects 2020-02-13 17:38:18 +08:00
Hamish Milneandzhupengfei 8c81500dee Serialize kernel/hle/memory 2020-02-13 17:38:18 +08:00
Hamish Milneandzhupengfei c284192a87 Serialize geometry_pipeline 2020-02-13 17:38:17 +08:00
Hamish Milneandzhupengfei f557d26b40 Added CPU, mutex, process, thread, timer 2020-02-13 17:38:16 +08:00
Hamish Milneandzhupengfei 06891d9454 Added client/server objects 2020-02-13 17:38:16 +08:00
Hamish Milneandzhupengfei 5035e68dad Added derived kernel objects 2020-02-13 17:38:15 +08:00
Hamish Milneandzhupengfei f79c9668a3 Added shader state; WIP kernel objects 2020-02-13 17:38:10 +08:00
Hamish Milneandzhupengfei 6940c99ed6 Added boost serialization 2020-02-13 17:27:50 +08:00
James RoweandGitHub 223bfc9a2a Merge pull request #4847 from zhaowenlan1779/ipc-debugger
core, citra_qt: IPC Recorder
2019-09-21 00:04:07 -06:00
vitor-k 147a7f0dec Remove boost headers not currently used 2019-09-15 15:18:38 -03:00
vitor-k bb12af1da7 Remove unused boost header 2019-09-15 14:00:55 -03:00
zhupengfei efd69e1315 kernel, service: Add HLE request/reply recording
Pretty much the same as LLE requests, the 'translate' part is chosen. A function is added to the context class to record requests that involves unimplemented HLE functions.
2019-08-20 03:07:29 +08:00
zhupengfei a27dfc269a kernel: Add LLE request/reply recording
The 'translate' function is a great place to put this in IMO as it is possible to get both untranslated and translated cmdbufs. However a kernel reference has to be passed here, but it is not too hard fortunately.
2019-08-20 03:07:29 +08:00
zhupengfei cb0bd6530c kernel/svc: Add request registering
All necessary objects are available here, making this a great place for the registering part.
2019-08-20 03:07:27 +08:00
zhupengfei b093d39a27 kernel: Add IPC Recorder to KernelSystem
Refer to the previous commit message for reasons why this is in kernel.
2019-08-20 03:07:26 +08:00
zhupengfei a3057c968b kernel: Add IPC Recorder class
This class resides in Kernel mainly because that, it's hard for kernel objects to get references to the System (and therefore to the Recorder), while much easier for KernelSystem. If this is to be moved to System the code will likely get much more complex with System (or Recorder) references passed everywhere.
2019-08-20 03:07:25 +08:00
xperia64andBen 8131bd32e3 renderer_opengl: Add support for custom shaders (#4578)
* Add Anaglyph 3D

Change 3D slider in-game

Change shaders while game is running

Move shader loading into function

Disable 3D slider setting when stereoscopy is off

The rest of the shaders

Address review issues

Documentation and minor fixups

Forgot clang-format

Fix shader release on SDL2-software rendering

Remove unnecessary state changes

Respect 3D factor setting regardless of stereoscopic rendering

Improve shader resolution passing

Minor setting-related improvements

Add option to toggle texture filtering

Rebase fixes

* One final clang-format

* Fix OpenGL problems
2019-08-09 20:00:47 +02:00
Weiyi Wang 6ee908dc84 kernel: silence -Wreorder 2019-07-14 14:44:17 -04:00
Weiyi WangandGitHub 508fa94e5d Merge pull request #4799 from bamsbamx/pr-separate-cpu-mem
kernel: handle all page table changes internally when switching processes
2019-07-13 22:25:51 -04:00
Weiyi WangandGitHub 0b4be6e53a Merge pull request #4803 from FearlessTobi/port-2580
Port yuzu-emu/yuzu#2580: "kernel/vm_manager: Remove redundant Reset call in destructor "
2019-06-29 22:52:36 -04:00
bamsbamx 79b837afa7 kernel: Rename memory page table set function 2019-06-27 16:33:55 +02:00
bamsbamx ed095f3bff kernel: Nullability check for current_cpu when changing memory page table
This attempts to fix segfault in some tests where page table is set before initializing cpu core (intended behaviour? might be worth a check...)
see: src/tests/core/arm/arm_test_common.cpp
see: src/tests/core/arm/dyncom/arm_dyncom_vfp_tests.cpp
2019-06-26 11:51:42 +02:00
bamsbamx dbfd830695 kernel: Let the kernel handle all page table changes when switching processes
It will both change the page table in memory and notify the CPU about the change by itself. This way there is no need to call memory.SetCurrentPageTable() when kernel.setCurrentProcess() and the management is kept internally in the kernel
2019-06-26 00:39:11 +02:00
LioncashandfearlessTobi 1f2e75ecea kernel/vm_manager: Remove redundant Reset call in destructor
This is performing more work than would otherwise be necessary during
VMManager's destruction. All we actually want to occur in this scenario
is for any allocated memory to be freed, which will happen automatically
as the VMManager instance goes out of scope.

Anything else being done is simply unnecessary work.
2019-06-24 17:21:13 +02:00
Weiyi Wang 8251de44cf GSP_GPU: move used_thread_ids into the class 2019-06-23 14:22:38 -04:00