Commit Graph
391 Commits
Author SHA1 Message Date
Sketch ebb6255441 Display Taiwanese covers for Taiwanese games 2024-08-01 14:42:52 -04:00
JosJuice 962230f91e Core: Store current state in less places
Core::GetState reads from four different pieces of state: s_is_stopping,
s_hardware_initialized, s_is_booting, and CPUManager::IsStepping.
I'm keeping that last one as is for now because there's code in Dolphin
that sets it directly, but we can unify the other three to make things
easier to reason about.

This commit also gets rid of s_is_started. This was previously used in
Core::IsRunningAndStarted to ensure true wouldn't be returned until the
CPU thread was started, but it wasn't used in Core::GetState, so
Core::GetState would happily return State::Running after we had
initialized the hardware but before we had initialized the CPU thread.
As far as I know, there are no callers that have any real need to know
whether the boot process is currently initializing the hardware or the
CPU thread. Perhaps once upon a time there was a desire to make the
apploader debuggable, but a long time has passed without anyone stepping
up to implement it, and the way CBoot::RunApploader is implemented makes
it rather difficult. So this commit makes all the functions in Core.cpp
consider the core to still be starting until the CPU thread is started.
2024-06-21 20:46:44 +02:00
JosJuice 22aa88109f Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined
This lets us reduce the number of USE_RETRO_ACHIEVEMENTS ifdefs in the
code base, reducing visual clutter. In particular, needing an ifdef for
each call to IsHardcodeModeActive was annoying to me. This also reduces
the risk that someone writes code that accidentally fails to compile
with USE_RETRO_ACHIEVEMENTS disabled.

We could cut down on ifdefs even further by making HardcodeWarningWidget
always exist, but that would result in non-trivial code ending up in the
binary even with USE_RETRO_ACHIEVEMENTS disabled, so I'm leaving it out
of this PR. It's not a lot of code though, so I might end up revisiting
it at some point.
2024-06-06 08:26:20 +02:00
mitaclaw 0df401b164 Core::IsRunning: Avoid Global System Accessor 2024-05-01 08:54:17 -07:00
LillyJadeKatrin b05028da1f Added Change Media client functionality to AchievementMananger
The client can handle media changes natively so disabling can take place internally. This code uses the same external calls to load data, but will call either BeginLoad or BeginChangeMedia based on whether any media is already loaded.
Due to the client's handling of media changes (it simply disables hardcore if an unknown media is detected) the existing functionality for "disabling" the achievements is no longer necessary and can be deleted.
2024-05-01 07:04:32 -04:00
mitaclaw b52a08d533 DolphinQt: A Ubiquitous Signal For When Symbols Change
There were three distinct mechanisms for signaling symbol changes in DolphinQt: `Host::NotifyMapLoaded`, `MenuBar::NotifySymbolsUpdated`, and `CodeViewWidget::SymbolsChanged`. The behavior of these signals has been consolidated into the new `Host::PPCSymbolsUpdated` signal, which can be emitted from anywhere in DolphinQt to properly update symbols everywhere in DolphinQt.
2024-03-28 09:57:22 -07:00
mitaclaw f09b71582e Core: Avoid (Some) Global System Accessor 2024-03-18 01:35:42 -07:00
mitaclaw c24fa93965 PPCSymbolDB: Move instance to PowerPCManager 2024-03-13 22:58:14 -07:00
LillyJadeKatrin 394af40db5 Improved achievements disabled messaging
Most obviously, there is no longer a warning message to the player in the achievement window that achievements are disabled if a game is not currently running.
2024-02-15 16:33:18 -05:00
Admiral H. Curtiss 951be30891 Core: Fix booting titles from NAND. 2024-02-01 19:50:20 +01:00
Admiral H. Curtiss 14121c5504 Core/ConfigManager: Remove dead bAutomaticStart flag. 2024-01-31 22:53:43 +01:00
Admiral H. Curtiss 9a3e770c23 Migrate SConfig::bWii to System. 2024-01-31 12:54:07 +01:00
Admiral H. Curtiss 8d515d407c Migrate SConfig::m_is_mios to System. 2024-01-30 03:45:17 +01:00
Lioncash e55f9ed102 AchievementManager: Make GetInstance() return a reference
The internal static member will always have a valid lifetime. Makes this
consistent with other instance based objects in our code.
2023-12-11 13:36:39 -05:00
LillyJadeKatrin c8d8ca2ff7 Added Disabled flag to Achievement Manager
The Disabled state sits between Game Closed and completely Shutdown - stronger than the former, as it refuses to let a game be opened again until AchievementManager is restored (which only happens upon a fresh core boot) but it isn't completely shut down and will still allow the player to be logged in and access the achievement settings and their (global) achievement header.
2023-12-05 16:17:17 -05:00
Sketch f9f8e94e30 Add default support for WiiLink + configuration 2023-06-25 14:57:15 -04:00
Admiral H. Curtiss 4efa10c170 Merge pull request #11751 from noahpistilli/discord-rpc
UICommon/DiscordPresence: Use GameTDB covers for RPC
2023-05-19 19:35:17 +02:00
Admiral H. Curtiss 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
Sketch a383e0cfd5 UICommon:DiscordPresence: Use GameTDB covers for RPC 2023-05-10 23:55:34 -04:00
Lioncash e4caace6bb Common/IniFile: Move interface into Common namespace
Gets this out of the global namespace and into the Common namespace
2023-04-13 10:19:28 -04:00
Admiral H. Curtiss eb25c46a91 HW/DVDInterface: Refactor to class. 2023-03-10 18:12:59 +01:00
JosJuice 7cecb28bdf DolphinQt: Properly lock CPU before accessing emulated memory
This fixes a problem I was having where using frame advance with the
debugger open would frequently cause panic alerts about invalid addresses
due to the CPU thread changing MSR.DR while the host thread was trying
to access memory.

To aid in tracking down all the places where we weren't properly locking
the CPU, I've created a new type (in Core.h) that you have to pass as a
reference or pointer to functions that require running as the CPU thread.
2023-02-12 11:27:50 +01:00
MayImilae 37859ec1da Cleanup: Remove CDUtils
This is a cleaning followup for #11456.
2023-01-28 03:50:57 -08:00
Admiral H. Curtiss 7fd552081f HLE function hooking: Avoid ppcState global. 2023-01-27 15:22:46 +01:00
Simonx22 df6f070a55 Core: Remove FPS, VPS and speed percentage from window title 2023-01-23 21:32:50 +01:00
Admiral H. Curtiss 2081e2f2a1 Config: Move ToGameCubeRegion(), GetDirectoryForRegion(), and GetBootROMPath() to new config system namespace. 2022-06-05 21:24:45 +02:00
JMC47 c18abfaecc Merge pull request #10356 from AdmiralCurtiss/config-port-core-4
Config: Port remaining Core settings to new config system (the rest).
2022-01-11 16:08:19 -05:00
Pokechu22 161c627466 Treewide: Remove unused inclusions of <cinttypes>
Most of these became unneeded when fmt was introduced.
2022-01-09 12:43:11 -08:00
Admiral H. Curtiss c82b2dccb5 Config: Port SyncGPU settings to new config system. 2022-01-09 21:29:12 +01:00
Admiral H. Curtiss d8b67bc15f Config: Port BBDumpPort setting to new config system. 2022-01-09 21:29:12 +01:00
Admiral H. Curtiss 92d2fd9d5f Config: Port MMU setting to new config system. 2022-01-09 21:29:12 +01:00
Admiral H. Curtiss d8825f5635 Config: Port dual core setting to new config system. 2022-01-09 21:29:11 +01:00
Admiral H. Curtiss 5c325eef38 Config: Port SI device settings to new config system. 2022-01-08 20:08:21 +01:00
Admiral H. Curtiss a0a0bfc5ca Config: Port EXI device settings to new config system. 2022-01-08 19:57:58 +01:00
Admiral H. Curtiss ed1a1c1fae Config: Port WiimoteControllerInterface setting to new config system. 2022-01-06 16:13:57 +01:00
Admiral H. Curtiss 2354fb4466 Config: Port WiimoteEnableSpeaker setting to new config system. 2022-01-06 16:13:57 +01:00
Admiral H. Curtiss 8c554d2e64 Config: Port WiimoteContinuousScanning setting to new config system. 2022-01-06 16:13:57 +01:00
Admiral H. Curtiss b2da738c81 Config: Port WiiKeyboard setting to new config system. 2022-01-06 16:13:57 +01:00
Admiral H. Curtiss f19cf1753b Config: Port WiiSDCard setting to new config system. 2022-01-06 16:13:56 +01:00
Admiral H. Curtiss 2aa44b10ba Config: Port TimingVariance setting to new config system. 2022-01-06 16:13:56 +01:00
Admiral H. Curtiss dc7e7d08ad Config: Port Fastmem setting to new config system. 2022-01-06 16:13:56 +01:00
Admiral H. Curtiss 88d725c918 Config: Port SyncOnSkipIdle setting to new config system. 2022-01-06 16:13:56 +01:00
Admiral H. Curtiss e613cbf395 Config: Port FastDiscSpeed setting to new config system. 2022-01-06 16:13:55 +01:00
Admiral H. Curtiss 7184983ee8 Config: Port DisableICache setting to new config system. 2022-01-06 16:13:55 +01:00
Admiral H. Curtiss d98c6b0b1d Config: Port GPUDeterminismMode setting to new config system. 2022-01-06 16:13:55 +01:00
Admiral H. Curtiss 68688e7903 Config: Port PerfMapDir setting to new config system. 2022-01-06 16:13:55 +01:00
Admiral H. Curtiss fb47035f97 Config: Port emulation speed setting to new config system. 2022-01-06 16:13:54 +01:00
Admiral H. Curtiss 032f0da35e Config: Remove CompareServer and CompareClient settings. 2022-01-05 21:26:17 +01:00
Admiral H. Curtiss 0bfffe4095 Config: Port GC Adapter settings to new config system. 2022-01-05 03:25:19 +01:00
Admiral H. Curtiss e08171fa24 Config: Port remaining Core settings to new config system (partial). 2022-01-05 00:54:15 +01:00