The Cheats manager should be updated when the ISO is changed because it's non-modal
Removing code that read the ID from file because the cheats manager only has a use when an emulation is running (when the ID doesn't need to be read from the ISO again because it's in a variable). This fixes loading Gecko codes for .wad during an emulation because "VolumeHandler::GetVolume()" return false in this case
Before this commit, nothing would would be displayed in the "Frames to Record" text control.
This fixes that by setting it to what m_FramesToRecord is initially set to, which is 1 (at the time of this commit).
Example (in step by step explanation):
1. Run Dolphin.
2. Go to Tools -> Fifo Player
3. Go to the Record tab and hit record and then stop without a game loaded.
The button is now disabled and will not become active again for the whole time that Dolphin is running. Dolphin must be closed and then re-opened in order to use it again. This fixes that.
I've tested it with multiple conditions to make sure this doesn't beef anything else related to the Fifo Player.
ie)
- Record then Stop without a game loaded (multiple times)
- Record then Stop with a game loaded (multiple times, as well as testing playback. All of which work fine).
Select the dance mat via Configure > Gamecube > Port 1 > Dance Mat
The dance mat is mapped to the GC Pad:
D-Pad Up = Blue Arrow Up
D-Pad Down = Blue Arrow Down
D-Pad Left = Blue Arrow Left
D-Pad Right = Blue Square
Y Button = Orange Arrow Up
A Button = Orange Arrow Down
X Button = Orange Arrow Right
B Button = Oranage Square
Load by timestamp: load last state is expanded from 1 to 8 actions, for newest to oldest state
Save by timestamp: overwrite the oldest state (or use an empty slot if available)
Adding remaining hardcoded state keys to hotkey dialog
Adding a program exit hotkey
The "Download Codes (WiiRD Database)" button is enabled (and its click return silently without an effect) when "Tools → Cheats Manager" is opened when there's a running emulation for which there's no "[Gecko]" ini section, confusing the user about the reason for not downloading codes or showing an error when there's no running emulation
Solution
when there's a running emulation: fix the button
when there's no running emulation: disable the button (to indicate to the user that this button must be clicked elsewhere, in the ISO settings dialog, the user will realise or remember)
* VBeam-fix:
Renamed the VBeam variable for clarity.
Fixed VBeam emulation in interlaced mode, removing the hacks in the audio timing. Fixed VBeam emulation in progressive scan mode. Retained the old VBeam speed hack. This option has now been switched so that the accurate behaviour is on by default and the speed hack (inaccurate behaviour) is enabled when the option is checked.
Also, some tab/space mismatches removed from VideoOGL, and some places I missed in VideoDX[number] projects.
Now, the Core is literally the only project with tab/space mismatches (on a large scale).
Fixed VBeam emulation in progressive scan mode.
Retained the old VBeam speed hack. This option has now been switched so that the accurate behaviour is on by default and the speed hack (inaccurate behaviour) is enabled when the option is checked.
Also fix up the dangling else's. Shit just looks incredibly ugly in terms of actual structure in the code.
I took the liberty of adding comments in FifoPlayerDlg.cpp, LogConfigWindow.cpp, LogWindow.cpp, and FrameAui.cpp to better explain some things.
If any comments are wrong, don't hesitate to complain.
GC and Wii games using the AX UCode should now work almost perfectly with DSP
HLE. If you get any issue, make sure the "DSP on dedicated thread" option is
disabled, and try setting framelimit to "Audio".
As a side effect, DSP HLE should not desync anymore (making it usable in
netplay and TAS) with AX games.
Conflicts:
Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h
Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp