Commit graph

3658 commits

Author SHA1 Message Date
Weiyi Wang
ad1cfc8d50
Merge pull request #4608 from wwylele/sharedmem-circular
Kernel/SharedMemory: make owner_process a raw pointer
2019-02-25 10:32:45 -05:00
Weiyi Wang
93275d752b
Merge pull request #4645 from FearlessTobi/port-2116
Port yuzu-emu/yuzu#2116: "threadsafe_queue: Remove NeedSize template parameter"
2019-02-25 10:25:11 -05:00
Weiyi Wang
206413ba7b
Merge pull request #4630 from wwylele/memory-no-lock
Memory: don't lock hle mutex in memory read/write
2019-02-25 10:23:23 -05:00
Weiyi Wang
5f10cc412f
Merge pull request #4632 from zhaowenlan1779/socu
service/soc_u: Implement getaddrinfo and getnameinfo
2019-02-25 10:23:13 -05:00
Weiyi Wang
42c777b0e5
Merge pull request #4617 from wwylele/hle-service-clean
HLE/IPC: clean up System::GetInstance
2019-02-25 10:22:13 -05:00
Weiyi Wang
c265f3f507
Merge pull request #4616 from wwylele/core-global-clean
Cleanup System::GetInstance reference - Part 1
2019-02-25 10:22:02 -05:00
Weiyi Wang
5f80075c31
Merge pull request #4596 from CarlKenner/master
Fix mouse touchscreen in SBS 3D mode
2019-02-22 16:24:22 -05:00
Weiyi Wang
8f2bd97277
Merge pull request #4655 from tgsm/gcc-version
Remove GCC version checks
2019-02-22 16:21:21 -05:00
tgsm
433ab35e7e Remove GCC version checks
Citra can't be compiled using GCC <7 because of required C++17 support, so these version checks don't need to exist anymore.
2019-02-19 16:39:34 -05:00
tgsm
39e163b7ce core: use nested namespaces 2019-02-18 20:34:18 -05:00
Weiyi Wang
f409342ab5
Merge pull request #4613 from BreadFish64/gles5
video_core: add GLES support
2019-02-17 15:44:39 -05:00
Lioncash
3bc78e577f threadsafe_queue: Remove NeedSize template parameter
The necessity of this parameter is dubious at best, and in 2019 probably
offers completely negligible savings as opposed to just leaving this
enabled. This removes it and simplifies the overall interface.
2019-02-15 22:00:44 +01:00
Weiyi Wang
e6feef96c1 Service: clear IPC header for unimplemented function stub 2019-02-14 22:16:50 -05:00
Weiyi Wang
3f86be88f0 HLE/IPC: pass in kernel & memory reference from parent to avoid global state reference 2019-02-14 22:09:25 -05:00
Weiyi Wang
0a424b86d2 ServerSession: replace GetPointer with block copy for HLE translation
Do it in the same way as HLERequestContext::SleepClientThread callback and avoid unsafe GetPointer
2019-02-14 22:09:25 -05:00
Weiyi Wang
36c8e1d7a9 HLE/IPC: move command buffer translation into kernel as TODO says 2019-02-14 22:09:25 -05:00
Weiyi Wang
64f6e5e597 ARM: pass MemorySystem separately in the constructor and make System optional
So that unit test can test CPU without constructing the entire system. Also remove hacks in the System class
2019-02-14 14:04:46 -05:00
Weiyi Wang
9573ee46bd Memory: replace Core::CPU 2019-02-14 14:04:46 -05:00
Weiyi Wang
5f6d9f1915 Kernel/IPC: use MemorySystem from parameter 2019-02-14 14:04:46 -05:00
Weiyi Wang
20f47583f6 Kernel: replace usage of Core::System::GetInstance().PrepareReschedule() with callback 2019-02-14 14:04:46 -05:00
Weiyi Wang
eb050b8403 Kernel: replace usage of Core::System::GetInstance()::Timing() 2019-02-14 14:04:46 -05:00
Weiyi Wang
276ca88c9e kernel/thread: replace usage of Core::CPU() 2019-02-14 14:04:46 -05:00
Weiyi Wang
b9f6bd9278 ldr_ro: replace usage of Core::CPU() 2019-02-14 14:04:46 -05:00
Weiyi Wang
8f2c35d7b6
Merge pull request #4614 from wwylele/nwm-uds-global
NWM_UDS: move states into the class
2019-02-14 11:44:28 -05:00
zhupengfei
1995e8ff32
service/soc_u: address review comments 2019-02-10 18:49:18 +08:00
zhupengfei
08bf899d70
service/soc_u: Implement getaddrinfo and getnameinfo 2019-02-09 20:12:09 +08:00
Weiyi Wang
687fa0134d
Merge pull request #4609 from wwylele/nuke-zmq
Reimplement scripting over plain UDP
2019-02-08 18:38:21 -05:00
Weiyi Wang
7074dab2da Memory: don't lock hle mutex in memory read/write
The comment already invalidates itself: neither MMIO nor rasterizer cache belongsHLE kernel state. This mutex has a too large scope if MMIO or cache is included, which is prone to dead lock when multiple thread acquires these resource at the same time. If necessary, each MMIO component or rasterizer should have their own lock.
2019-02-08 10:43:06 -05:00
BreadFish64
cd21abe50f sdl: add GLES support 2019-02-03 15:58:09 -06:00
Weiyi Wang
a6d9baa05a FS: pass down program ID for archive operation
To eliminate System::GetInstance usage. Archive type like SelfNCCH and SaveData changes the actual reference path for different client, so archive backend interface should accept client information from the service interface. Currently we only pass the program ID as the client information.
2019-02-02 20:44:13 -05:00
Weiyi Wang
008197a569 Remove scripting switch in cmake 2019-02-02 15:25:23 -05:00
Weiyi Wang
6347b5cbb4 Remove libzmq submodule 2019-02-02 15:25:23 -05:00
Weiyi Wang
d765a73a53 Scripting: reimplement protocol over plan UDP using boost::asio 2019-02-02 15:25:23 -05:00
zhupengfei
573036b38e
core/cheats: Add and change a few functions
Added a few interfaces for adding/deleting/replacing/saving cheats. The cheats list is guarded by a std::shared_mutex, and would only need a exclusive lock when it's being updated.

I marked the `Execute` function as `const` to avoid accidentally changing the internal state of the cheat on execution, so that execution can be considered a "read" operation which only needs a shared lock.

Whether a cheat is enabled or not is now saved by a special comment line `*citra_enabled`.
2019-02-02 08:15:23 +08:00
Weiyi Wang
ae57d72b33
Merge pull request #4603 from DimitriPilot3/gdbstub-watchpoint-fix1
gdbstub: only let Execute breakpoints write/restore BKPT opcodes into memory
2019-02-01 10:49:09 -05:00
Weiyi Wang
6382d9bfc3 NWM_UDS: move states into the class 2019-01-31 15:42:45 -05:00
Weiyi Wang
3a7a686fa9 Kernel/SharedMemory: make owner_process a raw pointer
To break a circular reference formed by process->handle_table->shared_memory->process. Since SharedMemory uses its owner process in the destructor, which is not kept alive by SharedMemory any more, we need to make sure that the lifetime of process is longer than the shared memory. To partially resolve this, Process now explicitly releases shared memory first in its destructor. This is with the assumtion that there is no inter-process reference to shared memory on exit, which is not true when we introduce more multi-process emulation. A TODO is left there for this, as more RE needs to be done on how 3DS handles this situation
2019-01-29 11:18:51 -05:00
Weiyi Wang
104829ae58 remove all occurance of specifying endianness inside BitField
This commit it automatically generated by command in zsh:
sed -i -- 's/BitField<\(.*\)_le>/BitField<\1>/g' **/*(D.)

BitField is now aware to endianness and default to little endian. It expects a value representation type without storage specification for its template parameter.
2019-01-28 22:09:43 -05:00
Carl Kenner
602334cb1e Fix mouse touchscreen in SBS 3D mode.
You can now click or drag on either eye's touchscreen.
2019-01-27 16:25:42 +10:30
Dimitri ALBORA
d388fe58f7 gdbstub: only let Execute breakpoints write/restore BKPT opcodes into target memory 2019-01-26 22:08:39 +01:00
Weiyi Wang
054a97c08b
Merge pull request #4579 from xperia64/3d_slider
Change 3D Slider in-game
2019-01-23 20:23:55 -05:00
Lioncash
306ce6416a
vfp_helper: Remove accidental use of the comma operator in vfp_single_unpack()
Makes the line of code slightly easier to read properly.
2019-01-22 18:30:34 -05:00
fearlessTobi
1302c9c1e7 frontend: Remove V-Sync option from UI
The V-Sync option is fundamentally broken in Citra, so let's do the same as yuzu and remove it entirely for SDL2 and at least from the frontend for QT.
(It was also only used by 7.3% of users)
2019-01-19 17:43:44 +01:00
xperia64
c1ac39f058 Actually fix the race condition 2019-01-18 16:32:16 -05:00
xperia64
5f5646c850 Fix types 2019-01-18 15:24:39 -05:00
xperia64
6f2eb2a418 Do 3D slider updating in the HID module 2019-01-17 23:48:50 -05:00
xperia64
81f4cef201 Revert "Change 3D slider in-game"
This reverts commit bb9a972e35.

Needs to be completely redone in the HID HLE service module.
2019-01-17 23:33:24 -05:00
Weiyi Wang
95a57a2fe3
Merge pull request #4538 from valentinvanelslande/profiles
Add multiple input profile support
2019-01-17 22:32:24 -05:00
xperia64
bb9a972e35 Change 3D slider in-game 2019-01-17 22:18:15 -05:00
Ben
4f23d5d69e
Merge pull request #4490 from wwylele/teakra-new
audio: implement DSP LLE
2019-01-11 16:45:00 +01:00
Valentin Vanelslande
62b40e9155
Merge branch 'master' into profiles 2019-01-07 10:39:44 -05:00
RicBent
707bc48440 Added new buttons to movie system 2018-12-29 08:19:59 -06:00
Valentin Vanelslande
5a14af5f38 address some comments 2018-12-29 08:27:06 -05:00
Mat M
ec7a3fb72c
Update src/core/settings.h
Co-Authored-By: valentinvanelslande <valentinvanelslandeacnl@gmail.com>
2018-12-28 23:33:40 -05:00
Valentin Vanelslande
8e614c3eb0 clang-format; address one comment 2018-12-28 23:31:55 -05:00
Valentin Vanelslande
39140bbff8 another fix 2018-12-28 21:24:01 -05:00
Valentin Vanelslande
16ebb38b4a more fixes 2018-12-28 21:23:43 -05:00
Valentin Vanelslande
bf93b94658 fixes 2018-12-28 21:13:57 -05:00
Mat M
90965525ac
Apply suggestions from code review
Co-Authored-By: valentinvanelslande <valentinvanelslandeacnl@gmail.com>
2018-12-28 21:00:09 -05:00
Valentin Vanelslande
7c95032e3a Add multiple input profile support
Only supported in the Qt frontend.
2018-12-28 20:28:45 -05:00
RicBent
6ad609a539 Added GPIO14 button and UI config buttons 2018-12-28 17:13:37 -06:00
RicBent
446b614409 Removed unnecessary debug key abbreviations 2018-12-28 13:33:54 -06:00
RicBent
403d2f0058 Added Debug Button 2018-12-28 12:47:50 -06:00
Lioncash
432e847c24 core/memory: Remove unnecessary memory zeroing in MemorySystem::Impl
std::make_unique for arrays is equivalent to doing:

std::unique_ptr<T>(new typename std::remove_extent<T>::type[size]())

(note the ending () after the array size specifier). This means that the
default value within memory for the constructed types will be whatever
the default constructor for that type does. Given the built-in
type for std::uint8_t doesn't have a constructor, this is equivalent to
forcing zero-initialization, so the memory will already be zeroed out on
construction. Because of that, there's no need to zero it out again.
2018-12-27 00:35:53 -05:00
Weiyi Wang
443f4b964d DSP/LLE: add multithread mode 2018-12-21 20:49:24 -05:00
Weiyi Wang
05c372bf6c Update teakra to fix macos issue; address comment feedbacks 2018-12-21 20:49:23 -05:00
Weiyi Wang
67213ca855 audio_core/lle: link ahbm and audio callback 2018-12-21 20:49:22 -05:00
Weiyi Wang
21da135cc6 Configuration: add option to use DSP LLE 2018-12-21 20:49:22 -05:00
Weiyi Wang
92e5c51adb Service/DSP: implement semaphore event 2018-12-21 20:49:22 -05:00
Weiyi Wang
6f6ffceec4 audio_core/hle,lle: implement UnloadComponent 2018-12-21 20:49:21 -05:00
Weiyi Wang
4add509b20 audio_core/hle: move implementation of LoadComponent 2018-12-21 20:49:21 -05:00
Weiyi Wang
df8aaee965 DSP_DSP: avoid global in ReadPipe 2018-12-21 20:49:20 -05:00
Weiyi Wang
daf23eca2e DSP_DSP: avoid global in WriteProcessPipe 2018-12-21 20:49:20 -05:00
Weiyi Wang
c9736b3300 audio_core/hle,lle: implement SetSemaphore 2018-12-21 20:49:20 -05:00
Weiyi Wang
14eb3561de audio_core/hle: move implementation of RecvDataIsReady 2018-12-21 20:49:19 -05:00
Weiyi Wang
7f568a3c19 DSP/HLE: move implementation of RecvData to audio_core, behind common interface 2018-12-21 20:49:19 -05:00
Pengfei Zhu
eabc9727d8
Merge pull request #4468 from citra-emu/multiplayer-v4/main
Multiplayer version 4
2018-12-22 09:45:28 +08:00
zhupengfei
9d062d63da
network, citra_qt: Give moderation permission to community mods
Based on the `roles` payload in the JWT, the rooms will now give mod permission to Citra Community Moderators. To notify the client of its permissions, a new response, IdJoinSuccessAsMod is added, and there's now a new RoomMember::State called Moderator.
2018-12-15 20:28:03 +08:00
zhupengfei
ab335ccf1b
core, web_service: Changes to announce service
Separated registering and updating to correspond to the new announce API endpoint. Also added a verify_UID for JWT audience verification.
2018-12-15 11:02:52 +08:00
adityaruplaha
5f0e189238
Add Support for Room Descriptions 2018-12-15 11:02:50 +08:00
zhupengfei
c396e3c6e5 network: check Console ID conflicts
As Console ID can be sensitive data sometimes, this implementation sent a SHA256 hash of it instead.
2018-12-15 11:02:47 +08:00
Weiyi Wang
9293760d0a Core, test: perform kernel and memory destruction in the correct order
The change in test is temporary due to it accessing global state
2018-12-10 23:29:08 -05:00
Weiyi Wang
b49f2d2958 APT: enable LLE applet 2018-12-10 22:25:02 -05:00
Weiyi Wang
bf2056f12e Memory: apply rasterizer cache mark to all page tables and the global marker 2018-12-10 22:21:03 -05:00
Weiyi Wang
88161b8ac6 Memory: register page tables into a list for rasterizer cache marking 2018-12-10 22:13:10 -05:00
Weiyi Wang
9d616e5951 Memory: mark pages on mapping if it is already rasterizer-cached 2018-12-10 22:05:28 -05:00
Weiyi Wang
643b7d4dcb Memory: move memory setup into MemorySystem 2018-12-10 22:01:09 -05:00
Weiyi Wang
e7a3c296c3 Memory: create rasterizer cache marker 2018-12-10 21:43:39 -05:00
Lioncash
dd2cbca3f4 hle/service: Remove unnecessary using declarations
Only one usage of the specified objects made use of the lack of
namespacing. Given the low usage, we can just remove these.
2018-12-08 14:52:30 +01:00
Lioncash
a32725540c hle/service, hle/sm: Use structured bindings where applicable
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-08 14:49:53 +01:00
Lioncash
0cb7654d60 hle/service, hle/sm: Use structured bindings where applicable
Gets rid of the need to keep the variables separate from their actual
initialization spots.
2018-12-08 14:48:01 +01:00
bunnei
edbdbf0ba1
Merge pull request #4480 from wwylele/memory-global-2
Memory: eliminate global state
2018-12-06 19:17:28 -05:00
Weiyi Wang
556ac5c075
Merge pull request #4469 from shutterbug2000/httpAddSet
Add HTTP_C::AddPostDataAscii
2018-12-06 14:28:56 -05:00
Weiyi Wang
b9f7c9142a
Merge pull request #4476 from FearlessTobi/fix-testcase-sending
web_service: move telemetry condition from TelemetrySession constructor to destructor
2018-12-06 14:28:21 -05:00
Weiyi Wang
23bad5d398 fix clang-format 2018-12-06 13:30:58 -05:00
Weiyi Wang
7e8ba6ed8e Memory: move memory chunk into pImpl and make them dynamically allocated
Otherwise MSVC would give out-of-memory error on compile time
2018-12-06 13:30:47 -05:00
Weiyi Wang
ac1cda21c3 Address code style comments 2018-12-05 20:24:37 -05:00
Weiyi Wang
e87dc17da2 Pass system into arm interpreter; fix tests 2018-12-05 20:21:14 -05:00
Weiyi Wang
c6b3186475 Memory: IsValidVirtualAddress can be global 2018-12-05 20:21:14 -05:00
Weiyi Wang
42edab01d9 Memory: move states into class 2018-12-05 20:21:14 -05:00