Commit graph

6796 commits

Author SHA1 Message Date
zhupengfei
4144f4480d
citra_qt: Add single line mode for game list
This single line mode is aimed at restoring the intended behavior with Small or None icons. Line breaks will be replaced with commas (Region row) or spaces (Name row). One can toggle this option in UI configuration.
2019-08-20 20:03:15 +08:00
zhupengfei
b078122167
citra_qt/game_list: Disable uniform row heights
This option was intended for enabling optimizations when all rows are granted to have the same height. In our case this is not true, and therefore the behavior is actually undefined. Different versions of Qt handle this differently. Newer versions of Qt tend to hide contents that are too big in height, which goes against our wishes. Thus, it's probably the best to disable this option so that things don't go wrong if we ever decide to update Qt.
2019-08-20 20:01:14 +08:00
zhupengfei
82fea86717
citra_qt/game_list: Add an All Regions check
Some titles (mostly homebrews) do not use the region free value 0x7FFF but instead set all of the region flags, resulting in all regions displayed in game list, which is not beautiful and not what we want. This fixes it by adding an all_regions check.
2019-08-20 19:57:33 +08:00
zhupengfei
ce3459192e
fixup! CMake: separate options for FFmpeg decoder/dumper 2019-08-20 14:58:43 +08:00
zhupengfei
f8b3950829
CMake: separate options for FFmpeg decoder/dumper
Separate options are now provided for FFmpeg AAC audio decoder and FFmpeg video dumper. This allows users to configure Citra with greater freedom.

Also, previously for Linux builds, AAC decoder is accidentally enabled along with the dumper, which could potentially cause patent issues (?). This commit fixes it by only enabling video dumper.
2019-08-20 14:45:39 +08:00
zhupengfei
42cefdbff0 citra_qt/debugger: Add recorder widget
This widget provides a simple list of recorded requests as well as a simple filter and the 'Clear' button. Requests with status 'HLE Unimplemented' or 'Error' will be marked out with the red color.

This widget handles retrival of service name. For reasons refer to a previous commit message.

Added the widget to the Debugging menu, pretty much the same as other debugging widgets.
2019-08-20 03:08:55 +08:00
zhupengfei
45930e0621 citra_qt: Add record dialog
This 'View Record' dialog shows all relevant information on a record as well as the command buffers.
2019-08-20 03:08:20 +08:00
zhupengfei
f40232adc9
service/sm: Add service name retrival based on client port ID
This is for displaying the service names. This function is only used in the frontend, because Recorder which is in the Kernel cannot and should not have access to SM in the System.
2019-08-20 03:07:30 +08: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
zhupengfei
71e0c40310
service: Add service function name lookup based on header code
This is for displaying the function name for HLE requests. Probably it is possible to do the same for LLE ones but it would require having the HLE handlers available even when not using them, which doesn't seem to make sense and is more of a hack than a proper solution in my opinion.
2019-08-20 03:07:25 +08:00
Weiyi Wang
dd3ba7bd21 opengl: remove hw geometry shader related stuff 2019-08-18 20:07:50 -04:00
Weiyi Wang
b4d45b57c7
Merge pull request #4879 from tywald/accurate-gs-on
Remove 'Accurate Geometry Shader' setting
2019-08-18 15:52:45 -04:00
Weiyi Wang
24f1c8d009
Merge pull request #4885 from vvanelslande/cmake-dwarf-mingw
Add MinGW CMake option to disable DWARF debugging information
2019-08-18 15:40:32 -04:00
Weiyi Wang
8b8111b425 NFC: extract frontend-facing tag state
Added a new state amiibo_in_range. This state is akin to the real world
physical relationship between a 3DS machine and an amiibo, which is
independent from the service state (or even the machine is powered on or
not). The service state nfc_tag_state is then synchronized with this
physical state on every potential point when the state changes. This
solves the issue where user might load an amiibo before NFC service
initializes, or remove an amiibo after NFC service shutdown, which
previously causes inconsistent state change.

Also removed std::atomic on nfc_tag_state, because
1. It is already protected by g_hle_lock
2. It wasn't properly used in the code anyway. For example, there are
many double loading on this variable, which effectively make it
non-atomic.
2019-08-17 21:56:12 -04:00
James Rowe
0cffab04b5 Fixup! Prevent issue deleting PerfStats 2019-08-16 21:54:33 -06:00
James Rowe
6f0b009497
Merge pull request #4889 from jroweboy/autouic
Remove qt5_wrap_ui macro usage
2019-08-16 19:36:23 -06:00
James Rowe
7fe9a094a5 Remove qt5_wrap_ui macro usage 2019-08-16 19:35:37 -06:00
James Rowe
00eeaf0e9c
Merge pull request #4882 from jroweboy/frametime-logging
Frametime logging for tracking performance over time
2019-08-16 19:33:53 -06:00
James Rowe
135b054f74
Update telemetry_session.cpp
Change Session -> Performance
2019-08-15 19:36:02 -06:00
James Rowe
331a9fc12b Change over to std::shared_ptr 2019-08-14 21:30:49 -06:00
James Rowe
61ebeca765 NS: Lowercase NS:S to ns:s like it should be 2019-08-14 21:23:06 -06:00
James Rowe
6c8faaf2c2 HLE: Remove BaseInterface and add ns.cpp back 2019-08-14 21:23:06 -06:00
James Rowe
f2167d76a8 Service: Add BaseInterface and NSInterface 2019-08-14 21:23:03 -06:00
James Rowe
b62ca12e88 HLE: Move NS:S into APT and remove NS 2019-08-14 21:21:33 -06:00
James Rowe
a77cd00cbe Add current date/time to file path 2019-08-14 21:17:32 -06:00
James Rowe
23e969dfdc Address review comments 2019-08-14 21:17:32 -06:00
James Rowe
45be693f8c Add telemetry field for mean frametime
Previously, telemetry results couldn't give a good estimate for
performance over time, because it didn't include any fields related to
performance. With this, devs should be able to query metabase for mean
frametime to check for performance regressions after a change is made.
2019-08-14 21:17:31 -06:00
James Rowe
62e6c147ae Add perf stat logging through ini setting
For better tracking of performance regressions on incoming changes, this
change adds a way to dump frametime to file by changing an ini config
option. This is intentionally hidden as its only useful to a small
number of individuals, and not really applicable to the general
userbase.
2019-08-14 21:17:27 -06:00
James Rowe
84b40f2da6
Merge pull request #4862 from leoetlino/exheader-override-fix
ncch_container: Assume override exheaders are decrypted
2019-08-14 09:31:54 -06:00
vvanelslande
1437c4a01a Add MinGW CMake option to disable DWARF debugging information
Also, I disabled it for the Linux MinGW build.
2019-08-14 10:29:04 -05:00
James Rowe
e18c7ee78f
Merge pull request #4602 from zhaowenlan1779/video-dump-reborn
Implement dumping audio+video to video files
2019-08-14 09:12:14 -06:00
zhupengfei
8202c55cd5
citra_qt: Add video dumping UI
QtConcurrent is used to stop the video dumping in another thread.
2019-08-14 09:27:05 +08:00
zhupengfei
526d53af99
citra: Add --dump-video argument 2019-08-14 09:27:05 +08:00
zhupengfei
399a660faa
core/dumping: Add FFmpeg implementation
Sorry for the large diff, the implementation is quite long, and I can't really find a good way to split it into commits.
2019-08-14 09:27:04 +08:00
zhupengfei
cf2c354fb9
CMake, CI: Add FFmpeg library dependency 2019-08-14 09:27:03 +08:00
Weiyi Wang
50ab002072
Guard unistd.h with MacOS only macro
Fix compile error on Windows caused by #4877 
Weird, I thought I saw this guard during the code review...
2019-08-13 15:42:22 -04:00
zhupengfei
0224ae13c4
video_core: Implement frame dumping
Two PBOs are used to speed up pixel copying process. To avoid getting the wrong speed/FPS, a new parameter is added to DrawScreens about whether to increase the frame count.
2019-08-13 19:28:04 +08:00
zhupengfei
778cc68114
renderer_base: Add prepare/cleanup function interface
This should be called by the video dumper backend to tell the video core to create necessary buffers/storage, etc.
2019-08-13 19:28:04 +08:00
zhupengfei
fff570012f
audio_core: Dump audio frames and samples
This is tested to work with all three current methods - HLE, LLE and multithread LLE.
2019-08-13 19:28:03 +08:00
zhupengfei
f2880b08d1
core: Add VideoDumper to System 2019-08-13 19:28:02 +08:00
zhupengfei
3f64aaabbd
core: Add video dumper interface
The VideoFrame is rotated while copying, to put the pixels in their correct positions (OpenGL seems to return the image in reverted order by default)
2019-08-13 19:28:02 +08:00
James Rowe
2f0ea48da4
Merge pull request #4878 from B3n30/citra_qt_all_regions_game_list
Citra_qt: Display all valid regions in game_list
2019-08-12 23:07:27 -06:00
James Rowe
bc945fefec
Merge pull request #4877 from B3n30/fix_user_dir_on_osx
citra_qt: on osx chdir to bundle dir to allow detection of user folder
2019-08-12 22:59:05 -06:00
tywald
aad8261534 Remove 'Accurate Geometry Shader' setting, default behavior is as it was turned on. 2019-08-12 02:55:14 +02:00
B3n30
e454f4c05b proper translation part2 2019-08-11 16:51:46 +02:00
B3n30
ec4fb81c4b proper translation 2019-08-11 16:22:43 +02:00
B3n30
69b32f174c clang-format 2019-08-11 14:44:31 +02:00
B3n30
848bfaf8cb Dispaly all valid game regions 2019-08-11 13:52:08 +02:00
B3n30
aabc2144bf Merge branch 'patch-1' of https://github.com/Jhynjhiruu/citra into Jhynjhiruu-patch-1 2019-08-11 13:21:16 +02:00
B3n30
3fb622e84f citrq_qt:main.cpp include unistd.h 2019-08-11 13:04:51 +02:00
B3n30
42d0654eec citra_qt: on osx chdir to bundle dir to allow detection of user folder 2019-08-11 12:28:07 +02:00
Weiyi Wang
d18d2a0a18 citra_qt/configure: move speed limiter to general (#4864)
The speed limiter being a frame limiter is an implmentation detail and can be changed in the future. What user care about is that it limit the emulation speed in genenral (not just graphics but also audio+input)
2019-08-10 11:13:17 +02:00
Hamish Milne
e3cefe5a5d Use a clear texture instead of texture 0 (solid black) in the GL rasterizer (#4844)
* Add OpenGLState.default_texture and set it to Clear in OpenGLRasterizer

* Localize the fix to the GL rasterizer

* Revert unwanted change
2019-08-10 11:05:00 +02:00
Tobias
d80edd99d7 Port yuzu-emu/yuzu#2457: "yuzu/{about_dialog, main}: Specify string conversions explicitly for SCM-related info" (#4774)
* yuzu/about_dialog: Specify string conversions explicitly

Specifies the conversions explicitly to avoid implicit conversions from
const char* to QString. This makes it easier to disable implicit QString
conversions in the future.

In this case, the implicit conversion was technically wrong as well. The
implicit conversion treats the input strings as ASCII characters. This
would result in an incorrect conversion being performed in the rare case
a branch name was created with a non-ASCII Unicode character, likely
resulting in junk being displayed.

* yuzu/main: Move window title updating logic to its own function

For similar reasons to the previous change, we move this to a single
function, so we don't need to duplicate the conversion logic in several
places within main.cpp.
2019-08-10 11:01:18 +02:00
Weiyi Wang
0269cb6e67 gl_rasterizer: decrease vertex buffer size (#4703)
Nvidia seems to have flickering issue with pokemon for some specific vertex buffer size. The root cause is still unknown. This is just a workaround
2019-08-10 10:51:24 +02:00
Weiyi Wang
88db89bf57 configure_dialog: reverse tab map to avoid logic based on user-facing/translatable text (#4866) 2019-08-10 09:00:56 +02:00
xperia64
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
3e9c2e77d9
Merge pull request #4859 from weihuoya/opengles
minor fix for opengles
2019-08-08 09:30:42 -04:00
Léo Lam
a2cde6e075 ncch_container: Assume override exheaders are decrypted
Require and assume that override exheaders are decrypted for
consistency with Luma's loader behaviour and to ensure consistent
behaviour regardless of whether the NCCH is marked as encrypted or not.
Currently, exheader overriding with an encrypted NCCH would cause
the title ID checking heuristic to mistakenly disable encryption,
which would then make exefs loading fail.
2019-08-07 18:41:37 +08:00
Tobias
76aec4d675 [Hotfix] Revert change in configure_dialog (#4865) 2019-07-29 12:33:10 +02:00
Weiyi Wang
216fc0b546
Merge pull request #4856 from FearlessTobi/port-2492
Port yuzu-emu/yuzu#2492: "yuzu/debugger: Specify string conversions explicitly"
2019-07-29 00:21:51 -04:00
Weiyi Wang
c9d4a13c5c
Merge pull request #4860 from FearlessTobi/port-2499
Port yuzu-emu/yuzu#2499: "yuzu/configuration: Specify string conversions explicitly"
2019-07-29 00:21:21 -04:00
weihuoya
899e3eb003 minor fix for opengles 2019-07-28 21:18:38 +08:00
Lioncash
4832b29d3d yuzu/debugger: Specify string conversions explicitly 2019-07-28 15:13:03 +02:00
Lioncash
64a154e890 yuzu/configuration: Specify string conversions explicitly 2019-07-28 15:08:54 +02:00
Lioncash
e58a805a22 yuzu/configuration/config: Specify string conversions explicitly
Allows the configuration code to build successfully with implicit string
conversions disabled.

Also makes default_hotkeys internally linked:
Given the array is a private static array, we can just make it
internally linked to hide it from external code. This also allows us to
remove an inclusion within the header.
2019-07-25 23:34:29 +02:00
Pengfei Zhu
45ff10c9a0
Merge pull request #4852 from rerpha/compiler_warnings_room_member
Added default case for GetErrorStr, removed useless const declaration in header
2019-07-25 08:41:03 +08:00
James Rowe
aef06df388
Merge pull request #4817 from leoetlino/ips-patch-later
ncch_container: Apply IPS patch after allocating .bss
2019-07-23 20:58:35 -06:00
Jack Harper
cb455fd410 Added default case for GetErrorStr, removed useless const declaration in header 2019-07-23 23:24:38 +01:00
Jack Harper
b065ac6995 Fixing some compiler warnings 2019-07-23 23:10:17 +01:00
Silent
4fd22c6a14
Qt: Fixed behaviour of buttons by connecting functors to correct signals
Following screens got fixes:
- Cheats
- Configure/Debug
- Configure/Input
- Chat Room
- Direct Connect
- Host
- Lobby List
2019-07-22 23:28:10 +02:00
Jhynjhiruu
e201d44aa9
It's supposed to be OR, not AND! 2019-07-21 11:31:07 +01:00
Jhynjhiruu
834a487388
Fix build issue
Co-Authored-By: Ben <bene_thomas@web.de>
2019-07-21 10:51:59 +01:00
Jhynjhiruu
3f49d9920c
Fix whitespace 2019-07-21 10:39:20 +01:00
Jhynjhiruu
17ba67c8c9
Remove magic number 2019-07-21 10:37:29 +01:00
Jhynjhiruu
fb16700fe5
Update smdh.cpp 2019-07-21 00:36:04 +01:00
Weiyi Wang
909d04ddea Remove unused stuff
Some unused variables are still kept in services, as they are parameters passed from the command buffer and might be used in the future
2019-07-16 20:27:03 -04:00
Pengfei Zhu
643a396383
Merge pull request #4841 from citra-emu/wwylele-patch-1
citra_qt/configure_motion_touch: fix slot name
2019-07-15 12:04:25 +08:00
Pengfei Zhu
fb8adcc08c
Merge pull request #4839 from wwylele/ipc-sign
ipc_helpers: silent signed comparison warning
2019-07-15 12:03:31 +08:00
Pengfei Zhu
c6705d6958
Merge pull request #4838 from wwylele/kernel-reorder
kernel: silence -Wreorder
2019-07-15 12:03:00 +08:00
Pengfei Zhu
8ece20007a
Merge pull request #4837 from wwylele/interpreter
interpreter: silent sign warnings
2019-07-15 12:02:24 +08:00
Weiyi Wang
1904da775e
citra_qt/configure_motion_touch: fix slot name
Fixes #4840, hopefully
2019-07-14 23:02:22 -04:00
Pengfei Zhu
1d6c6a37a1
Merge pull request #4836 from wwylele/chatroom-sign
citra_qt: silent sign comparison warning
2019-07-15 07:33:35 +08:00
Pengfei Zhu
f31dd06d91
Merge pull request #4835 from wwylele/profiler-par
citra_qt/profiler: add parenthesis to silent warning
2019-07-15 07:32:39 +08:00
Pengfei Zhu
b27a9e1710
Merge pull request #4834 from wwylele/cubeb-sign
audio_core/cubeb: silent signed/unsigned comparison warning
2019-07-15 07:31:47 +08:00
Pengfei Zhu
4fb80cb079
Merge pull request #4833 from wwylele/network-state
network/room_member: in-header function should be inline
2019-07-15 07:29:49 +08:00
Pengfei Zhu
6b916a22c2
Merge pull request #4831 from wwylele/multiplayer-Wreorder
citra_qt/multiplayer: silent Wreorder warnings
2019-07-15 07:26:04 +08:00
Weiyi Wang
fd3cfd0ae0 ipc_helpers: silent signed comparison warning
index is only used as positive index in arrays. The warning is in DEBUG_ASSERT_MSG(index == TotalSize() ...)
2019-07-14 14:52:17 -04:00
Weiyi Wang
6ee908dc84 kernel: silence -Wreorder 2019-07-14 14:44:17 -04:00
Weiyi Wang
24d2d6aa23 interpreter: silent sign warnings 2019-07-14 14:36:56 -04:00
Weiyi Wang
3dbd1fd4a8 audio_core/cubeb: silent signed/unsigned comparison warning 2019-07-14 14:30:24 -04:00
Weiyi Wang
f7607c820d citra_qt: silent sign comparison warning
🖕Qt
2019-07-14 14:21:02 -04:00
Weiyi Wang
3a567390ee citra_qt/profiler: add parenthesis to silent warning
This is indeed confusing
2019-07-14 14:14:34 -04:00
Weiyi Wang
2bbbfa86d8 network/room_member: in-header function should be inline
Otherwise produces multpile definition in translation units and generates unused warnings
2019-07-14 14:01:13 -04:00
Weiyi Wang
e689847b11 citra_qt/configure_system: fix string comparison (#4830)
country_names has type std::array<char*>. Pointer comparison to test empty string is wrong
2019-07-14 19:26:23 +02:00
Weiyi Wang
1c5a55b3cb citra_qt/camera: silent signed array index warning (#4829) 2019-07-14 19:26:06 +02:00
Weiyi Wang
9c2fe1eae8 citra_qt/multiplayer: silent Wreorder warnings 2019-07-14 11:04:52 -04:00
Weiyi Wang
32f832a81f
Merge pull request #4804 from FearlessTobi/port-2404
Port yuzu-emu/yuzu#2404: "CMakeLists: Ensure we specify Unicode as the codepage on Windows"
2019-07-13 22:28:12 -04:00
Weiyi Wang
4ec2b2d45a
Merge pull request #4820 from bunnei/android-fixes
common: Various fixes and minor improvements.
2019-07-13 22:26:10 -04:00
Weiyi Wang
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
Tobias
a546efad31
Port yuzu-emu/yuzu#2529: "yuzu/bootmanager: Minor interface tid… (#4794)
* yuzu/bootmanager: Remove unnecessary pointer casts

We can just invoke these functions by qualifying the object name before
the function.

* yuzu/bootmanager: unsigned -> u32

Same thing (for platforms we support), less reading.

* yuzu/bootmanager: Default EmuThread's destructor in the cpp file

This class contains non-trivial members, so we should default the
destructor's definition within the cpp file.

* yuzu/bootmanager: Treat the resolution factor as a u32

Treating it as a u16 can result in a sign-conversion warning when
performing arithmetic with it, as u16 promotes to an int when aritmetic
is performed on it, not unsigned int.

This also makes the interface more uniform, as the layout interface now
operates on u32 across the board.

* yuzu/bootmanager: Log out screenshot destination path

We can make this message more meaningful by indicating the location the
screenshot has been saved to. We can also log out whenever a screenshot
could not be saved (e.g. due to filesystem permissions or some other
reason).

* Fix compilation
2019-07-11 18:46:44 +02:00
Léo Lam
43d1ee6fb7 ncch_container: Apply IPS patch after allocating .bss
This allows an IPS patch to edit .bss. This is useful for game patches
that need to add code, as putting things in .bss allows adding new code
*without* editing .code and thus without having to relocate everything.
2019-07-10 12:57:30 +02:00
Pengfei Zhu
2f7a10eeaa
Merge pull request #4813 from leoetlino/larger-code
ncch_container: Add support for exheader replacement
2019-07-08 10:56:32 +08:00
bunnei
8eff0696fc
Merge pull request #4823 from FearlessTobi/port-2521
Port yuzu-emu/yuzu#2521: "yuzu/configuration: Make function naming consistent"
2019-07-07 21:45:45 -04:00
bunnei
bf8224213d android: common: file_util: Add user_path, ConfigDir, and CacheDir. 2019-07-07 11:01:13 -04:00
bunnei
1c61f066d1 android: common: logging: Add log output support. 2019-07-07 11:01:13 -04:00
bunnei
4d1de484c6 android: common: Add paths for Android SDCARD_DIR and EMU_DATA_DIR. 2019-07-07 11:01:13 -04:00
bunnei
dd31be16d9 input_common: main: Remove unnecessary HAVE_SDL2 check. 2019-07-07 11:01:00 -04:00
Léo Lam
bc30412484 ncch_container: Add support for exheader replacement
This adds support for custom exheaders, which brings feature parity
with Luma3DS's code patching functionality and allows for injecting
new game code.
2019-07-06 18:01:54 +02:00
Pengfei Zhu
5299678880
Merge pull request #4807 from FearlessTobi/port-2550
Port yuzu-emu/yuzu#2550: "yuzu/CMakeLists: Pass compilation flags that make it more difficult to cause bugs in Qt code"
2019-07-06 23:54:08 +08:00
Lioncash
ba6eb5285d yuzu/configuration: Make function naming consistent 2019-07-06 15:01:41 +02:00
Lioncash
1f2b44d24d CMakeLists: Ensure we specify Unicode as the codepage on Windows
Previously we were building with MBCS, which is pretty undesirable. We
want the application to be Unicode-aware in general.

Currently, we make the command line variant of yuzu use ANSI variants of
the non-standard getopt functions that we link in for Windows, given we
only have an ANSI option-set.

We should really replace getopt with a library that we make all build
types of yuzu link in, but this will have to do for the time being.
2019-07-06 14:04:18 +02:00
Weiyi Wang
99136ec592 gl_rasterizer: correct supress_mipmap_for_cube logic
The previous version would break when the state changes from (cube=true,mipmap=false) -> (cube=true,mipmap=true)
2019-07-06 08:03:01 -04:00
fearlessTobi
b3e819582e Fix compilation problems 2019-07-04 15:47:04 +02:00
Lioncash
e88a9ace8d yuzu/CMakeLists: Disable implicit QString->QUrl conversions
Enforces the use of the proper URL resolution functions. e.g.

url = some_local_path_string;

should actually be:

url = QUrl::fromLocalPath(some_local_path_string);

etc.

This makes it harder to cause bugs when operating with both strings and
URLs at the same time.
2019-07-04 15:39:00 +02:00
Lioncash
3d2e6165d3 yuzu/CMakeLists: Disable unsafe overloads of QProcess' start() function
Other overloads of start() are considerably much safer to use if we ever
need this in the future and need to pass arguments to the program, given
it contains separate parameters for the program path and the arguments
themselves, whereas this unsafe overload contains both as a single
string.

Given the alternatives are much safer, we can disable this.
2019-07-04 15:39:00 +02:00
Lioncash
587b68ed17 yuzu/CMakeLists: Disable implicit type narrowing in connect() calls
Prevents hard-to-diagnose bugs from potentially occurring and requires
any type narrowing to be explicitly performed by our code.
2019-07-04 15:39:00 +02:00
Weiyi Wang
cae913d3d5
Merge pull request #4760 from wwylele/csnd
Foundation for CSND
2019-06-30 23:24:27 -04:00
Léo Lam
70fe0d22de ncch_container: Fix code.bin replacement
Currently, having a replacement code.bin causes Citra to crash as it is
trying to load icon data from code.bin because of a typo. This commit
fixes that typo.
2019-06-30 11:48:28 +02:00
Weiyi Wang
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
Weiyi Wang
c81a96b0da
Merge pull request #4806 from FearlessTobi/port-2450
Port yuzu-emu/yuzu#2450: "CMakeLists: Explicitly specify -Wall for the non-MSVC case"
2019-06-25 21:25:37 -04: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
Pengfei Zhu
41f1963b9a
Merge pull request #4805 from FearlessTobi/port-2454
Port yuzu-emu/yuzu#2454 and yuzu-emu/yuzu#2460: Add build flags
2019-06-25 22:12:02 +08:00
Lioncash
d4eb63999a CMakeLists: Explicitly specify -Wall for the non-MSVC case
Ensures that -Wall is always active as a compilation flag.
2019-06-24 17:51:15 +02:00
Lioncash
8e79188ca5 CMakeLists: Specify /volatile:iso for MSVC
By default, MSVC doesn't use standards-compliant volatile semantics.
This makes it behave in a standards-compliant manner, making
expectations more uniform across compilers.
2019-06-24 17:48:45 +02:00
Lioncash
e860a0ae59 src/CMakeLists: Add /Zc:externConstexpr to the MSVC build flags
The C++ standard allows constexpr variables declared with the extern
keyword to have external linkage. Previously MSVC wasn't abiding by
this. This just makes the compiler more standards compliant during
builds.

Given we currently don't make use of anything that would break by this,
this is safe to enable.
2019-06-24 17:47:59 +02:00
Lioncash
7f053d0d45 src/CMakeLists: Vertically order compilation flags
Makes it much nicer to visually scan the options. This also starts the
flag descriptions from the same column for the same reason.
2019-06-24 17:46:54 +02:00
Lioncash
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
d483e556e3 gsp: remove unused GetFramebufferInfo 2019-06-23 14:25:28 -04:00
Weiyi Wang
8251de44cf GSP_GPU: move used_thread_ids into the class 2019-06-23 14:22:38 -04:00
bamsbamx
ac9755306c cpu_core: Separate cpu_core and memory
This makes cpu_core and memory being completely independent components inside the system, having a simpler and more understandable initialization process
The thread which casues page table changes in memory will be responsible to notify the cpu_core too
2019-06-22 18:21:50 +02:00
Weiyi Wang
bb776e25a9 pica: move global shader buffer state into Pica::State (#4796) 2019-06-20 00:39:08 +02:00
Tobias
a11bc03d4a
Port yuzu-emu/yuzu#2253: "Migrate off directly modifying CMAKE_* compilation-related flags directly" (#4714)
* CMakeLists: Move compilation flags into the src directory

We generally shouldn't be hijacking CMAKE_CXX_FLAGS, etc as a means to
append flags to the targets, since this adds the compilation flags to
everything, including our externals, which can result in weird issues
and makes the build hierarchy fragile.

Instead, we want to just apply these compilation flags to our targets,
and let those managing external libraries to properly specify their
compilation flags.

This also results in us not getting as many warnings, as we don't raise
the warning level on every external target.

* CMakeLists: Move off of modifying CMAKE_*-related flags

Modifying CMAKE_* related flags directly applies those changes to every
single CMake target. This includes even the targets we have in the
externals directory.

So, if we ever increased our warning levels, or enabled particular ones,
or enabled any other compilation setting, then this would apply to
externals as well, which is often not desirable.

This makes our compilation flag setup less error prone by only applying
our settings to our targets and leaving the externals alone entirely.

This also means we don't end up clobbering any provided flags on the
command line either, allowing users to specifically use the flags they
want.
2019-06-18 12:12:32 +02:00
Pengfei Zhu
73bf92fb3a
Merge pull request #4792 from FearlessTobi/port-2515
Port yuzu-emu/yuzu#2515: "yuzu/configuration/configure_graphics: Eliminate type narrowing in a connect call"
2019-06-10 22:03:32 +08:00
Lioncash
aa1b9a18c6 core/telemetry_session: Remove unnecessary web service nulling out in destructor
This will automatically occur when the backend instance goes out of
scope at the end of the destructor's execution.
2019-06-09 16:47:09 +02:00
Lioncash
0a82b00e35 core/telemetry_session: Remove usages of the global system accessor
Makes the dependency explicit in the TelemetrySession's interface
instead of making it a hidden dependency.

This also revealed a hidden issue with the way the telemetry session was
being initialized. It was attempting to retrieve the app loader and log
out title-specific information. However, this isn't always guaranteed to
be possible.

During the initialization phase, everything is being constructed. It
doesn't mean an actual title has been selected. This is what the Load()
function is for. This potentially results in dead code paths involving
the app loader. Instead, we explicitly add this information when we know
the app loader instance is available.
2019-06-09 16:34:46 +02:00
Lioncash
55ec0f5850 core/telemetry_session: Explicitly delete copy and move constructors
NonCopyable is misleading here. It also makes the class non-moveable as
well, so we can be explicit about this.
2019-06-09 16:26:15 +02:00
Lioncash
1eef771a10 yuzu/configuration/configure_graphics: Eliminate type narrowing in a connect call
A checkbox is able to be tri-state, giving it three possible activity
types, so in the connect call here, it would actually be truncating an
int into a bool.

Instead, we can just listen on the toggled() signal, which passes along
a bool, not an int.
2019-06-09 16:22:43 +02:00
Tobias
318095f9b9
Port yuzu-emu/yuzu#2249: "ipc_helpers: Allow pushing and popping floating-point values" (#4702)
Certain values that are passed through the IPC buffer are actually
floating point values, not solely integral values.
2019-06-09 16:03:22 +02:00
bunnei
56fc61a41f
Merge pull request #4783 from FearlessTobi/port-2517
Port yuzu-emu/yuzu#2517: "configure_hotkeys: Minor cleanup"
2019-06-08 00:12:34 -04:00
bunnei
23770848b4
Merge pull request #4789 from BreadFish64/opt_can_sub_rect
video_core: change "left + width" to "right" in CanSubRect
2019-06-08 00:12:08 -04:00
Tobias
ef73de9386
Port yuzu-emu/yuzu#2511: "common/file_util: Minor cleanup" (#4782)
* common/file_util: Make IOFile's WriteString take a std::string_view

We don't need to force the usage of a std::string here, and can instead
use a std::string_view, which allows writing out other forms of strings
(e.g. C-style strings) without any unnecessary heap allocations.

* common/file_util: Remove unnecessary c_str() calls

The file stream open functions have supported std::string overloads
since C++11, so we don't need to use c_str() here. Same behavior, less
code.

* common/file_util: Make ReadFileToString and WriteStringToFile consistent

Makes the parameter ordering consistent, and also makes the filename
parameter a std::string. A std::string would be constructed anyways with
the previous code, as IOFile's only constructor with a filepath is one
taking a std::string.

We can also make WriteStringToFile's string parameter utilize a
std::string_view for the string, making use of our previous changes to
IOFile.

* common/file_util: Remove duplicated documentation comments

These are already present within the header, so they don't need to be
repeated in the cpp file.

* common/file_util: Make GetCurrentDir() return a std::optional

nullptr was being returned in the error case, which, at a glance may
seem perfectly OK... until you realize that std::string has the
invariant that it may not be constructed from a null pointer. This
means that if this error case was ever hit, then the application would
most likely crash from a thrown exception in std::string's constructor.

Instead, we can change the function to return an optional value,
indicating if a failure occurred.

* common/file_util: Remove unnecessary return at end of void StripTailDirSlashes()

While we're at it, also invert the conditional into a guard clause.
2019-06-08 00:23:57 +02:00
BreadFish64
aaf496dec7 video_core: change "left + width" to "right" in CanSubRect
the constructed rectangle from GetSubRect already has the right info
2019-06-04 17:03:31 -05:00
Lioncash
9fc3e4576b configure_hotkeys: Remove unnecessary Settings::Apply() call
Nothing from the hotkeys dialog relies on this call occurring, and is
already called from the dialog that calls applyConfiguration().
2019-06-01 23:12:59 +02:00