Commit graph

6804 commits

Author SHA1 Message Date
EverOddish
04dd91be82 Initial support for scripting (#4016)
* Add ZeroMQ external submodule

* ZeroMQ libzmq building on macOS

* Added RPC namespace, settings and logging

* Added request queue handling and new classes

* Add C++ interface to ZeroMQ

* Added start of ZeroMQ RPC Server implementation.

* Request construction and callback request handling

* Read and write memory implementation

* Add ID to request format and send reply

* Add RPC setting to macOS UI

* Fixed initialization order bug and added exception handling

* Working read-write through Python

* Update CMakeLists for libzmq to resolve target name conflict on Windows

* Platform-specific CMake definitions for Windows/non-Windows

* Add comments

* Revert "Add RPC setting to macOS UI"

* Always run RPC server instead of configurable

* Add Python scripting example. Updated .gitignore

* Rename member variables to remove trailing underscore

* Finally got libzmq external project building on macOS

* Add missing dependency during libzmq build

* Adding more missing dependencies [skip ci]

* Only build what is required from libzmq

* Extra length checks on client input

* Call InvalidateCacheRange after memory write

* Revert MinGW change. Fix clang-format. Improve error handling in request/reply. Allow any length of data read/write in Python.

* Re-organized RPC static global state into a proper class. [skip ci]

* Make sure libzmq always builds in Release mode

* Renamed Request to Packet since Request and Reply are the same thing

* Moved request fulfillment out of Packet and into RPCServer

* Change request thread from sleep to condition variable

* Remove non-blocking polling from ZMQ server code. Receive now blocks and terminates properly without sleeping. This change significantly improves script speed.

* Move scripting files to dist/ instead of src/

* C++ code review changes for jroweboy [skip ci]

* Python code review changes for jroweboy [skip ci]

* Add docstrings and tests to citra.py [skip ci]

* Add host OS check for libzmq build

* Revert "Add host OS check for libzmq build"

* Fixed a hang when emulation is stopped and restarted due to improper destruction order of ZMQ objects [skip ci]

* Add scripting directory to archive packaging [skip ci]

* Specify C/CXX compiler variables on MinGW build

* Only specify compiler on Linux mingw

* Use gcc and g++ on Windows mingw

* Specify generator for mingw

* Don't specify toolchain on windows mingw

* Changed citra.py to support Python 3 instead of Python 2

* Fix bug where RPC wouldn't restart after Stop/Start emulation

* Added copyright to headers and reorganized includes and forward declarations
2018-09-11 22:00:12 +02:00
Weiyi Wang
abeee6859e
Merge pull request #4201 from FearlessTobi/backport-review-comments
SDLJoystick: Backport review comments from yuzu #1275
2018-09-11 10:13:01 -04:00
B3n30
0238cf52b7 SDLJoystick: Addressed review comments 2018-09-11 14:50:41 +02:00
Weiyi Wang
9df1461cec
Merge pull request #4192 from valentinvanelslande/thread
svc: change unknown to thread in CreateThread
2018-09-09 18:41:51 -04:00
Ben
17978cf758
Joystick hotplug support (#4141)
* use SDL_PollEvent instead of SDL_JoystickUpdate

Register hot plugged controller by GUID if they were configured in a previous session

* Move SDL_PollEvent into its own thread

* Don't store SDLJoystick pointer in Input Device; Get pointer on each GetStatus call

* Fix that joystick_list gets cleared after SDL_Quit

* Add VirtualJoystick for InputDevices thats never nullptr

* fixup! Add VirtualJoystick for InputDevices thats never nullptr

* fixup! fixup! Add VirtualJoystick for InputDevices thats never nullptr

* Remove SDL_GameController, make SDL_Joystick* unique_ptr

* fixup! Remove SDL_GameController, make SDL_Joystick* unique_ptr

* Adressed feedback; fixed handling of same guid reconnects

* fixup! Adressed feedback; fixed handling of same guid reconnects

* merge the two joystick_lists into one

* make SDLJoystick a member of VirtualJoystick

* fixup! make SDLJoystick a member of VirtualJoystick

* fixup! make SDLJoystick a member of VirtualJoystick

* fixup! fixup! make SDLJoystick a member of VirtualJoystick
2018-09-08 19:01:30 +02:00
Valentin Vanelslande
5c4da2d218
svc: change unknown to thread in CreateThread 2018-09-08 07:40:24 -05:00
Pengfei Zhu
f86c993e11
Merge pull request #4188 from tgsm/fix-sdl-logging
citra: fix SDL logging
2018-09-08 17:20:04 +08:00
tgsm
5d142e2114 citra: fix SDL logging 2018-09-08 02:51:33 -04:00
Pengfei Zhu
0d2c027a9d
Merge pull request #4191 from valentinvanelslande/minor-fix
room_member: RakNet -> ENet
2018-09-08 10:05:33 +08:00
Pengfei Zhu
5b8820ba29
Merge pull request #4190 from valentinvanelslande/typos-pt2
room_member: fix 3 typos
2018-09-08 10:04:20 +08:00
Valentin Vanelslande
c29c66000e
room_member: RakNet -> ENet 2018-09-07 20:17:24 -05:00
Valentin Vanelslande
fc876e727a
room_member: fix 3 typos 2018-09-07 20:12:52 -05:00
Weiyi Wang
ca701e2610
Merge pull request #4182 from wwylele/std-size-t
Prefix all size_t with std::
2018-09-06 20:44:30 -04:00
Weiyi Wang
7d8f115185 Prefix all size_t with std::
done automatically by executing regex replace `([^:0-9a-zA-Z_])size_t([^0-9a-zA-Z_])` -> `$1std::size_t$2`
2018-09-06 16:03:28 -04:00
Merry
eca98eeb3e
Merge pull request #4143 from zhaowenlan1779/shared-font-text-fix
core, citra_qt: unify status of system archives and shared fonts
2018-09-06 20:51:32 +01:00
Merry
dd2a0f2387
Merge pull request #4147 from FearlessTobi/port-424
Port #424 from yuzu: "string_util: Remove StringFromFormat() and related functions"
2018-09-06 20:49:30 +01:00
fearlessTobi
cf8b1726df Address review comments 2018-09-06 00:00:21 +02:00
fearlessTobi
cb3ef488c7 Fixup! string_util: Remove StringFromFormat() and related functions 2018-09-06 00:00:21 +02:00
Lioncash
3284bef360 string_util: Remove StringFromFormat() and related functions
Given we utilize fmt, we don't need to provide our own functions for formatting anymore
2018-09-06 00:00:21 +02:00
Weiyi Wang
22e172946b
Merge pull request #4132 from FearlessTobi/port-966
Port #966 and #414 from yuzu (Cleanups in common and file_util) & Make bitfield assignment operator public
2018-09-05 18:03:36 +03:00
fearlessTobi
c7d8ffd14f Make bitfield assignment operator public
This change needs to be made to get the code compiling again. It was suggested after a conversation with Lioncash.

The conversation can be seen here: https://user-images.githubusercontent.com/20753089/45064197-b6107800-b0b2-11e8-9db8-f696299fb86a.PNG
2018-09-05 02:24:44 +02:00
fearlessTobi
f3f4871275 Fix compilation errors 2018-09-05 02:19:55 +02:00
Weiyi Wang
ae6007bf9d
Merge pull request #4069 from B3n30/wait_for_service_register
Service::SM: Wait till client is registered
2018-09-04 01:57:28 +03:00
Weiyi Wang
fffa55b5d8
Merge pull request #4139 from tgsm/hid-update-table
Service/HID: update function table
2018-09-04 01:47:26 +03:00
Weiyi Wang
2396e58ee4
Merge pull request #4170 from FearlessTobi/port-stupid-fixes
citra_qt: Backport some review fixes of Lioncash
2018-09-04 01:47:03 +03:00
Weiyi Wang
12bba80d48
Merge pull request #4174 from wwylele/proctex-round-fix
gl_rasiterzer/proctex: revert back to round() for Nearest sampling
2018-09-04 01:36:16 +03:00
B3n30
cfd81be661 fixup! fixup! Service::SM: Wait till client is registered 2018-09-02 22:50:13 +02:00
B3n30
ae37b404c6 fixup! fixup! Service::SM: Wait till client is registered 2018-09-02 16:42:41 +02:00
Merry
978611e51e
Merge pull request #4086 from MerryMage/dynarmic-update-201808
externals: Update dynarmic
2018-09-02 09:55:32 +01:00
Merry
f1b8d091db
Merge pull request #4157 from FearlessTobi/port-1048
Port #1048 from yuzu: "kernel/object: Tighten object against data races"
2018-09-02 09:54:49 +01:00
Merry
b130dd6842
Merge pull request #4161 from FearlessTobi/port-1139
Port #1139 from yuzu: "bit_field: Convert ToBool() into explicit operator bool"
2018-09-02 09:53:50 +01:00
Merry
85e0553a1f
Merge pull request #4165 from B3n30/log_ncch_load
NCCH_Container: Add file_path log to Load()
2018-09-02 09:52:30 +01:00
Merry
c99d197ff7
Merge pull request #4156 from FearlessTobi/port-1060
Port #1060 from yuzu: "logging/backend: Use const reference to refer to log filter"
2018-09-02 09:50:57 +01:00
Merry
f03cc09998
Merge pull request #4168 from MerryMage/cubeb-lock
cubeb_sink: Protect queue against multithreaded access
2018-09-02 09:49:12 +01:00
fearlessTobi
488694d01f Replace ToBool() with static_cast() 2018-09-01 15:50:57 +02:00
Lioncash
6c3737a786 bit_field: Convert ToBool() into explicit operator bool
Gets rid of a TODO that is long overdue.
2018-09-01 15:44:09 +02:00
fearlessTobi
2f6f232965 Backport some review fixes of Lioncash 2018-09-01 15:41:46 +02:00
Weiyi Wang
99f4ea999c gl_rasiterzer/proctex: revert back to round() for Nearest sampling
This change to floor() was made in 2927c88, which was a result of doing some hwtest. It turned out that it was buggy edge cases in PICA, and for most cases round() still applies
2018-09-01 09:11:15 -04:00
Weiyi Wang
b4fdce0c2c
Merge pull request #4171 from zhaowenlan1779/remove-glad-hack
Tests: Remove glad test OS X work-around
2018-09-01 15:30:06 +03:00
Pengfei Zhu
3b3b0bbdf5
Merge pull request #4152 from citra-emu/port-1030
Port yuzu-emu/yuzu#1030 from yuzu: "externals: Update to SDL2-2.0.8"
2018-09-01 12:08:13 +08:00
Yuri Kunde Schlesner
23506e8eae
Tests: Remove glad test OS X work-around 2018-09-01 11:44:24 +08:00
Pengfei Zhu
987e1279a3
Merge pull request #4155 from FearlessTobi/port-1062
Port yuzu-emu/yuzu#1062 from yuzu: "common: Remove unused old breakpoint source files"
2018-09-01 10:27:18 +08:00
Tobias
c8bcd35b7a
Port #1030 from yuzu: "externals: Update to SDL2-2.0.8" 2018-09-01 08:12:06 +08:00
Lioncash
664e92d6ae common: Remove unused old breakpoint source files
These currently aren't used and contain commented out source code that
corresponds to Dolphin's JIT. Given our CPU code is organized quite
differently, we shouldn't be keeping this around (at the moment it just
adds to compile times marginally).
2018-09-01 00:04:25 +02:00
Weiyi Wang
ffd78b635e
Merge pull request #4163 from FearlessTobi/port-1097
Port #1097 from yuzu: "renderer_opengl: Treat OpenGL errors as critical."
2018-08-31 21:43:52 +03:00
MerryMage
7daed185cb cubeb_sink: Protect queue against multithreaded access 2018-08-31 18:44:19 +01:00
Pengfei Zhu
ac419c8612
Merge pull request #4159 from FearlessTobi/port-1067
Port yuzu-emu/yuzu#1067 from yuzu: "emu_window: Ensure WindowConfig members are always initialized"
2018-08-31 19:44:33 +08:00
Pengfei Zhu
13f2cc9964
Merge pull request #4162 from FearlessTobi/port-1126
Port yuzu-emu/yuzu#1126 from yuzu: "Don't allocate std::string instances for program lifetime in GetTelemetryId() and RegenerateTelemetryId()"
2018-08-31 17:39:49 +08:00
B3n30
bfbb6f13b4 NCCH_COntainer: Add file_path log to Load() 2018-08-31 11:00:34 +02:00
Pengfei Zhu
1016d288c5
Merge pull request #4160 from FearlessTobi/port-1133
Port #1133 from yuzu: "gl_stream_buffer: Add missing header guard"
2018-08-31 16:18:10 +08:00