Commit Graph

29396 Commits

Author SHA1 Message Date
Mai
fede2ab9a9 Merge pull request #11828 from JosJuice/wia-convert-comments
DiscIO: Improve comments in WIARVZFileReader::Convert
2023-05-16 14:39:59 -04:00
1a2b48c204 StringUtil: Move ThousandSeparate() into Common namespace 2023-05-16 14:26:33 -04:00
954afd81ec StringUtil: Move CommandLineToUtf8Argv() into Common namespace 2023-05-16 14:23:21 -04:00
d368c989e7 StringUtil: Move GetEscapedHtml() into Common namespace 2023-05-16 14:21:19 -04:00
21df3ca572 StringUtil: Move IsPrintableCharacter() into Common namespace 2023-05-16 14:17:54 -04:00
a9f1edeb61 StringUtil: Move IsAlpha() into Common namespace 2023-05-16 14:11:02 -04:00
192081d2f1 DiscIO: Improve comments in WIARVZFileReader::Convert
Just some clarifications and typo fixes.
2023-05-16 18:58:07 +02:00
28b82ff8d8 IOS/EmulationKernel: Remove m_device_map_mutex, m_device_map is only modified in the constructor and destructor. 2023-05-15 20:54:21 +02:00
b8f3a47fba IOS: Move more emulation-only stuff from Kernel to EmulationKernel. 2023-05-15 20:41:49 +02:00
3d767edd8a IOS/FS: Split FSDevice into FSCore and FSDevice.
FSCore implements the core functionality that can also be used outside of emulation. FSDevice implements the IOS device and is only available during emulation.
2023-05-15 20:41:47 +02:00
6a339cbdb3 IOS/ES: Split ESDevice into ESCore and ESDevice.
ESCore implements the core functionality that can also be used outside of emulation. ESDevice implements the IOS device and is only available during emulation.
2023-05-15 20:41:05 +02:00
27d90a7d7b Merge pull request #11779 from ArcaneNibble/sd
Support Steam Deck controls natively through hidraw
2023-05-12 22:10:31 +02:00
f78e5f3c03 Merge pull request #11811 from JosJuice/revert-dpi-passthrough
Revert "DolphinQt: use default dpi rounding mode (passthrough)"
2023-05-11 23:00:00 +02:00
c9c2e17e5a Added DoFrame to AchievementManager
DoFrame is a function called every frame by the emulator so that rcheevos can be properly updated and processed. It requires a memory peeker and an event handler to be passed in; the memory peeker is called repeatedly each frame to measure what's in memory and compare to achievement definitions, and any events thrown by that comparison are sent to the event handler.

Also, DoFrame checks for the current system time to determine when to ping rich presence. Rich Presence on the RetroAchievements website updates every two minutes, so if two minutes have elapsed since the previous ping, another ping is sent.
2023-05-11 07:56:12 -04:00
22ee729055 Added GenerateRichPresence to AchievementManager
GenerateRichPresence calls rc_runtime_get_richpresence in rhceevos on the achievement runtime to get the current Rich Presence string, a description of the player's current in-game state based on its memory as fed into a custom-developed script downloaded via FetchGameData. This gets passed into PingRichPresence, but is separated into its own method so it can be used elsewhere locally.
2023-05-11 07:56:12 -04:00
1b880564cb Added MemoryPeeker to AchievementManager
MemoryPeeker is a function passed by pointer into rcheevos DoFrame functionality that forms the lynchpin of the rcheevos runtime - it provides the interface by which rcheevos accesses memory and determines if the fields provided by achievement, leaderboard, and rich presence definitions are meeting the criteria needed.
2023-05-11 07:56:12 -04:00
ed121a4033 Added AchievementEventHandler to AchievementManager
AchievementEventHandler simply checks which kind of event is triggered and calls the appropriate function. Its primary purpose is as a function to be pointed to.
2023-05-11 07:56:11 -04:00
a48fab0abf Added HandleLeaderboardTriggeredEvent to AchievementManager
HandleLeaderboardTriggeredEvent processes a leaderboard event and asynchronizes via the work queue a synchronous call to SubmitLeaderboard.
2023-05-11 07:56:11 -04:00
637ca82fc1 Added HandleAchievementTriggeredEvent to AchievementManager
HandleAchievementTriggeredEvent is an asynchronous method that processes an event and places a synchronous AwardAchievement call on the work queue. In the process, it also updates the unlock map and makes the ActivateDeactivateAchievement call to determine and adjust the achievement's current active state.
2023-05-11 07:56:11 -04:00
66b8731bdb Added PingRichPresence to AchievementManager
PingRichPresence makes a "ping" API request to the RetroAchievements website with the provided RichPresence string parameter. While there has been talk about tying ping in with session, in its current state the primary purpose of ping is to send the player's Rich Presence to the website.
2023-05-11 07:56:11 -04:00
a383e0cfd5 UICommon:DiscordPresence: Use GameTDB covers for RPC 2023-05-10 23:55:34 -04:00
69014e1359 Added SubmitLeaderboard to AchievementManager
SubmitLeaderboard submits the player's score/time to a leaderboard on the website via an API call.
2023-05-10 21:15:40 -04:00
9a57216fd0 Added AwardAchievement to AchievementManager
AwardAchievement performs the API call to notify the site that an achievement has been unlocked. As one of the parameters is the game hash (something I overlooked previously; I thought it was the game ID) this change also moves the game hash into a member field.
2023-05-10 21:15:40 -04:00
ab98db445d Common/MemArenaAndroid: Keep fastmem region mapped. 2023-05-11 03:01:05 +02:00
R
c5d2ad99d2 Support Steam Deck controls directly through hidraw
This reads Steam Deck controls bypassing Steam Input. This allows for access to
motion controls as well as independent access to thumb sticks, trackpads, and
back grip buttons.
2023-05-10 13:28:32 +01:00
8c67083c87 Merge pull request #11813 from lioncash/insert
PPCSymbolDB: Use emplace() where applicable
2023-05-09 18:48:06 +02:00
c766b2f8a2 Merge pull request #11815 from lioncash/ppcinc
PPCTables: Remove unnecessary includes
2023-05-09 18:45:45 +02:00
82f70cdf94 ControllerInterface/Android: Add some missing DeleteLocalRef calls 2023-05-07 18:44:43 +02:00
24a697514e ControllerInterface/Android: Use InputEvent.getDeviceId
Instead of InputEvent.getDevice followed by InputDevice.getId.
Should hopefully fix https://bugs.dolphin-emu.org/issues/13237,
while also being simpler.
2023-05-07 18:40:28 +02:00
810eb70f0e DolphinAnalytics: Add READS_BOUNDING_BOX game quirk 2023-05-06 17:18:17 -07:00
2561028b91 PPCTables: Remove unnecessary includes
Gets rid of a lingering dependency on the interpreter in common code and
a bunch of indirect inclusions.
2023-05-03 21:47:10 -04:00
2319210d85 Merge pull request #11810 from lioncash/jitreg
Common/JitRegister: Move interface into Common namespace
2023-05-03 17:43:01 +02:00
15d1ae3a8a SymbolDB: Add constructors to Symbol
Allows for much more convenient in-place construction.
2023-05-02 16:04:47 -04:00
a14d8003f4 PPCSymbolDB: Use emplace() where applicable
Avoids default constructing an entry in the map that just gets
immediately overwritten. Also gets rid of some redundant map lookups.
2023-05-02 15:51:52 -04:00
56775e4901 JitInterface: Remove global system accessor
We can use JitInterface's system member variable to avoid needing this
2023-05-02 15:21:58 -04:00
Mai
0b9b09ad32 Merge pull request #11796 from sepalani/gecko-sort
Gecko/ARCode: Add sort by enabled state
2023-05-02 14:59:08 -04:00
2635595737 ARCode: Add sort by enabled state 2023-05-02 22:24:21 +04:00
81ec90be9c GeckoCode: Add sort by enabled state 2023-05-02 22:23:43 +04:00
20e14aab06 Revert "DolphinQt: use default dpi rounding mode (passthrough)"
This reverts commit cfe3683668.

On Windows systems with 125% DPI scaling, this was causing both icons
and the OSD to be upscaled by 25% using nearest neighbor scaling, which
looks really bad. shuffle2 has said that this will be improved later,
but we should revert it for now for the sake of the upcoming beta build.
2023-05-02 20:18:56 +02:00
4db186f9ff Common/JitRegister: Move interface into Common namespace
Makes the namespace consistent with other common utilities.
2023-05-02 12:00:05 -04:00
9b1d657614 Qt: Prevent savestate load/save on empty filename 2023-05-01 19:57:58 -04:00
0eeeac2487 Merge pull request #11736 from noahpistilli/get-scheduler-stat
IOS/Network/KD: Implement GetSchedulerStat
2023-05-01 01:19:11 +01:00
2e39c79984 Merge pull request #11805 from Dentomologist/remove_graphicswidget
Qt: Remove GraphicsWidget class
2023-04-30 02:15:30 +01:00
3c9162f35e Merge pull request #11807 from brad0/openbsd_thread_cpp_build_fix
Fix building on OpenBSD
2023-04-30 02:14:41 +01:00
f36e05ad3e Merge pull request #11546 from deReeperJosh/disneyinfinitybase
Feature: Emulate Infinity Base
2023-04-30 02:13:39 +01:00
29a8226ac5 Fix building on OpenBSD
86c1f6e1e7 introduced code that had not
been build tested on OpenBSD.

https://bugs.dolphin-emu.org/issues/13241
2023-04-29 19:21:48 -04:00
f92dde26a3 CMake: Fix storyboard copying 2023-04-29 16:10:38 -05:00
5ca0430cb2 Qt: Remove GraphicsWidget class
The old tooltip description box used GraphicsWidget to provide shared
code to the Graphics config panes for adding descriptions to their
settings.

The description box has been replaced by BalloonTips and serves no
further purpose, so remove it and have the Graphics panes derive from
QWidget instead.
2023-04-29 14:10:37 -07:00
Mai
d95a85212f Merge pull request #11793 from brad0/openbsd_iconv_build_fix
Fix build of iconv code on OpenBSD
2023-04-29 17:08:36 -04:00
57a1339cfb Qt: Rename GraphicsInteger to ConfigInteger
GraphicsInteger is used by the panes in the Graphics config window to
create spin boxes that change their associated config setting, and
update their own state when something else changes the config setting.

Despite its current name nothing about this class is particular to the
Graphics window, so renaming it to ConfigInteger better reflects its
purpose. This should also make it less confusing when ConfigIntegers
are added to other config windows.
2023-04-29 11:09:59 -07:00