Commit graph

32177 commits

Author SHA1 Message Date
Pokechu22
77189e74cd Implement Broadway GPIOs
SLOT_LED and the AVE ones are not implemented yet, but the other Broadway ones are.
2020-01-04 11:43:26 -08:00
Pokechu22
a695b05b21 Add support for std::optional to PointerWrap 2020-01-04 11:43:26 -08:00
Jordan Woyak
0e8d4cb6ac StringUtil: Make TryParse of floats handle comma and dot decimal separators. 2020-01-04 07:19:15 -06:00
Connor McLaughlin
04e9279f3d
Merge pull request #8536 from leoetlino/warnings
Fix several warnings
2020-01-04 21:24:27 +10:00
Léo Lam
ad75215bb0 Fix several warnings
A small, nonexhaustive set of warning fixes. The DiscIO Volume change
is a workaround for a GCC bug [1] that causes returning an unengaged
std::optional to emit annoying -Wmaybe-uninitialized warnings.
This last change alone fixes pages upon pages of warnings since
Volume.h is included from several files.

-Wstringop-truncation is another irrelevant warning for us, but
unfortunately there seems to be no way to disable it without
adding ugly pragmas wherever the warning appears.
2020-01-04 12:11:39 +01:00
Léo Lam
94c5460693
Merge pull request #8546 from jordan-woyak/default-num-mappings
HW: Add ticks to default mappings that are valid numeric literals.
2020-01-04 10:41:45 +01:00
Léo Lam
671defd8b9
Merge pull request #8543 from jordan-woyak/gcode-download-minor-fix
Core/GeckoCode: Fix DownloadCodes function assuming HTTP data is null terminated.
2020-01-04 10:18:44 +01:00
Jordan Woyak
2a9a04a1ec HW: Add ticks to default mappings that are valid numeric literals. 2020-01-03 22:08:49 -06:00
Jordan Woyak
b505004d61 Core/GeckoCode: Fix DownloadCodes function assuming HTTP data is null terminated. 2020-01-03 20:14:10 -06:00
Jordan Woyak
723115b7b6 WiimoteEmu: Allow Recenter button to adjust the pitch. 2020-01-03 18:08:45 -06:00
Jordan Woyak
72c2be52ed WiimoteEmu: Clean up ComplementaryFilter math. 2020-01-03 16:16:26 -06:00
Jordan Woyak
120c6dc850 DolphinQt: Fix accelerometer indicator math. 2020-01-03 12:34:11 -06:00
Jordan Woyak
540a3ce665 DolphinQt: Use FromQuaternion for a more accurate gyro indicator. 2020-01-02 15:46:18 -06:00
Jordan Woyak
8ab3694f51 Common: Add Matrix33::FromQuaternion. 2020-01-02 15:16:37 -06:00
Connor McLaughlin
a04d4982b1
Merge pull request #8544 from gtalusan/master
MacOS: Dispatch GL calls to main thread to prevent crashes on Catalina
2020-01-02 14:43:21 +10:00
George Talusan
b1a6cbc3b4 MacOS: Dispatch GL calls to main thread to prevent crashes on Catalina 2020-01-01 23:06:19 -05:00
Léo Lam
8c3d8e0811 DSPSpy: Remove unused stubs
The whole thing was commented out, and nothing is actually using it
2019-12-30 13:33:43 +01:00
Pierre Bourdon
7a6a4510f6
Merge pull request #8362 from GerbilSoft/feature/string-optimizations.2019-09-11
Various string and other optimizations
2019-12-30 10:59:14 +01:00
David Korth
11339d77c6 IsSettingSaveable.cpp: Significant code size reduction.
- Refactor the Config::System::Main check so we check system once,
  then we check for the section.

- Use an std::array<> instead of std::vector<>.

- Use an array of pointers instead of an array of ConfigLocation.
  The latter contains two std::string objects, whereas pointers
  are only 8 bytes (on 64-bit).

Code size comparison: (64-bit Linux, gcc-9.2.0, release build)

   text    data     bss     dec     hex filename
  16136       0      40   16176    3f30 IsSettingSaveable.cpp.o [before]
   3933     720       0    4653    122d IsSettingSaveable.cpp.o [after]
 -12203    +720     -40  -11523   -2d03 Difference
2019-12-29 23:45:02 -05:00
David Korth
f5fe692842 Use pre-increment for iterators instead of post-increment.
Pre-increment is more efficient, since it doesn't have to return the
old iterator.
2019-12-29 23:45:02 -05:00
David Korth
c2dd2e8a2e Use std::istringstream or std::ostringstream instead of std::stringstream where possible.
This removes std::iostream from the inheritance chain, which reduces
overhead slightly.
2019-12-29 23:45:02 -05:00
David Korth
6e549bb668 InputConfig::LoadConfig(): Convert num[] to an array of std::string_view.
NOTE: The explicit std::string() conversions later are needed. Otherwise,
gcc-9.2.0 throws all sorts of errors because it can't find a matching
operator+() function.
2019-12-29 23:45:02 -05:00
David Korth
a23b3d26f4 GLExtensions.cpp: Use arrays of const char *const instead of std::string.
The strings end up being copied, so we might as well initialize the
std::string in the unordered_map directly.
2019-12-29 23:45:02 -05:00
David Korth
05101b251c OGL/Render.cpp, InitDriverInfo(): Use std::string_view to eliminate string copies.
Consolidate the NVIDIA Tegra and non-Tegra checks into one branch.
2019-12-29 23:45:02 -05:00
David Korth
1d7f128693 GetSysMenuVersionString(): Use a char instead of std::string for the region letter.
Append the region letter after determining the version number.
2019-12-29 23:45:02 -05:00
David Korth
9f3b9acad9 PowerPC.cpp: No need to explicitly initialize ppcState.
"ppcState{}" is stored in the .data segment, which means the full ~4 MB
is stored in the executable.

"ppcState" is stored in the .bss segment, which means it only stores a
note that tells it to allocate and zero ~4 MB at runtime.
2019-12-29 23:45:02 -05:00
David Korth
afe2e7de0f VolumeVerifier.cpp: Verify that the string arrays are sorted before using std::binary_sort().
Debug builds only, since this is wrapped in assert().
2019-12-29 23:42:55 -05:00
David Korth
d660aba20f VolumeVerifier.cpp: Use arrays of string_view objects instead of strings.
string_view is a thin wrapper around C strings, so it's more efficient
for constant strings than C++ strings.

The unordered_set<> also adds extra runtime overhead. For small arrays,
a simple linear search works. For larger arrays, std::binary_search()
works better than linear but without the unordered_set<> overhead.

ShouldBeDualLayer(): Removed a duplicate "SK8X52" entry.
2019-12-29 23:42:55 -05:00
degasus
aad8aab698 Jit64: Disable the fast address check if fastmem is disabled.
This was a huge speedup with disabled fastmem, but it still requires the fastmem arena.
So let's disable it for now, even if this commit has a huge performance hit with disabled fastmem.
2019-12-28 13:41:57 +01:00
degasus
d735943aa2 Jit64: Use safe memory helpers for psq_l* without fastmem.
RMEM won't help if there is no fastmem arena, so let's use our memory helpers.
2019-12-28 13:41:57 +01:00
degasus
74cb692591 Jit64: Only activate dcbz fastpath with fastmem.
The code is safe not to create memory errors, but it accesses the fastmem area.
2019-12-28 13:41:57 +01:00
degasus
c6019f9814 PowerPC/Jit: Create fastmem arena on init. 2019-12-28 13:41:57 +01:00
degasus
ccbadf6e72 Core: Refactor fastmem arena construction.
This shall be called by the Jit, not by the emulation start itself.
2019-12-28 13:41:57 +01:00
degasus
9d88180df7 MMU: Use the Memory helpers for physical memory.
physical_base is a fastmem helper. Its access is unsafe and might not be available without a Jit.
2019-12-28 12:57:51 +01:00
Connor McLaughlin
084344aa5d
Merge pull request #8495 from stenzek/windows-arm64
Platform support for Windows-on-ARM64
2019-12-28 19:27:47 +10:00
Stenzek
d744c5a148 Compile fixes for Windows-on-ARM64 2019-12-28 19:20:41 +10:00
Stenzek
6fcb1c6c46 Add an ARM64 target to Visual Studio projects 2019-12-28 19:20:41 +10:00
Stenzek
5a65031611 Add a Win32 NoGUI platform and project 2019-12-28 08:56:27 +10:00
Anthony
0755f92979
Merge pull request #8534 from JosJuice/netplay-index-empty-strings
Properly check for missing netplay session name/region
2019-12-25 21:52:22 -08:00
Pierre Bourdon
0341288af2
Merge pull request #8525 from Techjar/axwii-ub
HW/DSPHLE: Fix struct aliasing undefined behavior in AX ucode
2019-12-24 08:35:28 +01:00
JosJuice
0c12dbe860 DolphinQt: Properly save netplay session settings when changed 2019-12-23 23:14:13 +01:00
JosJuice
8e278b8053 Check presence of name and region in NetPlayServer 2019-12-23 23:14:13 +01:00
JosJuice
2fa4ef729f DolphinQt: Check presence of region in NetPlaySetupDialog 2019-12-23 23:14:13 +01:00
Pierre Bourdon
02680ef7bb
Merge pull request #8533 from delroth/notice-logs
DualShockUDPClient: downgrade spurious NOTICE_LOGs
2019-12-23 18:50:03 +01:00
Pierre Bourdon
5c996dec89
DualShockUDPClient: downgrade spurious NOTICE_LOGs 2019-12-23 18:36:18 +01:00
Techjar
eae959238e HW/DSPHLE: Fix struct aliasing undefined behavior in AX ucode
This fixes Old AX Wii games having no audio when compiled under VS2019.
This also includes some minor code cleanup and moving a function to
avoid duplication.
2019-12-22 14:48:47 -05:00
Techjar
79092cdda0 Common/BitUtils: Implement BitCast(To|From)Array 2019-12-22 14:48:47 -05:00
S David
002761d949 Updating Readme.md; bumping req. MacOS version. 2019-12-22 14:33:58 -05:00
S David
21f42fafb7 MacOS: Fixes configuration hang; bump MacOS SDK.
Removed conditional use of std::mutex instead of std::shared_mutex on MacOS.

Because MacOS < 10.12 did not support std::shared_mutex, a previous commit
naïvely substituted std::mutex, which does not have the same behavior.

Reverses PR #8273, which substitues std::mutex for std::shared_mutex on
macOS, and results in several bugs that seem to only affect MacOS

- https://bugs.dolphin-emu.org/issues/11919
- https://bugs.dolphin-emu.org/issues/11842
- https://bugs.dolphin-emu.org/issues/11845

This change eliminates conditional code for MacOS in the core configuration
layer code and enables the use of modern language features that are more
secure and thread-safe.
2019-12-22 00:49:17 -05:00
Connor McLaughlin
8a50d9c540
Merge pull request #8522 from stenzek/fifoci-ffmpeg
FrameDump: Set first_frame if movie frame number <= 1
2019-12-22 12:11:03 +10:00