Commit Graph

33681 Commits

Author SHA1 Message Date
Markus Wick 1d489b3fd5
Merge pull request #9347 from JosJuice/fpr-utilization
Jit64: Fix FPURegCache::GetRegUtilization
2020-12-21 18:37:03 +01:00
JosJuice 9460467e7c Jit64: Fix FPURegCache::GetRegUtilization
This performance bug was probably a simple copy-paste error.
(The function was identical to GPRRegCache::GetRegUtilization.)
2020-12-21 18:02:43 +01:00
LC 4c8ccc63b5
Merge pull request #9345 from MerryMage/analytics
Analytics: Add rarer OSes to analytics
2020-12-20 18:55:34 -05:00
LC 7c81f0256c
Merge pull request #9344 from MerryMage/HW_PHYSMEM64
MemoryUtil: Use HW_PHYSMEM64 sysctl in MemPhysical
2020-12-20 18:53:46 -05:00
MerryMage d109451ad5 Analytics: Add rarer OSes to analytics 2020-12-20 22:32:07 +00:00
MerryMage 29fceeb37f MemoryUtil: Use HW_PHYSMEM64 sysctl in MemPhysical
HW_PHYSMEM is deprecated on OpenBSD and only supplies a 32-bit value on NetBSD
2020-12-20 22:25:36 +00:00
JosJuice c582fb098d
Merge pull request #9342 from lioncash/system
Core: Add initial System class
2020-12-20 13:57:15 +01:00
Lioncash 142406f337 Core: Add initial System class
Introduces the system class that will eventually contain all relevant
system state, as opposed to everything being distributed all over the
place as global variables.

Throughout the codebase we have code that from its interface-view, does
not actually require its dependencies to be described in the interface,
and we routinely run into issues with initialization where we sometimes
make use of a facility before it's been initialized, which leads to
annoying to debug cases, because the reader needs to run through the
codebase and see what order things get initialized in, and how they're
being used. This is particularly a frequent issue in the video code.

Further, we also have a lot of code that makes use of file-scope
variables (many of which are non-trivial), which must all be default
initialized before the application can actually enter main(). While this
may not be a huge issue in itself, some of these are allocating, which
means that the application may need to use memory that it otherwise
wouldn't need to (e.g. when a game isn't running, this excess memory is
being used).

Being able to wrap all these subsystems into objects would be nicer,
since they can be constructed when they're actually needed. Them being
objects also means we can better express dependencies on subsystems as
types directly in the interface, making them explicit to the reader
instead of a change randomly blowing up, said reader inspecting it, and finding
out that something needed to be initialized beforehand. With the global
turned into a function parameter, the dependency is explicit and they
know just by reading it, that the given subsystem needs to be in a valid
state before calling the function.

For a prior example of an emulator that has moved to this model, see
yuzu, which has been migrated off of global variables all over the place
and replaced with a system instance (which has now reached the stage,
where the singleton can be removed).
2020-12-19 23:22:06 -05:00
LC 5493a86086
Merge pull request #9330 from leoetlino/tapserver-define
EXI_Device: Always define EXIDEVICE_ETHTAPSERVER for consistency
2020-12-19 21:46:01 -05:00
LC 0315ca5e37
Merge pull request #9332 from leoetlino/warning-fixes
Core: Fix various warnings
2020-12-19 21:45:21 -05:00
LC 2097de603c
Merge pull request #9339 from AdmiralCurtiss/utf8-libpng
Common: Write PNGs in two steps to allow Unicode target paths.
2020-12-19 21:43:05 -05:00
LC 331738c882
Merge pull request #9337 from Avasam/game-settings-pitfall-the-lost-expedition-the-big-adventure
GameSettings: Set Safe Texture Cache to Safe for Pitfall: The Lost Ex…
2020-12-19 21:31:51 -05:00
LC c08fab6f82
Merge pull request #9340 from AdmiralCurtiss/truncated-shadercache
Common/LinearDiskCache: Handle truncated shadercache files.
2020-12-19 21:30:40 -05:00
Admiral H. Curtiss 5bbd5fce2f Common: Write PNGs in two steps to allow Unicode target paths. 2020-12-20 03:30:17 +01:00
Admiral H. Curtiss f5170dc69b Common/LinearDiskCache: Handle truncated shadercache files. 2020-12-19 19:09:33 +01:00
Admiral H. Curtiss e91a347a07 Common/LinearDiskCache: Use unique_ptr instead of new/delete. 2020-12-19 19:09:33 +01:00
LC eb6fd56c1d
Merge pull request #9338 from iwubcode/tooltip-fix-gameid-text
DolphinQt: Fix all instances of <gameid> in AdvancedWidget
2020-12-19 05:12:51 -05:00
iwubcode e55342ae88 DolphinQt: Fix all instances of <gameid> in AdvancedWidget to use the appropriate html code instead 2020-12-18 22:50:06 -06:00
Avasam 90ae9b81ac GameSettings: Set Safe Texture Cache for Pitfall: The Lost Expedition and Pitfall: The Big Adventure
1024 is not enough. 2048 works just fine.
Fixes stuttering Atari 2600 emulation https://bugs.dolphin-emu.org/issues/12347
2020-12-17 18:13:05 -05:00
LC ac25256156
Merge pull request #9331 from leoetlino/deprecation-fixes
Qt: Fix deprecated use of MidButton
2020-12-16 22:43:39 -05:00
JosJuice 5eb64ccc51 Translation resources sync with Transifex 2020-12-16 23:06:40 +01:00
Léo Lam 0ad2f3da45
Core: Remove ImageWrite and get rid of -Wmissing-declarations warnings 2020-12-16 16:04:19 +01:00
Léo Lam eafe005672
Fix -Wclass-memaccess warnings
We want to clear/memset the padding bytes, not just each member,
so using assignment or {} initialization is not an option.

To silence the warnings, cast the object pointer to u8* (which is not
undefined behavior) to make it explicit to the compiler that we want
to fill the object representation.
2020-12-16 15:37:43 +01:00
Léo Lam 6018525992
Qt: Fix deprecated use of MidButton
MidButton has been deprecated since Qt 4.7. The replacement is
MiddleButton.
2020-12-16 14:45:11 +01:00
Léo Lam efdb620783
Qt/Config: Remove unused includes 2020-12-16 14:43:26 +01:00
Léo Lam c59372dbb0
EXI_Device: Always define EXIDEVICE_ETHTAPSERVER for consistency
This keeps the enum values consistent across platforms in case new
entries are added after EXIDEVICE_ETHTAPSERVER.
2020-12-15 20:49:29 +01:00
JMC47 5a5c22dc6c
Merge pull request #9329 from smurf3tte/ffcc
GameSettings: Disable "Store EFB Copies to Texture Only" for Final Fantasy Crystal Chronicles
2020-12-15 04:25:19 -05:00
smurf3tte b7f6335ae3 GameSettings: Disable "Store EFB Copies to Texture Only" for Final Fantasy Crystal Chronicles
This fixes the crash at Goblin Wall: https://bugs.dolphin-emu.org/issues/9915

A patch (for the US release only) that fixes the game's buffer overrun bug is included as an alternative with lower performance cost. It is disabled by default.
2020-12-14 22:03:08 -08:00
Léo Lam 2615da820d
Merge pull request #9157 from jordan-woyak/wm-emu-tilt-wrap-around
WiimoteEmu: Allow tilt to wrap around and simulate full 360 degree rotations.
2020-12-15 03:14:14 +01:00
Léo Lam 2feb5f204a
Merge pull request #9117 from fuzziqersoftware/add-tapserver-bba
Add tapserver network interface for macOS since TunTap is now unmaintained
2020-12-15 03:08:26 +01:00
Jordan Woyak 4bb0a885d0 WiimoteEmu/DolphinQt: Fix tilt indicator for wrapped around angles. 2020-12-14 20:02:49 -06:00
Martin Michelsen a9486d087f
Add tap-like fake Ethernet network interface for macOS
TunTap has recently become unmaintained, and it seems Apple wants developers to move away from kexts in general. TunTap currently takes some finagling to work on Catalina, and it may not work at all on Big Sur, necessitating a non-kext-based solution. Fortunately, fake Ethernet devices were introduced in Sierra and can be used similarly to tap adapters. This commit adds a new type of BBA interface implementation which uses fake Ethernet devices via tapserver (https://github.com/fuzziqersoftware/tapserver) to communicate with the host. This implementation was tested with PSO Episodes I & II, which can successfully connect to a private server running locally.

This implementation is only available on macOS, since that's the only place it's needed - Windows/Linux/Unix are unaffected by TunTap being deprecated.
2020-12-15 03:01:04 +01:00
Jordan Woyak fffd005178 WiimoteEmu: Allow tilt to wrap around and simulate full 360 degree rotations. 2020-12-14 19:43:28 -06:00
Léo Lam dbf7c40886
Merge pull request #9309 from devnexen/netbsd_port
NetBSD support proposal.
2020-12-15 02:41:05 +01:00
David Carlier 2c355b81f2
Add NetBSD support 2020-12-15 02:34:25 +01:00
Léo Lam ded7d1b23d
Merge pull request #9285 from AdmiralCurtiss/libpng-1.6.37
Update bundled libpng to version 1.6.37 (from 1.6.29)
2020-12-15 02:24:16 +01:00
Léo Lam ed1564515b
Merge pull request #9326 from Subject38/wiimote_deadlock
InputCommon: Fix callback dispatch deadlock
2020-12-15 01:16:59 +01:00
Léo Lam 2c2ec16b53
Merge pull request #9320 from JosJuice/remove-patch-crash
DolphinQt: Fix crash after removing extra patch line
2020-12-15 00:01:07 +01:00
Léo Lam 214ea8ff18
Merge pull request #9328 from AdmiralCurtiss/memory-view-crash
Core/AddressSpace: Return null accessors when no game is running to prevent out-of-bounds memory accesses.
2020-12-14 03:18:45 +01:00
Admiral H. Curtiss 668b8d60c8 Core/AddressSpace: Return null accessors when no game is running to prevent out-of-bounds memory accesses. 2020-12-13 06:21:07 +01:00
Léo Lam 3634508e46
Merge pull request #9311 from JosJuice/config-get-fast-2
Add caching to Config::Info
2020-12-13 03:55:39 +01:00
Admiral H. Curtiss 3d8736f9d7 Update bundled libpng to version 1.6.37 2020-12-13 02:50:12 +01:00
seth 00ec25d520 InputCommon: Fix callback dispatch deadlock
Make sure m_is_populating_devices is true when a WM_INPUT_DEVICE_CHANGE
event is received directly on the ciface thread, so that callbacks do
not occur while removing devices. This breaks a hold-and-wait deadlock
between the ciface thread and the CPU thread when using emulated
Wiimotes.

Co-authored-by: brainleq <brainleq@users.noreply.github.com>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
2020-12-13 00:30:27 +00:00
LC d312495934
Merge pull request #9322 from jordan-woyak/fix-real-wm-delay
HW/WiimoteReal: Drop stale data reports.
2020-12-12 16:08:50 -05:00
Jordan Woyak 0fa6bde374 HW/WiimoteReal: Drop stale data reports to prevent read queue from filling up and causing input delays. 2020-12-12 12:18:10 -06:00
JosJuice fa0e5e36c7
Merge pull request #9316 from smurf3tte/monsterhigh_gs
GameSettings: Add patch for Monster High: Ghoul Spirit (SAOE78/SAOEVZ)
2020-12-12 13:59:18 +01:00
JosJuice d8744e6db8 Add caching to Config::Info
The goal of this change is to make Config::Get(const Info<T>&)
fast so that we can use it in hot paths.
2020-12-12 13:58:50 +01:00
JosJuice 3c6ad495b4 DolphinQt: Fix crash after removing extra patch line 2020-12-11 22:13:10 +01:00
smurf3tte 91187905e8 GameSettings: Add patch for Monster High: Ghoul Spirit (SAOE78/SAOEVZ)
The first call to GXCopyDisp() corrupts game data, but on real hardware it isn't observed thanks to the data cache. Skipping the call works too, preventing a crash on boot.

This patch is enabled by default.
2020-12-11 12:22:13 -08:00
JosJuice 633ab2dd7c Store pointers in Config::SYSCONF_SETTINGS
Not strictly necessary, but it reduces memory usage a little,
and the next commit will make copying an Info object slower.
2020-12-11 19:54:16 +01:00