Commit Graph

35835 Commits

Author SHA1 Message Date
d109451ad5 Analytics: Add rarer OSes to analytics 2020-12-20 22:32:07 +00:00
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
c582fb098d Merge pull request #9342 from lioncash/system
Core: Add initial System class
2020-12-20 13:57:15 +01:00
399ede37a6 Android: Catch all exceptions in ContentHandler 2020-12-20 13:24:54 +01:00
ae8de35105 Android: Use storage access framework for game list 2020-12-20 13:24:54 +01:00
2126f62111 Android: Add content provider support to File::ScanDirectoryTree 2020-12-20 13:24:54 +01:00
525268f043 Android: Fix opening games with extensionless URI 2020-12-20 13:24:54 +01:00
e60665da94 Android: Use storage access framework for picking single games 2020-12-20 13:24:54 +01:00
a7c05d7e84 Android: Add content provider support to File::FileInfo 2020-12-20 13:24:54 +01:00
99ffee9a0a Android: Add content provider support to File::OpenFStream 2020-12-20 13:24:54 +01:00
64afe97491 Android: Convert ISOPaths to INI settings 2020-12-20 13:24:54 +01:00
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
5bbd5fce2f Common: Write PNGs in two steps to allow Unicode target paths. 2020-12-20 03:30:17 +01:00
f5170dc69b Common/LinearDiskCache: Handle truncated shadercache files. 2020-12-19 19:09:33 +01:00
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
e55342ae88 DolphinQt: Fix all instances of <gameid> in AdvancedWidget to use the appropriate html code instead 2020-12-18 22:50:06 -06:00
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
5eb64ccc51 Translation resources sync with Transifex 2020-12-16 23:06:40 +01:00
0ad2f3da45 Core: Remove ImageWrite and get rid of -Wmissing-declarations warnings 2020-12-16 16:04:19 +01:00
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
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
efdb620783 Qt/Config: Remove unused includes 2020-12-16 14:43:26 +01:00
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
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
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
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
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
4bb0a885d0 WiimoteEmu/DolphinQt: Fix tilt indicator for wrapped around angles. 2020-12-14 20:02:49 -06:00
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
fffd005178 WiimoteEmu: Allow tilt to wrap around and simulate full 360 degree rotations. 2020-12-14 19:43:28 -06:00
dbf7c40886 Merge pull request #9309 from devnexen/netbsd_port
NetBSD support proposal.
2020-12-15 02:41:05 +01:00
2c355b81f2 Add NetBSD support 2020-12-15 02:34:25 +01:00
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
ed1564515b Merge pull request #9326 from Subject38/wiimote_deadlock
InputCommon: Fix callback dispatch deadlock
2020-12-15 01:16:59 +01:00
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
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
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
3634508e46 Merge pull request #9311 from JosJuice/config-get-fast-2
Add caching to Config::Info
2020-12-13 03:55:39 +01:00
3d8736f9d7 Update bundled libpng to version 1.6.37 2020-12-13 02:50:12 +01:00
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
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
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