Commit graph

5770 commits

Author SHA1 Message Date
Lioncash
5ddd382a9b kernel/svc: Do nothing if svcOutputDebugString's length is <= 0
While likely very uncommon, this sanitizes the input and does nothing in
the event of the length being equal to or less than zero, avoiding
constructing a std::string when there's no need to. It also avoids an
out-of-memory scenario, as a negative value would wrap around to its
equivalent unsigned representation in std::string's constructor.

e.g. If someone was silly and a length of -1 was specified, this would
make a string with a length of 0xFFFFFFFFFFFFFFFF on a 64-bit platform,
which will obviously eventually fail due to the allocation being way too
large.
2018-09-17 19:52:53 -04:00
Weiyi Wang
f3d59556ef web_backend: protect jwt cache with a mutex 2018-09-17 14:28:58 -04:00
Pengfei Zhu
dc863724ac
Merge pull request #4231 from CaptV0rt3x/port-1336
Port #1336 from yuzu
2018-09-17 22:37:40 +08:00
Pengfei Zhu
9a1446886c
Merge pull request #4223 from FearlessTobi/port-1301
Port #1301 from yuzu: "game_list: Resolve variable shadowing within LoadCompatibilityList()"
2018-09-17 22:25:04 +08:00
CaptV0rt3x
48fafaba3e Antialias game list compatibility pixmaps 2018-09-17 19:00:28 +05:30
Lioncash
ca3d9d659e kernel/thread: Include thread-related enums within the kernel namespace
Previously, these were sitting outside of the Kernel namespace, which
doesn't really make sense, given they're related to the Thread class
which is within the Kernel namespace.
2018-09-15 17:16:20 +02:00
Lioncash
5dfa7b74b5 thread: Convert ThreadStatus into an enum class
Makes the thread status strongly typed, so implicit conversions can't
happen. It also makes it easier to catch mistakes at compile time.
2018-09-15 17:02:44 +02:00
Lioncash
d864d9bf03 game_list: Resolve variable shadowing within LoadCompatibilityList()
"value" is already a used variable name within the outermost ranged-for
loop, so this variable was shadowing the outer one. This isn't a bug,
but it will get rid of a -Wshadow warning.
2018-09-15 15:54:20 +02:00
Lioncash
52f12e303a game_list: Use QJsonValueRef() within LoadCompatibilityList()
This way, we aren't constructing unnecessary QJsonValue instances.
2018-09-15 15:53:36 +02:00
Lioncash
93bd630d40 audio_core/sink_details: Change std::string parameter into std::string_view
The given string is only ever used for lookup and comparison, so we can
just utilize a non-owning view to string data here
2018-09-15 15:48:24 +02:00
Lioncash
83c32b8d22 common/logging/filter: Replace C-style case with C++ static_cast 2018-09-15 15:43:00 +02:00
Lioncash
787fff9a64 common/logging/filter: Make constructor explicit
Implicit conversions aren't desirable here.
2018-09-15 15:41:51 +02:00
zhupengfei
9bd8edb3b6
citra_qt: add Camera tab to "System" category 2018-09-15 14:19:45 +08:00
Weiyi Wang
6767f4562b
Merge pull request #4187 from spycrab/qt_config_sidebar
Qt/Configure: Use sidebar to divide tabs into smaller groups
2018-09-14 16:45:45 -04:00
zhupengfei
458f8d103b
service/ptm: Add Get/SetPlayCoins functions 2018-09-14 22:28:38 +08:00
Weiyi Wang
77c1f647cb web_service: stop using std::future + callback style async 2018-09-13 16:14:34 -04:00
Valentin Vanelslande
dce26367a2
ipc: fix typo 2018-09-13 11:51:08 -05:00
Weiyi Wang
0a4d338ffa
Merge pull request #4138 from FearlessTobi/change-web-links
web_service: Unify links for web service endpoints
2018-09-12 16:31:59 -04:00
fearlessTobi
b82bf1ccdb Change variable name to web_api_url 2018-09-12 19:07:06 +02:00
Valentin Vanelslande
093987eaa7
Fix #4203 2018-09-11 22:45:12 -05:00
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
NarcolepticK
0d15b99bfc service/cecd: Corrected cecd:s function table 2018-09-11 14:39:48 -04:00
spycrab
d63a63cff0 Qt/Configure: Use sidebar to divide tabs into smaller groups 2018-09-11 16:02:39 +02:00
B3n30
0238cf52b7 SDLJoystick: Addressed review comments 2018-09-11 14:50:41 +02:00
NarcolepticK
105bcc95c0 service/cecd: Add hmac handling 2018-09-10 19:53:23 -04:00
NarcolepticK
192a0f3b92 service/cecd: Update handling of /outbox/boxinfo and /outbox/obindex 2018-09-10 04:21:24 -04: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
MerryMage
a6cf2e1f9d cubeb_sink: Improve logging 2018-09-09 08:37:34 +01:00
MerryMage
675ffc1024 dsp_interface: Move volume control to audio thread
We also clamp the linear volume value to [0.0, 1.0].
Do nothing if linear volume is 1.0.
2018-09-08 22:24:51 +01:00
MerryMage
eed55a813e time_stretch: Simplify audio stretcher 2018-09-08 22:09:26 +01:00
MerryMage
f34711219a audio_core: Simplify sink interface 2018-09-08 22:09:26 +01:00
MerryMage
761ef78408 common: Implement a ring buffer 2018-09-08 22:09:26 +01: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
tgsm
5d142e2114 citra: fix SDL logging 2018-09-08 02:51:33 -04:00
zhupengfei
a3625b544f
citra_qt/configuration: misc input tab improvements
* Added a context menu on the buttons including Clear & Restore Default

* Allow clearing (unsetting) inputs. Added a Clear All button

* Allow restoring a single input to default (instead of all)
2018-09-08 11:26:10 +08:00
NarcolepticK
648cecf1aa service/cecd: Utilize CryptoPP::Base64Encoder for message id 2018-09-07 23:09:14 -04:00
zhupengfei
ad6b140cb0
service/apt: Implement soft reset & CloseApplication 2018-09-08 11:05:23 +08:00
Pengfei Zhu
0d2c027a9d
Merge pull request #4191 from valentinvanelslande/minor-fix
room_member: RakNet -> ENet
2018-09-08 10:05:33 +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
NarcolepticK
ff1beca74a service/cecd: Fixed enum item naming style 2018-09-07 19:36:33 -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
NarcolepticK
69b3217394 service/cecd: Addressed comments, code cleanup 2018-09-06 15:50:27 -04:00
NarcolepticK
c89759f597 service/cecd: Corrected eventlog.dat creation 2018-09-06 15:50:27 -04:00
NarcolepticK
c185c35bc2 service/cecd: Clang format fixup 2018-09-06 15:50:27 -04:00
NarcolepticK
dd7234a6d0 service/cecd: Migrate Common::StringFromFormat(...) to fmt::format(...) 2018-09-06 15:50:27 -04:00
NarcolepticK
25e7209d5c service/cecd: Updated function names 2018-09-06 15:50:27 -04:00
NarcolepticK
7a8477d106 service/cecd: Implement mboxlist handling 2018-09-06 15:50:27 -04:00
NarcolepticK
0e8398b51c service/cecd: Update header checks and increased debug logging 2018-09-06 15:50:27 -04:00
NarcolepticK
71204e525f service/cecd: Corrected behaviour, started checking and updating file headers 2018-09-06 15:50:27 -04:00
NarcolepticK
d88ad61da4 service/cecd: Output icon to MBoxData.001 and title to MBoxData.010 2018-09-06 15:50:27 -04:00
NarcolepticK
010fbd8614 service/cecd: Update default values for in/out box info header 2018-09-06 15:50:27 -04:00
NarcolepticK
d99585aa53 service/cecd: Add MBox directory check to OpenAndRead and OpenAndWrite and added a CreateAndPopulateMBoxDirectory function 2018-09-06 15:50:27 -04:00
NarcolepticK
30bbea3f4e service/cecd: Add initial files to archive after it is formatted 2018-09-06 15:50:27 -04:00
NarcolepticK
e27c1bd1f5 service/cecd: Addressed comment about PopEnum 2018-09-06 15:50:27 -04:00
NarcolepticK
413f1651b7 service/cecd: Implement basic file handling functions. 2018-09-06 15:50:26 -04:00
NarcolepticK
2ee395d7de service/cecd: Implement functions 2018-09-06 15:50:26 -04:00
NarcolepticK
5dacf92fd7 service/cecd: Stub some functions 2018-09-06 15:50:26 -04: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
zhupengfei
cdd3bd72e5
citra_qt/multiplayer: three minor fixes
* Fix the issue that icons for owned games do not appear

* Fix the issue where you would double click on a room and connect to another

* Fix the issue that room name and nickname does not have size limitation
2018-09-05 22:46:33 +08:00
fearlessTobi
d408f89a91 Rename announce-url, use variable for JWT retrieval url 2018-09-05 03:07:04 +02:00
fearlessTobi
73a38c6244 Fix compilation 2018-09-05 03:07:04 +02:00
fearlessTobi
0d6b1d161b web_service: Unify links for web service endpoints 2018-09-05 03:07:03 +02: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
B3n30
dfb82b4dfd fixup! fix num_client_certs in CloseClientCertContext 2018-09-04 08:16:25 +02:00
Nguyen Dac Nam
a8af14ad12
change buffer index from 1 to 0. 2018-09-04 09:41:34 +07: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
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
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
Pengfei Zhu
0fe57d075a
Merge pull request #4158 from FearlessTobi/port-933
Port #933 from yuzu: Multiple cleanups in memory
2018-08-31 14:38:43 +08:00
Pengfei Zhu
270155066c
Merge pull request #4154 from FearlessTobi/port-1063
Port #1063 from yuzu: "common/xbyak_abi: Mark defined functions in header as inline "
2018-08-31 12:59:29 +08:00