summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/MenuBar.cpp
AgeCommit message (Collapse)Author
2024-06-26Revert "Audit uses of IsRunning and GetState"JosJuice
This reverts commit 72cf2bdb87f09deff22e1085de3290126aa4ad05. SYSCONF settings are getting cleared when they shouldn't be. Let's revert the change until I get proper time to figure out why it's broken.
2024-06-21Audit uses of IsRunning and GetStateJosJuice
Some pieces of code are calling IsRunning because there's some particular action that only makes sense when emulation is running, for instance showing the state of the emulated CPU. IsRunning is appropriate to use for this. Then there are pieces of code that are calling IsRunning because there's some particular thing they must avoid doing e.g. when the CPU thread is running or IOS is running. IsRunning isn't quite appropriate for this. Such code should also be checking for the states Starting and Stopping. Keep in mind that: * When the state is Starting, the state can asynchronously change to Running at any time. * When we try to stop the core, the state gets set to Stopping before we take any action to actually stop things. This commit adds a new method Core::IsUninitialized, and changes all callers of IsRunning and GetState that look to me like they should be changed.
2024-06-06Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't definedJosJuice
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-05-01Core::IsRunning: Avoid Global System Accessormitaclaw
2024-04-13Merge pull request #12691 from mitaclaw/jit-profiling-restorationAdmiral H. Curtiss
JitCache: Software Profiling Restoration
2024-04-10MenuBar: Optimize SearchInstructionmitaclaw
2024-04-09DolphinQt: Access Software JIT Profilingmitaclaw
2024-04-08Core::GetState: Avoid Global System Accessormitaclaw
2024-03-28DolphinQt: A Ubiquitous Signal For When Symbols Changemitaclaw
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-22Merge pull request #12620 from mitaclaw/jit-interface-cpu-thread-guardAdmiral H. Curtiss
JitInterface::ClearCache: Modernize With CPUThreadGuard
2024-03-13PPCSymbolDB: Move instance to PowerPCManagermitaclaw
2024-03-04JitInterface::ClearCache: Modernize With CPUThreadGuardmitaclaw
It is recommended to view this diff with whitespace changes hidden.
2024-01-31Core/ConfigManager: Remove dead bAutomaticStart flag.Admiral H. Curtiss
2024-01-23DolphinQt/MenuBar: Hide assembler option if debug UI is disabledLioncash
Fixes a little visual inconsistency in the UI, where the assembler would always be shown, but all other debug-related utilities would be hidden.
2024-01-15Core/Movie: Refactor to class, move to System.Admiral H. Curtiss
A bit of global state remains (the `header` in `BeginRecordingInput()`) due to unclear lifetime requirements.
2023-12-16Merge pull request #11497 from vyuuui/debugger_assembler_uiTilka
Built-in assembler for debugger interface
2023-12-15Disable importing/exporting Wii saves while emulation is runningNaim2000
2023-12-15Disable "Install WAD" while emulation is runningNaim2000
The "(Un)install to/from the NAND" options in the context menu for WAD files has always been disabled, don't know what happened to this one
2023-12-13Parser and Assembler implementationsvyuuui
2023-12-11AchievementManager: Make GetInstance() return a referenceLioncash
The internal static member will always have a valid lifetime. Makes this consistent with other instance based objects in our code.
2023-12-10Add "large entry points map" settingJosJuice
To aid in debugging, this makes it possible to disable the recently added 32/64 GiB region which hasn't had a proper name so far.
2023-12-02Disable TAS recording playback in hardcore modeLillyJadeKatrin
Play Input Recording would potentially unlock achievements without any player input and needs to be disabled. If a recording is already playing, hardcore mode cannot be enabled.
2023-12-02Disable frame advance in hardcore modeLillyJadeKatrin
Frame advancing is easily exploitable for slowing down a game and artificially improving reaction times and is not allowed in RetroAchievements hardcore mode.
2023-12-02Disable loading state in hardcore modeLillyJadeKatrin
While saving states is allowed (especially for the purpose of debugging), RetroAchievements does not allow loading saved states when hardcore mode is on.
2023-10-31Add fastmem arena settingJosJuice
Just for debugging.
2023-08-26DolphinQt: Allow toggling most JIT debug settings at any timeJosJuice
There's no reason not to allow this now that these settings are cleanly integrated into the new config system. (Actually, maybe we could even have done this before the previous commit...)
2023-08-26Jit: Automatically clear cache when JIT settings are updatedJosJuice
This fixes a problem where changing the JIT debug settings on Android while a game was running wouldn't cause the changed settings to apply to code blocks that already had been compiled.
2023-08-12DolphinQt: Set window decorations for all top-level QWidgets.Admiral H. Curtiss
2023-07-14Qt: Add file size stats to NAND Check.Admiral H. Curtiss
2023-06-01Added AchievementsWindow QDialogLillyJadeKatrin
AchievementsWindow is the dialog box that will eventually contain the settings and progress data for RetroAchievements on Dolphin. This adds the barebones dialog, and connects it to MainWindow's MenuBar.
2023-05-15IOS/ES: Split ESDevice into ESCore and ESDevice.Admiral H. Curtiss
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-04-28Feature: Emulate Disney Infinity BaseJoshua de Reeper
Create, Load and Clear Infinity figures on an emulated base in the UI
2023-04-25DolphinQt: use new style of addAction APIShawn Hoffman
2023-04-09PowerPC: Refactor to class, move to System.Admiral H. Curtiss
2023-04-05PowerPC/PPCTables: Pass instruction address to GetOpInfo().Admiral H. Curtiss
2023-03-28PowerPC/MMU: Refactor to class, move to System.Admiral H. Curtiss
2023-03-26JitInterface: Refactor to class, move to System.Admiral H. Curtiss
2023-03-08Core: Add System parameter to CPUThreadGuard.Admiral H. Curtiss
2023-02-12DolphinQt: Properly lock CPU before accessing emulated memoryJosJuice
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-01-28Cleanup: Remove CDUtilsMayImilae
This is a cleaning followup for #11456.
2023-01-27HLE function hooking: Avoid ppcState global.Admiral H. Curtiss
2023-01-22Use Core timing instead of threadJoshua de Reeper
Skylander code tidy ups Convert c array to std::array and fix comments Formatting fixes/review changes Variable comment Migrate portal to System Impl and code tidy ups Use struct Restore review changes Minor fix to schedule transfer method Change descriptors to hex and fix comments
2023-01-22Emulate Skylanders within DolphinJoshua de Reeper
Ported the code from RPCS3, with improvements made to the handling of control messages and audio transfers, Co-Authored with @mandar1jn Missing new line chars Co-Authored-By: mandar1jn <49076509+mandar1jn@users.noreply.github.com>
2023-01-17Merge pull request #11456 from MayImilae/remove-boot-from-dvdPierre Bourdon
Remove Boot from DVD Backup
2023-01-16Remove Boot from DVD BackupMayImilae
This should be a fairly easy merge, assuming I didn’t mess anything up. TL:DR no one uses it and it’s not great. Boot from DVD Backup is an ancient feature with origins in the Megacommit. Back then, GameCube and Wii games were quite large relative to drives of the time. For example, in 2008, the most common hard drive sizes were 320GB and 512GB. On the 320GB drive I personally had at the time, as little as 42 Wii ISOs could have filled it entirely! And that’s ignoring any other files one might want to put onto a drive. Backup DVDs allowed users to burn relatively cheap DVD media and store their GameCube and Wii dumps in a Dolphin accessible way that didn’t eat into their precious HDD space. It had compromises, even then, but in 2008… I mean honestly users probably wouldn’t even notice those compromises with how Dolphin barely even worked at all back then. Obviously, today the storage space concerns are not as big of an issue. According to seagate the average hard drive it sells today is 8TB. For typical laptops purchased now, the -minimum- selection for storage is usually 1TB. You can even buy a name brand 4TB external hard drive for $100. GC and Wii ISOs are not as big as they once were, relatively anyway. Plus flash drives and SD cards are super cheap and way faster than disc drives ever were. For anyone that has limited drive space, removable flash media can fulfill this offloading role far better than backup DVD media ever could. Also no one has DVD drives anymore. That’s kind of an important detail. But to see if Booting from DVD Backup even still worked, I decided to give it a try. I have an ASUS BW-16D1HT, a badass Bluray XL reading and burning drive, connected to my Windows 11 Threadripper 5975WX machine. A super fast drive on a super fast machine is as good as it possibly can get for this feature. So I bought a spindle of DVD-Rs, burned a couple of discs and gave it a try. Surprisingly, it does still work. However, as expected, it introduces a lot of stuttering. Testing Prime 1 and Prime 3, in both games stuttering was introduced whenever the DVD Drive had to suddenly seek. Spikes of 50ms occurred constantly, but I observed 150ms and even over 1000ms stutters! The worst was a three second stutter, when loading Elysia in Prime 3. I could even hear the stutters - any time the drive suddenly made a harsh seeking noise, the game would have a hard stutter. It worked but, it has some serious compromises. Boot from DVD Backup isn’t great, using removable flash media or external hard drives is a FAR better option for anyone with limited storage space today, and no one can even use this feature anymore because their computers don’t even have disc drives. It’s time for Boot from DVD Backup to go! So I did my best on the cleanup but I’m bound to have left some bits. Especially in translation - I didn’t get any warnings or anything there that could help point me to where to clean that up. Please review!
2023-01-16Revert "MenuBar: Tweak string for open user folder option"JosJuice
This reverts commit 6788bda6c9dd7cd7d10c190aa2fa1bd1393d3ce3. The user folder can be either global or local. If it is local, we shouldn't call it global. See also da0be24b2f710442b0c1c809aa4847bfdc200cb3.
2023-01-16MenuBar: Tweak string for open user folder optionOatmealDome
2023-01-16MenuBar: Add action which opens the user folderOatmealDome
2022-12-03HW/Memmap: Refactor Memory to class, move to Core::System.Admiral H. Curtiss
2022-10-31Updater: Add/clarify error messagesDentomologist